{"id":34,"name":"rubocop","ecosystem":"rubygems","repository_url":"https://github.com/rubocop/rubocop","issues_count":20533,"created_at":"2025-06-06T15:01:32.437Z","updated_at":"2025-06-06T15:01:32.437Z","purl":"pkg:gem/rubocop","metadata":{"id":291779,"name":"rubocop","ecosystem":"rubygems","description":"RuboCop is a Ruby code style checking and code formatting tool.\nIt aims to enforce the community-driven Ruby Style Guide.\n","homepage":"https://rubocop.org/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rubocop/rubocop","keywords_array":[],"namespace":null,"versions_count":303,"first_release_published_at":"2012-05-03T12:36:58.944Z","latest_release_published_at":"2025-06-04T06:12:27.399Z","latest_release_number":"1.76.0","last_synced_at":"2025-06-06T01:01:41.875Z","created_at":"2022-04-06T09:52:45.447Z","updated_at":"2025-06-06T01:03:55.764Z","registry_url":"https://rubygems.org/gems/rubocop","install_command":"gem install rubocop -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/rubocop/","metadata":{"funding":null},"repo_metadata":{"id":36978238,"uuid":"4095287","full_name":"rubocop/rubocop","owner":"rubocop","description":"A Ruby static code analyzer and formatter, based on the community Ruby style guide.","archived":false,"fork":false,"pushed_at":"2025-06-02T08:01:35.000Z","size":50219,"stargazers_count":12739,"open_issues_count":314,"forks_count":3074,"subscribers_count":176,"default_branch":"master","last_synced_at":"2025-06-03T01:06:37.868Z","etag":null,"topics":["code-formatter","hacktoberfest","linter","rubocop","ruby","static-code-analysis"],"latest_commit_sha":null,"homepage":"https://docs.rubocop.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubocop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"bbatsov","patreon":"bbatsov","open_collective":"rubocop","tidelift":"rubygems/rubocop","custom":"https://www.paypal.me/bbatsov"}},"created_at":"2012-04-21T10:09:58.000Z","updated_at":"2025-06-02T23:56:20.000Z","dependencies_parsed_at":"2023-09-23T14:34:13.291Z","dependency_job_id":"b6a9751a-a419-4349-8be6-9585241d72bc","html_url":"https://github.com/rubocop/rubocop","commit_stats":{"total_commits":11448,"total_committers":1041,"mean_commits":"10.997118155619596","dds":0.806429070580014,"last_synced_commit":"d22bae6fcad1209bf183e19f2b329ded4c5f5bf9"},"previous_names":["rubocop-hq/rubocop","bbatsov/rubocop"],"tags_count":302,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubocop","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258301424,"owners_count":22680175,"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":"rubocop","name":"RuboCop Headquarters","uuid":"10871348","kind":"organization","description":"We're committed to promoting the best Ruby programming practices and helping people write better Ruby applications.","email":null,"website":"https://rubocop.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/10871348?v=4","repositories_count":28,"last_synced_at":"2024-03-25T19:40:52.798Z","metadata":{"has_sponsors_listing":false,"funding":{"github":"bbatsov","patreon":"bbatsov","open_collective":"rubocop","tidelift":"rubygems/rubocop","custom":"https://www.paypal.me/bbatsov"}},"html_url":"https://github.com/rubocop","funding_links":["https://github.com/sponsors/bbatsov","https://patreon.com/bbatsov","https://opencollective.com/rubocop","https://tidelift.com/funding/github/rubygems/rubocop","https://www.paypal.me/bbatsov"],"total_stars":39500,"followers":107,"following":0,"created_at":"2022-11-02T16:20:24.299Z","updated_at":"2024-03-25T19:40:59.139Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubocop","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubocop/repositories"},"tags":[{"name":"v1.75.8","sha":"38333dcec9987d31e4f0d18a1938237cc8aa8c4a","kind":"tag","published_at":"2025-05-28T14:10:48.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.8","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.8/manifests"},{"name":"v1.75.7","sha":"3bff1aed0b3d5d80b255329aa6fb67a0c8d785db","kind":"tag","published_at":"2025-05-21T15:28:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.7","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.7/manifests"},{"name":"v1.75.6","sha":"6210b63b993d037d8a050aeb45af78bbba885caa","kind":"tag","published_at":"2025-05-15T09:34:35.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.6","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.6/manifests"},{"name":"v1.75.5","sha":"4c07aa66c2776a599a226a0d627567716f224a10","kind":"tag","published_at":"2025-05-05T04:49:14.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.5","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.5/manifests"},{"name":"v1.75.4","sha":"eeda3b2ee7f99148da61cbcae2c2015d0c2e0eac","kind":"tag","published_at":"2025-04-28T14:46:01.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.4","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.4/manifests"},{"name":"v1.75.3","sha":"05f0b56b2f6c433e62db2f00a2b723fb65c04f84","kind":"tag","published_at":"2025-04-22T09:03:09.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.3/manifests"},{"name":"v1.75.2","sha":"b159321378105cd8da90d66b294a22125c8d805e","kind":"tag","published_at":"2025-04-03T11:35:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.2/manifests"},{"name":"v1.75.1","sha":"3872dced1fa9de4a93a31c981e33aadbebf41a7c","kind":"tag","published_at":"2025-03-26T18:58:01.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.1/manifests"},{"name":"v1.75.0","sha":"9c2bc8eb11e269f1cf47113041a1be3ff615f68b","kind":"tag","published_at":"2025-03-26T14:28:24.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.75.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.75.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.75.0/manifests"},{"name":"v1.74.0","sha":"ba27193a24638a20b5ad4df0463170f0c949f34e","kind":"tag","published_at":"2025-03-13T08:24:06.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.74.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.74.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.74.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.74.0/manifests"},{"name":"v1.73.2","sha":"815dccadbbf373075cf3d42f3fb7365502259b15","kind":"tag","published_at":"2025-03-04T07:36:48.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.73.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.73.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.2/manifests"},{"name":"v1.73.1","sha":"75737eea72a70383317ec522c13034b9de8b2842","kind":"tag","published_at":"2025-02-27T10:21:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.73.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.73.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.1/manifests"},{"name":"v1.73.0","sha":"28bbd0dfdeb1860f55467ac2038e720f1e27ae89","kind":"tag","published_at":"2025-02-26T07:37:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.73.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.73.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.73.0/manifests"},{"name":"v1.72.2","sha":"869b5d4e9353e8a167fd92a416767af80e113fe5","kind":"tag","published_at":"2025-02-17T16:04:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.72.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.72.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.2/manifests"},{"name":"v1.72.1","sha":"557a7b8132195cf56bf65bee816a86a7a21344a6","kind":"tag","published_at":"2025-02-15T15:49:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.72.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.72.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.1/manifests"},{"name":"v1.72.0","sha":"96989aaf72c21b845152827edbff49067a5b1bdc","kind":"tag","published_at":"2025-02-14T15:15:19.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.72.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.72.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.72.0/manifests"},{"name":"v1.71.2","sha":"2cd0ca258da41e709e7753f1a744e910be1ae1ef","kind":"tag","published_at":"2025-02-04T07:49:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.71.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.71.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.2/manifests"},{"name":"v1.71.1","sha":"2b94512bd1cb7f9cecf1a44a23f47fbba57665d4","kind":"tag","published_at":"2025-01-31T09:52:40.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.71.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.71.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.1/manifests"},{"name":"v1.71.0","sha":"6b13abb7af829c04bb243387d36fad1bad80c12b","kind":"commit","published_at":"2025-01-22T18:41:43.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.71.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.71.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.71.0/manifests"},{"name":"v1.70.0","sha":"e2f2d5ca7c4e2be31e4a0af4ea18aebc5fe1ee01","kind":"tag","published_at":"2025-01-10T07:45:21.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.70.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.70.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.70.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.70.0/manifests"},{"name":"v1.69.2","sha":"3ba4aefee5c1da008877a508bee1acc210aa5298","kind":"tag","published_at":"2024-12-12T13:52:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.69.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.69.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.2/manifests"},{"name":"v1.69.1","sha":"3d95b38d1d5e8fec59d28245559d77594ea04b44","kind":"tag","published_at":"2024-12-03T09:02:41.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.69.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.69.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.1/manifests"},{"name":"v1.69.0","sha":"9a49a335a8bcbf797d2be58e7b8a9ea5735c41a2","kind":"tag","published_at":"2024-11-26T16:04:19.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.69.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.69.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.69.0/manifests"},{"name":"v1.68.0","sha":"7d35ef752b62dee960fe2a3669f796158bda435c","kind":"tag","published_at":"2024-10-31T07:38:51.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.68.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.68.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.68.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.68.0/manifests"},{"name":"v1.67.0","sha":"c108ac08221630e24a8d0de3a36889ac13c2320e","kind":"tag","published_at":"2024-10-15T10:15:33.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.67.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.67.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.67.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.67.0/manifests"},{"name":"v1.66.1","sha":"ba8e7be2f1b76252140e46bcd6f007254f9c5f80","kind":"tag","published_at":"2024-09-04T08:29:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.66.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.66.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.66.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.66.1/manifests"},{"name":"v1.66.0","sha":"c8edd7d62955318216df6b9163814c45a0464fd5","kind":"tag","published_at":"2024-08-31T12:35:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.66.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.66.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.66.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.66.0/manifests"},{"name":"v1.65.1","sha":"b073d7a01daf6652a533899e1da974e9110f46ca","kind":"tag","published_at":"2024-08-01T07:11:29.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.65.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.65.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.65.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.65.1/manifests"},{"name":"v1.65.0","sha":"28786cfef40d595c1aba29e1290d27e69b4c349c","kind":"tag","published_at":"2024-07-10T08:36:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.65.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.65.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.65.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.65.0/manifests"},{"name":"v1.64.1","sha":"31be3004ffb6c6bb8a5dc105993622c2c5aa99f4","kind":"tag","published_at":"2024-05-31T04:31:30.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.64.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.64.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.64.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.64.1/manifests"},{"name":"v1.64.0","sha":"91a19d6d1db3a166e5a154f2513c2e218a74cf36","kind":"tag","published_at":"2024-05-23T08:44:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.64.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.64.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.64.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.64.0/manifests"},{"name":"v1.63.5","sha":"4c3045c2d76a3da4a7de0eb55ede2945d5fe1aad","kind":"tag","published_at":"2024-05-09T08:59:49.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.5","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.5/manifests"},{"name":"v1.63.4","sha":"941d21b558767de7b54ae5c8b77003d46c7e55b4","kind":"tag","published_at":"2024-04-28T05:36:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.4","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.4/manifests"},{"name":"v1.63.3","sha":"a10fbef2461cb0c67be10a8b98692bf3f3143dc7","kind":"tag","published_at":"2024-04-22T16:25:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.3/manifests"},{"name":"v1.63.2","sha":"56fe9e63385672f4eadac3489a938af2c241444e","kind":"tag","published_at":"2024-04-16T08:25:48.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.2/manifests"},{"name":"v1.63.1","sha":"d148ee5bd1484e9d8df0903a2f37a56299dabe08","kind":"tag","published_at":"2024-04-10T12:41:39.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.1/manifests"},{"name":"v1.63.0","sha":"55df9e233d324f36bad58767b38f6f578ed16cbe","kind":"tag","published_at":"2024-04-08T07:27:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.63.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.63.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.63.0/manifests"},{"name":"v1.62.1","sha":"ed9b69edae0f69771e41de24d6f9cdef6ab03482","kind":"tag","published_at":"2024-03-11T11:04:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.62.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.62.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.62.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.62.1/manifests"},{"name":"v1.62.0","sha":"92785ddcf63c8bb6c3449e4183ebb21311a867c9","kind":"tag","published_at":"2024-03-06T12:52:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.62.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.62.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.62.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.62.0/manifests"},{"name":"v1.61.0","sha":"45ba7790b3c6fc37c0b83693513c4dadd619d1ed","kind":"tag","published_at":"2024-02-29T09:23:53.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.61.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.61.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.61.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.61.0/manifests"},{"name":"v1.60.2","sha":"edb56c927d4d1112a9c02990da31767e68d2121c","kind":"tag","published_at":"2024-01-24T11:32:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.60.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.60.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.2/manifests"},{"name":"v1.60.1","sha":"1f507c9a4fbde88058e504480b7ca2864b7aacd3","kind":"tag","published_at":"2024-01-17T15:59:36.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.60.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.60.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.1/manifests"},{"name":"v1.60.0","sha":"56e88bb824fa4699b0e7d6af22afd8943daf8d84","kind":"tag","published_at":"2024-01-15T07:53:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.60.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.60.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.60.0/manifests"},{"name":"v1.59.0","sha":"e5a164a26f8ecba81d44e974e8e3569c550968cd","kind":"tag","published_at":"2023-12-11T10:24:09.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.59.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.59.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.59.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.59.0/manifests"},{"name":"v1.58.0","sha":"f27164b11c055414a3707e98ffb87d610c32b0ce","kind":"tag","published_at":"2023-12-01T12:49:31.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.58.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.58.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.58.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.58.0/manifests"},{"name":"v1.57.2","sha":"47735efc2b410578a196fd2758da87d01802c655","kind":"tag","published_at":"2023-10-26T09:44:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.57.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.57.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.2/manifests"},{"name":"v1.57.1","sha":"9141fe50b7c3a884852f5e49688a3f5dd3d2f7e0","kind":"tag","published_at":"2023-10-13T07:36:05.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.57.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.57.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.1/manifests"},{"name":"v1.57.0","sha":"bfdb5ff4fec74c0dd154268a8e4b97dba7a79aed","kind":"tag","published_at":"2023-10-11T10:49:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.57.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.57.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.57.0/manifests"},{"name":"v1.56.4","sha":"fc57892974c3bd597d9faa7abd5e02679ddea9d4","kind":"tag","published_at":"2023-09-28T12:04:35.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.56.4","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.56.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.4/manifests"},{"name":"v1.56.3","sha":"796fcb34b9b11f632ae7d3bffc6da36e9bd0b781","kind":"tag","published_at":"2023-09-11T06:27:14.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.56.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.56.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.3/manifests"},{"name":"v1.56.2","sha":"b85e080c2528b298d9c8b96db7845537af10f3ff","kind":"tag","published_at":"2023-08-29T07:13:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.56.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.56.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.2/manifests"},{"name":"v1.56.1","sha":"24e7411d9606fd064e720ecb65a965646b6f8a06","kind":"tag","published_at":"2023-08-21T08:01:12.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.56.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.56.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.1/manifests"},{"name":"v1.56.0","sha":"e597ca1121705764b6d009ff85a0caf8cd98000c","kind":"tag","published_at":"2023-08-09T06:34:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.56.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.56.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.56.0/manifests"},{"name":"v1.55.1","sha":"000ae5784e4e14657c4927376be41ac2be2c323b","kind":"tag","published_at":"2023-07-31T05:19:59.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.55.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.55.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.55.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.55.1/manifests"},{"name":"v1.55.0","sha":"f3790afce259aec75bb94d571803c7e5488f1807","kind":"tag","published_at":"2023-07-25T15:26:57.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.55.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.55.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.55.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.55.0/manifests"},{"name":"v1.54.2","sha":"bfbf59751175dae02db38ece1960ede920049ece","kind":"tag","published_at":"2023-07-13T11:02:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.54.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.54.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.2/manifests"},{"name":"v1.54.1","sha":"dbee3c228ae3ca3e9331f7fe8487193d706424d7","kind":"tag","published_at":"2023-07-04T07:33:38.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.54.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.54.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.1/manifests"},{"name":"v1.54.0","sha":"1b578aa82fd27ab39c4ffdb7284f8aeb04443973","kind":"tag","published_at":"2023-07-01T08:14:04.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.54.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.54.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.54.0/manifests"},{"name":"v1.53.1","sha":"c4913f4a1acad8aad727d2ec6e647f7920a2961a","kind":"tag","published_at":"2023-06-26T10:56:01.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.53.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.53.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.53.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.53.1/manifests"},{"name":"v1.53.0","sha":"80485d201d62b605118eb81416db6b999444c65d","kind":"tag","published_at":"2023-06-23T09:43:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.53.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.53.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.53.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.53.0/manifests"},{"name":"v1.52.1","sha":"276a538014d88cee5997a4204d93bc38f4ff4699","kind":"tag","published_at":"2023-06-12T08:01:59.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.52.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.52.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.52.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.52.1/manifests"},{"name":"v1.52.0","sha":"93a378315ef283bc6ae470be655d3d9b51abcbc1","kind":"tag","published_at":"2023-06-02T09:27:10.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.52.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.52.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.52.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.52.0/manifests"},{"name":"v1.51.0","sha":"a38991ddebdfa2dd006b0b3a4fb60721082f2607","kind":"tag","published_at":"2023-05-13T07:53:57.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.51.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.51.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.51.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.51.0/manifests"},{"name":"v1.50.2","sha":"ca0beb7eff823fab00e6517c6f48ec44b4f123e5","kind":"tag","published_at":"2023-04-17T08:12:49.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.50.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.50.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.2/manifests"},{"name":"v1.50.1","sha":"dd97afff88f419bb8307e29faf49cb96e03c2c55","kind":"tag","published_at":"2023-04-12T12:52:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.50.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.50.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.1/manifests"},{"name":"v1.50.0","sha":"b71808e7d26885625c91d49a9d001af166030c87","kind":"tag","published_at":"2023-04-11T07:14:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.50.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.50.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.50.0/manifests"},{"name":"v1.49.0","sha":"e534bd174f6cbb7cff461a39f15f6b2a7d4ebe2f","kind":"tag","published_at":"2023-04-03T06:59:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.49.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.49.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.49.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.49.0/manifests"},{"name":"v1.48.1","sha":"675114c1b5a1999a112f8adaad8c99f8de6f7bcc","kind":"tag","published_at":"2023-03-13T06:53:33.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.48.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.48.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.48.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.48.1/manifests"},{"name":"v1.48.0","sha":"8d3282647c43e38381b5640e218234f21242967b","kind":"tag","published_at":"2023-03-06T09:50:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.48.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.48.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.48.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.48.0/manifests"},{"name":"v1.47.0","sha":"94f743da70ad0d7e423d6c14d8185dcfefd024a2","kind":"tag","published_at":"2023-03-01T11:20:33.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.47.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.47.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.47.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.47.0/manifests"},{"name":"v1.46.0","sha":"be57c6df36f301c82bc775e53b42e3c20bf7f2cd","kind":"tag","published_at":"2023-02-22T18:45:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.46.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.46.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.46.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.46.0/manifests"},{"name":"v1.45.1","sha":"b0f85754424bbfde77412cd5fe2be3e273f3631e","kind":"tag","published_at":"2023-02-08T17:34:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.45.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.45.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.45.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.45.1/manifests"},{"name":"v1.45.0","sha":"170d244c0ad15df777693a30057c4e8601a6681b","kind":"tag","published_at":"2023-02-08T12:27:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.45.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.45.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.45.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.45.0/manifests"},{"name":"v1.44.1","sha":"8b9b97f7afb80a17e48a3bb01be23419b1907a53","kind":"tag","published_at":"2023-01-25T12:34:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.44.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.44.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.44.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.44.1/manifests"},{"name":"v1.44.0","sha":"6139e4019cfa349fbddaf7244eeb21e780a1a6d4","kind":"tag","published_at":"2023-01-23T10:45:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.44.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.44.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.44.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.44.0/manifests"},{"name":"v1.43.0","sha":"c3111370dcd300628af89c26cadddf7b679cfbd8","kind":"tag","published_at":"2023-01-10T10:32:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.43.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.43.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.43.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.43.0/manifests"},{"name":"v1.42.0","sha":"0f7416a0b3ea4a3d4edb1f2091ce8706ea3e6640","kind":"tag","published_at":"2023-01-01T14:14:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.42.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.42.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.42.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.42.0/manifests"},{"name":"v1.41.1","sha":"4fd14ff177d56787c2ccd0afcc610ea7ad1921b8","kind":"tag","published_at":"2022-12-22T08:40:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.41.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.41.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.41.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.41.1/manifests"},{"name":"v1.41.0","sha":"19d8feb910275b80f94bf403ae29362f6b9c9452","kind":"tag","published_at":"2022-12-20T08:41:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.41.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.41.0/manifests"},{"name":"v1.40.0","sha":"9c682a596ba0d851f27eb13a4f757462c826f405","kind":"tag","published_at":"2022-12-08T07:50:20.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.40.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.40.0/manifests"},{"name":"v1.39.0","sha":"6bdf42b432dcdc2ee8fedf4647b322af6d96108e","kind":"tag","published_at":"2022-11-14T06:08:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.39.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.39.0/manifests"},{"name":"v1.38.0","sha":"52a56f0be2332d61718597261a15860201d1fc3c","kind":"tag","published_at":"2022-11-01T07:25:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.38.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.38.0/manifests"},{"name":"v1.37.1","sha":"483ee8488998a2baad04dae58441b3cbcca00c7c","kind":"tag","published_at":"2022-10-24T06:33:57.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.37.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.37.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.37.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.37.1/manifests"},{"name":"v1.37.0","sha":"8b36d32a31e396214a0db712ae6a9dd2e8a02493","kind":"tag","published_at":"2022-10-20T07:55:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.37.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.37.0/manifests"},{"name":"v1.36.0","sha":"3b3c5f53056c7dcbcfdf0477f5c7594ffa87f035","kind":"tag","published_at":"2022-09-01T07:58:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.36.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.36.0/manifests"},{"name":"v1.35.1","sha":"94393340f30c2b3183adc99df24201f1e0fa27f4","kind":"tag","published_at":"2022-08-22T05:47:34.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.35.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.35.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.35.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.35.1/manifests"},{"name":"v1.35.0","sha":"4c16de93fbd7b4823bc486aeb4ef0e3a805ba41e","kind":"tag","published_at":"2022-08-12T12:49:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.35.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.35.0/manifests"},{"name":"v1.34.1","sha":"3aaed392d9b05a34ef73cd4121008424dbce2968","kind":"tag","published_at":"2022-08-09T12:00:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.34.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.34.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.34.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.34.1/manifests"},{"name":"v1.34.0","sha":"a407f646818b5d8896d01842148852d689928c36","kind":"tag","published_at":"2022-08-09T05:25:15.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.34.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.34.0/manifests"},{"name":"v1.33.0","sha":"a9cef6dde89c9e16144f1242a66c3115046a1fe3","kind":"tag","published_at":"2022-08-04T09:25:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.33.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.33.0/manifests"},{"name":"v1.32.0","sha":"08fd23a2856422210564f1d7915e2cfdf2b4854b","kind":"tag","published_at":"2022-07-21T10:33:16.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.32.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.32.0/manifests"},{"name":"v1.31.2","sha":"733c5b9a9674b1e3411405344bf38fb14ec49c67","kind":"tag","published_at":"2022-07-07T08:04:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.31.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.31.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.2/manifests"},{"name":"v1.31.1","sha":"8fa156c7c5d35c1cc02e0530cdb4aecdf7ee326e","kind":"tag","published_at":"2022-06-29T06:54:48.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.31.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.31.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.1/manifests"},{"name":"v1.31.0","sha":"f94048d6a19c9173c0c84221f1477be88fd6c80b","kind":"tag","published_at":"2022-06-27T06:27:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.31.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.31.0/manifests"},{"name":"v1.30.1","sha":"6f3ccdd17983a46913b85eefacf6291a860246fc","kind":"tag","published_at":"2022-06-06T07:58:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.30.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.30.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.30.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.30.1/manifests"},{"name":"v1.30.0","sha":"3fd4828662d48747162fba04381ee60ad3bd05d1","kind":"tag","published_at":"2022-05-26T06:04:54.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.30.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.30.0/manifests"},{"name":"v1.29.1","sha":"efd33a08790ec9adb2378f550fc4b6ca45cc1546","kind":"tag","published_at":"2022-05-12T11:19:13.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.29.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.29.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.29.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.29.1/manifests"},{"name":"v1.29.0","sha":"2f2b2a7aa75b5222457966fdacc464f085c8c308","kind":"tag","published_at":"2022-05-06T15:35:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.29.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.29.0/manifests"},{"name":"v1.28.2","sha":"7222575d076e4a79078d5f4d1b6274dac9b2a56f","kind":"tag","published_at":"2022-04-25T06:44:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.28.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.28.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.2/manifests"},{"name":"v1.28.1","sha":"54f4c82286c725a28a57216158d05f409a94eb7c","kind":"tag","published_at":"2022-04-21T12:36:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.28.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.28.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.1/manifests"},{"name":"v1.28.0","sha":"24ab7b24ee7eefbab38920f98af2a343fc1cfa2b","kind":"tag","published_at":"2022-04-21T08:06:13.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.28.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.28.0/manifests"},{"name":"v1.27.0","sha":"72bb04edcc5acd808879f339aa9937872e92f94b","kind":"tag","published_at":"2022-04-08T06:05:01.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.27.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.27.0/manifests"},{"name":"v1.26.1","sha":"f691b9e6f77cd9129b480af8bc61b6cd9aabbaf5","kind":"tag","published_at":"2022-03-22T11:02:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.26.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.26.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.26.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.26.1/manifests"},{"name":"v1.26.0","sha":"e1e4637a1f769333fd173dc0d55b5dfbb23e6afa","kind":"tag","published_at":"2022-03-09T16:03:53.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.26.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.26.0/manifests"},{"name":"v1.25.1","sha":"f096012e12e33b983ff97bd70c75d0fea680c3c4","kind":"tag","published_at":"2022-02-03T06:44:31.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.25.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.25.1/manifests"},{"name":"v1.25.0","sha":"8bf5b55b16ed7ca397f9326f37ee85393f7afd6d","kind":"tag","published_at":"2022-01-18T07:43:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.25.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.25.0/manifests"},{"name":"v1.24.1","sha":"0c0bee18073201396f679848954235d10b9f8355","kind":"tag","published_at":"2021-12-31T10:32:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.24.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.24.1/manifests"},{"name":"v1.24.0","sha":"477e3f71df7fdcd8bc54a3c69e7a917f81916f47","kind":"tag","published_at":"2021-12-23T11:06:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.24.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.24.0/manifests"},{"name":"v1.23.0","sha":"27386023efb7afa1ac6d134cb0d93f0db68f7673","kind":"tag","published_at":"2021-11-15T08:10:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.23.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.23.0/manifests"},{"name":"v1.22.3","sha":"841bba41d4e6b3fddd5bf95820d37829f0b7ff91","kind":"tag","published_at":"2021-10-27T13:01:30.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.22.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.22.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.3/manifests"},{"name":"v1.22.2","sha":"60484a7bcf8fb240dada8db90e642a1b9baa8ca0","kind":"tag","published_at":"2021-10-22T05:45:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.22.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.22.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.2/manifests"},{"name":"v1.22.1","sha":"b5c9369aea2741877a93d8eaa4d57e16fc4c3be9","kind":"tag","published_at":"2021-10-04T03:20:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.22.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.22.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.1/manifests"},{"name":"v1.22.0","sha":"1bdcf65d88dcca526571bfc005af02a4f2695045","kind":"tag","published_at":"2021-09-29T07:26:39.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.22.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.22.0/manifests"},{"name":"v1.21.0","sha":"25112e6cbc5198ee5c19cbc3d443524d79e4b609","kind":"tag","published_at":"2021-09-13T13:09:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.21.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.21.0/manifests"},{"name":"v1.20.0","sha":"536d986ebc0db213048a12bc554477eb7f9ca57f","kind":"tag","published_at":"2021-08-26T07:50:53.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.20.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.20.0/manifests"},{"name":"v1.19.1","sha":"9a48e71b52c69accf0c1f577400171233832f01e","kind":"tag","published_at":"2021-08-19T06:54:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.19.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.19.1/manifests"},{"name":"v1.19.0","sha":"a6d8d92f3050b1e37356a3c63db1bc1ad0c8fd2c","kind":"tag","published_at":"2021-08-12T10:30:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.19.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.19.0/manifests"},{"name":"v1.18.4","sha":"d6fb135870ce6a597a03ae1c60b4f1da0d0fbacf","kind":"tag","published_at":"2021-07-23T06:12:26.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.18.4","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.18.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.4/manifests"},{"name":"v1.18.3","sha":"a2fcc3d5a3e4aec65ddf77e5e934bba0fdb24eee","kind":"tag","published_at":"2021-07-06T09:14:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.18.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.18.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.3/manifests"},{"name":"v1.18.2","sha":"05d6008d474a8293e3110cd1cc4f81d5eeea9101","kind":"tag","published_at":"2021-07-02T12:18:04.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.18.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.2/manifests"},{"name":"v1.18.1","sha":"d61ce764a12acc627a5e3e9a8973b8034e2755f9","kind":"tag","published_at":"2021-06-30T05:25:51.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.18.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.1/manifests"},{"name":"v1.18.0","sha":"f1f6414e84ae4b38f6d119a424e9ff284465c50f","kind":"tag","published_at":"2021-06-29T05:37:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.18.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.18.0/manifests"},{"name":"v1.17.0","sha":"0f4e3d1094fae8dd24d4eb61544db064564be7cd","kind":"tag","published_at":"2021-06-15T10:36:20.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.17.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.17.0/manifests"},{"name":"v1.16.1","sha":"cc4b75a826d8c837696ded735e1a0d14ffdc38e9","kind":"tag","published_at":"2021-06-09T10:46:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.16.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.16.1/manifests"},{"name":"v1.16.0","sha":"68cd82ebebfb53dd31b331e52942fe3d0a9bdcc3","kind":"tag","published_at":"2021-06-01T07:04:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.16.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"9c9b891b3c8cdc18a8146540e33e29252fa26175","kind":"tag","published_at":"2021-05-17T07:16:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.15.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"2283fe40e7b82081b2f154927f2c445316b33989","kind":"tag","published_at":"2021-05-05T07:54:16.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.14.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"76bc0a0e026b13fccdc7b6bccfd6d082d24a7b52","kind":"tag","published_at":"2021-04-20T08:04:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.13.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.13.0/manifests"},{"name":"v1.12.1","sha":"adf5629f5d2b22336185286c5197fdf6a4153382","kind":"tag","published_at":"2021-04-04T13:58:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.12.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"fa02e853be1a1c5c8c5d9f1b485bb20d39e67392","kind":"tag","published_at":"2021-03-24T13:36:38.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.12.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"3741eebc29e145daabc611cae7460eeda4fc0c4a","kind":"tag","published_at":"2021-03-01T07:51:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.11.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.11.0/manifests"},{"name":"v1.10.0","sha":"9e8a5ee053d93d4b0e2249a1d9abb22878b3dbdf","kind":"tag","published_at":"2021-02-15T13:09:43.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.10.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.10.0/manifests"},{"name":"v1.9.1","sha":"96248184970e375b3cd78b5fbef10555cd422259","kind":"tag","published_at":"2021-02-01T07:36:38.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.9.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.9.1/manifests"},{"name":"v1.9.0","sha":"c95412eb733c05c1345a24956aaa457a331adc69","kind":"tag","published_at":"2021-01-28T08:18:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.9.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.9.0/manifests"},{"name":"v1.8.1","sha":"b9cd27ab11cec5bac449e1fe90656c6be6f5323d","kind":"tag","published_at":"2021-01-11T11:18:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.8.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.8.1/manifests"},{"name":"v1.8.0","sha":"0af1a84197038e58ab7e649625a49b6a128169f3","kind":"tag","published_at":"2021-01-07T08:55:29.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.8.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.8.0/manifests"},{"name":"v1.7.0","sha":"44270f4d3d04940385d9d03e7adf5eef077df55e","kind":"tag","published_at":"2020-12-25T07:21:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.7.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.7.0/manifests"},{"name":"v1.6.1","sha":"e338caf85f5d62965347dce7acea5cd36cd1ccde","kind":"tag","published_at":"2020-12-10T07:36:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.6.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"64e8c47b29855de1f8c1a39f02089ade266705b6","kind":"tag","published_at":"2020-12-09T12:09:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.6.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.6.0/manifests"},{"name":"v1.5.2","sha":"e5907dac37a9521bb80db6f16feba494b8c137d0","kind":"tag","published_at":"2020-12-04T08:48:20.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.5.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.2/manifests"},{"name":"v1.5.1","sha":"a9bc979a96c5d2ad545f537f6272fec344846dac","kind":"tag","published_at":"2020-12-02T16:00:15.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.5.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.1/manifests"},{"name":"v1.5.0","sha":"27231a652ef629dfc2ccba6bd8e07b4cce2634c7","kind":"tag","published_at":"2020-12-01T17:17:27.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.5.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.5.0/manifests"},{"name":"v1.4.2","sha":"10a08cf6d61912bffaa4850c8945404451bfcd74","kind":"tag","published_at":"2020-11-25T08:13:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.4.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.2/manifests"},{"name":"v1.4.1","sha":"6fed9e22820ae2dd258ea6a797348cd949a6de3a","kind":"tag","published_at":"2020-11-23T15:46:39.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.4.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"746c1be8b415d12e759d9a5b14a74f21c86b0b1d","kind":"tag","published_at":"2020-11-23T09:00:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.4.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"ad62ad9ae78f0162a621717ce843928b5c4f708b","kind":"tag","published_at":"2020-11-16T08:54:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.3.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"922d7af3a65106d60f26d18f15931a40aadd3b22","kind":"tag","published_at":"2020-11-12T07:36:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.3.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"0340a51634815be4d8fc647f94711f361c260bdd","kind":"tag","published_at":"2020-11-05T07:35:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.2.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"85bb3595014ececabf5d5f61f24784807eed8872","kind":"tag","published_at":"2020-10-29T15:17:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.1.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"f74c118d80447d6c61d1e9f3eace83de603dc37d","kind":"tag","published_at":"2020-10-21T11:01:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v1.0.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v1.0.0/manifests"},{"name":"v0.93.1","sha":"f561472e57487d8ac30959da833683b21d2febff","kind":"tag","published_at":"2020-10-12T07:04:06.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.93.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.93.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.93.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.93.1/manifests"},{"name":"v0.93.0","sha":"801d30daa3efe559cb280826b94d2a62fc47bde7","kind":"tag","published_at":"2020-10-08T14:52:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.93.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.93.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.93.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.93.0/manifests"},{"name":"v0.92.0","sha":"41959bf3ec0c78e2e77c792a05ff9b30aea899f7","kind":"tag","published_at":"2020-09-25T08:12:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.92.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.92.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.92.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.92.0/manifests"},{"name":"v0.91.1","sha":"de054ee2991a3b4ac0d251b808dd599049f3fe26","kind":"tag","published_at":"2020-09-23T09:43:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.91.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.91.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.91.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.91.1/manifests"},{"name":"v0.91.0","sha":"e0fc1c0437bcea8c610c850dc06e59ed36e0c9c8","kind":"tag","published_at":"2020-09-15T05:44:35.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.91.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.91.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.91.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.91.0/manifests"},{"name":"v0.90.0-antora","sha":"412ff34eb4b70ce69807a6ec90a9932da710bdd3","kind":"commit","published_at":"2020-09-01T06:49:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.90.0-antora","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.90.0-antora","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.90.0-antora","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.90.0-antora/manifests"},{"name":"v0.90.0","sha":"95305ff7615b4299c2f144e5f5938d095b9942f5","kind":"tag","published_at":"2020-09-01T06:44:34.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.90.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.90.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.90.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.90.0/manifests"},{"name":"v0.89.1","sha":"e27942a99c0372273c185dbb2d4b9b92be9e51a3","kind":"tag","published_at":"2020-08-10T12:16:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.89.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.89.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.89.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.89.1/manifests"},{"name":"v0.89.0","sha":"829c782697438e381d702e4dc6c5b25cfbb69404","kind":"tag","published_at":"2020-08-05T19:04:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.89.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.89.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.89.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.89.0/manifests"},{"name":"v0.88.0","sha":"acddd7381f47c0eb9cb896640c452d1899d483e8","kind":"tag","published_at":"2020-07-13T12:21:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.88.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.88.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.88.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.88.0/manifests"},{"name":"v0.87.1","sha":"de0f2e88948a517056f1564b51603dfb6dde71ff","kind":"tag","published_at":"2020-07-07T19:14:21.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.87.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.87.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.87.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.87.1/manifests"},{"name":"v0.87.0","sha":"ba8f13ad9640e71b29853d552f90a54e0acd7625","kind":"tag","published_at":"2020-07-06T16:08:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.87.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.87.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.87.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.87.0/manifests"},{"name":"v0.86.0","sha":"4d0c7aad80a606177983d193aafbb625c904fc06","kind":"tag","published_at":"2020-06-22T07:29:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.86.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.86.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.86.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.86.0/manifests"},{"name":"v0.85.1","sha":"01d717b4325f0d9587a2ec2af39b3f2f6f40c5bd","kind":"tag","published_at":"2020-06-07T15:39:23.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.85.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.85.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.85.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.85.1/manifests"},{"name":"v0.85.0","sha":"55e25e87946947afcd1ea8ecad3666a1941e7036","kind":"tag","published_at":"2020-06-01T15:47:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.85.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.85.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.85.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.85.0/manifests"},{"name":"v0.84.0","sha":"10a6f914936a559811b8e08f4abfa46552db5dc4","kind":"tag","published_at":"2020-05-21T06:53:36.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.84.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.84.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.84.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.84.0/manifests"},{"name":"v0.83.0","sha":"bc62e24e007c2f9d0035e53d9e5ed476804b8917","kind":"tag","published_at":"2020-05-11T12:28:24.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.83.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.83.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.83.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.83.0/manifests"},{"name":"v0.82.0","sha":"eb3d358363a9f88a6ec2be485414f74b5f1b8878","kind":"tag","published_at":"2020-04-16T08:19:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.82.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.82.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.82.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.82.0/manifests"},{"name":"v0.81.0","sha":"34e501e93815191931a033937477fe7227614705","kind":"tag","published_at":"2020-04-01T07:55:13.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.81.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.81.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.81.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.81.0/manifests"},{"name":"v0.80.1","sha":"2bac233ade566e49855ade9ec445845319a8758f","kind":"tag","published_at":"2020-02-29T18:05:07.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.80.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.80.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.80.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.80.1/manifests"},{"name":"v0.80.0","sha":"d4d479c48b32fac6cc93d84f2c59afcc26ed186d","kind":"tag","published_at":"2020-02-18T11:39:07.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.80.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.80.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.80.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.80.0/manifests"},{"name":"v0.79.0","sha":"d5334b9ab17f7f3ffbd710da9560954d10d7e0ff","kind":"tag","published_at":"2020-01-06T09:57:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.79.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.79.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.79.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.79.0/manifests"},{"name":"v0.78.0","sha":"7aa37664e4d877cfb522b6af153e5d4c16ca9a5a","kind":"tag","published_at":"2019-12-18T20:50:59.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.78.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.78.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.78.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.78.0/manifests"},{"name":"v0.77.0","sha":"bcd21f9fe309310423cfb9cee39c979bab56768c","kind":"tag","published_at":"2019-11-27T18:02:41.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.77.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.77.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.77.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.77.0/manifests"},{"name":"v0.76.0","sha":"bb227db1792c24e7fe11e9a149839634e74fcf14","kind":"tag","published_at":"2019-10-28T14:54:07.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.76.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.76.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.76.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.76.0/manifests"},{"name":"v0.75.1","sha":"ef25ea2016ec15745df013ecccf94896d7183dac","kind":"commit","published_at":"2019-10-14T16:57:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.75.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.75.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.75.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.75.1/manifests"},{"name":"v0.75.0","sha":"6072ac0bfa3b5196667630ed16a2cac4006b128c","kind":"tag","published_at":"2019-09-30T17:05:10.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.75.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.75.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.75.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.75.0/manifests"},{"name":"v0.74.0","sha":"96b090f1a2b04fca2bf57b370f461ee5f1a4bd91","kind":"tag","published_at":"2019-07-31T19:11:35.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.74.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.74.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.74.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.74.0/manifests"},{"name":"v0.73.0","sha":"cbc6ec38b7c1a62f8728b4c9dc7e472414bd02b2","kind":"tag","published_at":"2019-07-16T08:56:38.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.73.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.73.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.73.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.73.0/manifests"},{"name":"v0.72.0","sha":"4135413b3f2719bf98d075a1a2e35bbc86717e72","kind":"tag","published_at":"2019-06-25T13:04:16.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.72.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.72.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.72.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.72.0/manifests"},{"name":"v0.71.0","sha":"507666150632d3797f9780fddc138f5f18740155","kind":"tag","published_at":"2019-05-30T13:53:33.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.71.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.71.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.71.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.71.0/manifests"},{"name":"v0.70.0","sha":"959f215d6158559b2a0d1bd72e5ccc944a52b7c9","kind":"tag","published_at":"2019-05-21T10:26:31.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.70.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.70.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.70.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.70.0/manifests"},{"name":"v0.69.0","sha":"c2047b71a68d079533ebe9b3766a5ed80b7f8a42","kind":"tag","published_at":"2019-05-13T08:57:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.69.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.69.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.69.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.69.0/manifests"},{"name":"v0.68.1","sha":"98b03406bcfa091e26a6bd936f3107ce9d9e372d","kind":"tag","published_at":"2019-04-30T19:46:21.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.68.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.68.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.68.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.68.1/manifests"},{"name":"v0.68.0","sha":"9790976bf572cc4ff0de95b8336fbbfc5aed4d85","kind":"tag","published_at":"2019-04-29T13:53:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.68.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.68.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.68.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.68.0/manifests"},{"name":"v0.67.2","sha":"9c2950a4d14c18227ddefbaf2d5609f3a3c64f47","kind":"tag","published_at":"2019-04-05T07:54:41.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.67.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.67.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.2/manifests"},{"name":"v0.67.1","sha":"01918a1e89aa07c7b4bd8a6b795eb0836165335f","kind":"tag","published_at":"2019-04-04T17:13:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.67.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.67.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.1/manifests"},{"name":"v0.67.0","sha":"1d0e48024cf57ed6d60ea592811a35cb67d89556","kind":"tag","published_at":"2019-04-04T15:22:58.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.67.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.67.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.67.0/manifests"},{"name":"v0.66.0","sha":"2e96953c10be61f7255ebcbdc73ffccff5b2baef","kind":"tag","published_at":"2019-03-18T09:26:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.66.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.66.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.66.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.66.0/manifests"},{"name":"v0.65.0","sha":"2e52af0e33cc6387f7c8495b52f66c8f2f46a804","kind":"commit","published_at":"2019-02-19T08:40:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.65.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.65.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.65.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.65.0/manifests"},{"name":"v0.64.0","sha":"eb1caef0dd0d492f7f5fc192f4caf9289eb4366b","kind":"commit","published_at":"2019-02-10T13:51:24.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.64.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.64.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.64.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.64.0/manifests"},{"name":"v0.63.1","sha":"bb626401105729863686f0851c2cf05ba42a0225","kind":"commit","published_at":"2019-01-22T02:55:19.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.63.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.63.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.63.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.63.1/manifests"},{"name":"v0.63.0","sha":"457cd4f0db4088a0f85413af9a5b66b06d6a94bf","kind":"tag","published_at":"2019-01-16T16:31:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.63.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.63.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.63.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.63.0/manifests"},{"name":"v0.62.0","sha":"82c314ee2440b0a4384cacae9f181db75ac58a04","kind":"tag","published_at":"2019-01-01T08:40:07.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.62.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.62.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.62.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.62.0/manifests"},{"name":"v0.61.1","sha":"0d4ba71ce8e94b930ade1be10413018cd8c23ca9","kind":"tag","published_at":"2018-12-06T08:18:43.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.61.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.61.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.61.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.61.1/manifests"},{"name":"v0.61.0","sha":"440c0d2c3ef75cc329d3be1e75c85854596e9255","kind":"tag","published_at":"2018-12-05T12:42:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.61.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.61.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.61.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.61.0/manifests"},{"name":"v0.60.0","sha":"014639fee08d20f4c431c7152417c924ab3960eb","kind":"tag","published_at":"2018-10-26T10:40:49.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.60.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.60.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.60.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.60.0/manifests"},{"name":"v0.59.2","sha":"4d94114da77a52fc5e68b91f2245bfc775b78574","kind":"tag","published_at":"2018-09-24T05:19:26.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.59.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.59.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.2/manifests"},{"name":"v0.59.1","sha":"4f940b4b610e8dbd42aee56b8dc462ede4d8207e","kind":"tag","published_at":"2018-09-15T07:44:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.59.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.59.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.1/manifests"},{"name":"v0.59.0","sha":"52077ea9bd41b98adfd961be6d251d394e948f46","kind":"tag","published_at":"2018-09-09T16:24:17.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.59.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.59.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.59.0/manifests"},{"name":"v0.58.2","sha":"8a5be5fdb0d9de92308c9f1b399cb6abe9a82bdf","kind":"tag","published_at":"2018-07-23T18:01:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.58.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.58.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.2/manifests"},{"name":"v0.58.1","sha":"b10f7b63b2d1b4d71cc80661e30db569e7079237","kind":"tag","published_at":"2018-07-10T07:31:03.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.58.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.58.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.1/manifests"},{"name":"v0.58.0","sha":"7894892096994ec228f08494bfc5f77496cc708a","kind":"tag","published_at":"2018-07-07T12:38:14.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.58.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.58.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.58.0/manifests"},{"name":"v0.57.2","sha":"57565eccc92b014845516b99b2ebc5c4ff31d154","kind":"tag","published_at":"2018-06-12T09:04:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.57.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.57.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.2/manifests"},{"name":"v0.57.1","sha":"f8fd3f6faa4a577d5e4a8a79b48c4084155bf444","kind":"tag","published_at":"2018-06-06T22:57:26.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.57.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.57.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.1/manifests"},{"name":"v0.57.0","sha":"a78bb29d0f6bba58a66170d48204086142c1a79c","kind":"tag","published_at":"2018-06-06T00:53:14.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.57.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.57.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.57.0/manifests"},{"name":"v0.56.0","sha":"6cdd888b61f40ffa3616bea5095744331d1e376d","kind":"tag","published_at":"2018-05-14T15:17:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.56.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.56.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.56.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.56.0/manifests"},{"name":"v0.55.0","sha":"2869886b9b5578844008944907a1d68467f63fd0","kind":"tag","published_at":"2018-04-16T09:19:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.55.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.55.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.55.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.55.0/manifests"},{"name":"v0.54.0","sha":"3323d943ba4233970ddeb8ce07e1676283414dd0","kind":"tag","published_at":"2018-03-21T03:00:44.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.54.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.54.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.54.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.54.0/manifests"},{"name":"v0.53.0","sha":"b65c4d51fea57e458b85d26364da6a4fc0ef2eea","kind":"tag","published_at":"2018-03-05T01:50:12.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.53.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.53.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.53.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.53.0/manifests"},{"name":"v0.52.1","sha":"86476f13e8e12e370f84911d82bef8638f3fdf96","kind":"tag","published_at":"2017-12-27T13:30:51.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.52.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.52.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.52.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.52.1/manifests"},{"name":"v0.52.0","sha":"be2ed0f99e8da0000825ca8b61b6e3cc5664ded1","kind":"tag","published_at":"2017-12-12T13:55:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.52.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.52.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.52.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.52.0/manifests"},{"name":"v0.51.0","sha":"98dfe9a0d34abd79e471afc556fe877cfb590628","kind":"tag","published_at":"2017-10-18T10:08:41.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.51.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.51.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.51.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.51.0/manifests"},{"name":"v0.50.0","sha":"0f319cb7968b902d05301865163750f2ce32f8ac","kind":"tag","published_at":"2017-09-14T18:13:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.50.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.50.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.50.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.50.0/manifests"},{"name":"v0.49.1","sha":"1c2245df09cf0a1659b83acf0abb473e9b927a1a","kind":"tag","published_at":"2017-05-29T12:34:07.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.49.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.49.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.49.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.49.1/manifests"},{"name":"v0.49.0","sha":"66b305ffd91b5d598ca14114a17a3bfb7dd60e21","kind":"tag","published_at":"2017-05-24T05:33:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.49.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.49.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.49.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.49.0/manifests"},{"name":"v0.48.1","sha":"33cda4978a3576e93d69c301e3a764a9b7e4c0d7","kind":"tag","published_at":"2017-04-03T11:29:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.48.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.48.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.48.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.48.1/manifests"},{"name":"v0.48.0","sha":"d1b9d66c3518389b0c408a6a4a42061b36748df4","kind":"tag","published_at":"2017-03-26T09:53:06.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.48.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.48.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.48.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.48.0/manifests"},{"name":"v0.47.1","sha":"a131237c425667b41f6eb6905f5c56eee33e3617","kind":"tag","published_at":"2017-01-18T02:21:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.47.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.47.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.47.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.47.1/manifests"},{"name":"v0.47.0","sha":"14ac43f2d28e07e40e2c8c4a9a4036ea911da0b6","kind":"tag","published_at":"2017-01-16T01:33:54.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.47.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.47.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.47.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.47.0/manifests"},{"name":"v0.46.0","sha":"aeaab434ac32e33cc9e22839f2079e905590fce6","kind":"tag","published_at":"2016-11-30T06:55:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.46.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.46.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.46.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.46.0/manifests"},{"name":"v0.45.0","sha":"9ad80cad2459bdc9275099b48588235843d96f24","kind":"tag","published_at":"2016-10-31T09:29:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.45.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.45.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.45.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.45.0/manifests"},{"name":"v0.44.1","sha":"5c803e7fb48ddf7bb7b8816ad70ca1460bb65405","kind":"tag","published_at":"2016-10-13T14:54:53.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.44.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.44.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.44.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.44.1/manifests"},{"name":"v0.44.0","sha":"9ab16e4ff99f3cbb485ad5f55b1184f416ee3a29","kind":"tag","published_at":"2016-10-13T14:05:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.44.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.44.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.44.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.44.0/manifests"},{"name":"v0.43.0","sha":"60470bd9dc204313c07f5ce075a0e611de8d579c","kind":"tag","published_at":"2016-09-19T08:02:31.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.43.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.43.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.43.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.43.0/manifests"},{"name":"v0.42.0","sha":"2e9d886bb20a2cd074acb65df294ba8b28687427","kind":"tag","published_at":"2016-07-25T09:16:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.42.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.42.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.42.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.42.0/manifests"},{"name":"v0.41.2","sha":"e28a79029466759090696411997b24949193e03d","kind":"tag","published_at":"2016-07-07T11:54:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.41.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.41.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.2/manifests"},{"name":"v0.41.1","sha":"493617772e51818c7874be163b2ba32a75d61801","kind":"tag","published_at":"2016-06-26T08:50:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.41.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.41.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.1/manifests"},{"name":"v0.41.0","sha":"26e1ff6abad5f5cb002cd1248a74a6f79cdcc7a0","kind":"commit","published_at":"2016-06-25T17:49:12.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.41.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.41.0/manifests"},{"name":"v0.40.0","sha":"28b0f63b723f4c4634131e81178c2c75d872a71b","kind":"tag","published_at":"2016-05-09T17:45:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.40.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.40.0/manifests"},{"name":"v0.39.0","sha":"1473da4b0c81e34548e452d4d3427623bdac16de","kind":"tag","published_at":"2016-03-27T11:14:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.39.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.39.0/manifests"},{"name":"v0.38.0","sha":"384aadd6f3e8339de37e52377644292391981ec7","kind":"tag","published_at":"2016-03-09T15:09:54.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.38.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.38.0/manifests"},{"name":"v0.37.2","sha":"b0d2069bb5994674d69f00b0b54614cbb3a9e86c","kind":"tag","published_at":"2016-02-11T12:50:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.37.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.37.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.2/manifests"},{"name":"v0.37.1","sha":"66c73b7dadc15cbba427ffd4b41e11ae8e7eb146","kind":"tag","published_at":"2016-02-09T16:45:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.37.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.37.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.1/manifests"},{"name":"v0.37.0","sha":"825a58a1243ca095d89738e2d42e9d1f88f1bd7d","kind":"tag","published_at":"2016-02-04T06:36:29.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.37.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.37.0/manifests"},{"name":"v0.36.0","sha":"3ec1ef13365b6ff70131e36d28765ad8afe44e74","kind":"tag","published_at":"2016-01-14T18:22:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.36.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.36.0/manifests"},{"name":"v0.35.1","sha":"9eecfa02027290e7232163d9148da88810a1fe66","kind":"tag","published_at":"2015-11-10T17:08:59.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.35.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.35.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.35.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.35.1/manifests"},{"name":"v0.35.0","sha":"11e9c66543722271ee52043b22bd9f515633043a","kind":"tag","published_at":"2015-11-07T06:46:26.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.35.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.35.0/manifests"},{"name":"v0.34.2","sha":"f33bc85695918ef296b33513f6b7ce97d61985fc","kind":"tag","published_at":"2015-09-21T14:50:30.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.34.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.34.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.2/manifests"},{"name":"v0.34.1","sha":"97b97ea51ce7e2138ed97b2a7bc5220ce104a5d8","kind":"tag","published_at":"2015-09-09T11:29:04.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.34.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.34.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.1/manifests"},{"name":"v0.34.0","sha":"b29f6070584b96d7cc50bc7981c5b0455202eeca","kind":"tag","published_at":"2015-09-05T05:05:47.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.34.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.34.0/manifests"},{"name":"v0.33.0","sha":"d0d01534cec918a7665319e4a05ef41b94985e79","kind":"tag","published_at":"2015-08-05T12:17:15.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.33.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.33.0/manifests"},{"name":"v0.32.1","sha":"0925327a968f176b470e886ead8c0eb6b9a7e006","kind":"tag","published_at":"2015-06-24T06:17:04.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.32.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.32.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.32.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.32.1/manifests"},{"name":"v0.32.0","sha":"03cd35e04ac611d42133a4af54cbce48e550d669","kind":"tag","published_at":"2015-06-06T09:02:24.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.32.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.32.0/manifests"},{"name":"v0.31.0","sha":"6b9b0fc36c7b2ef173e8faedcdbeb1e856dfa821","kind":"tag","published_at":"2015-05-05T17:06:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.31.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.31.0/manifests"},{"name":"v0.30.1","sha":"db7657ecb77355319dabd90da1068a60b4d28e90","kind":"tag","published_at":"2015-04-21T11:54:26.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.30.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.30.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.30.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.30.1/manifests"},{"name":"v0.30.0","sha":"9ca8f3d1ca9b5bed41ba0582b023a4c44694ef1d","kind":"tag","published_at":"2015-04-06T15:38:10.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.30.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.30.0/manifests"},{"name":"v0.29.1","sha":"af051d90f97c00285ccf6f8211a87d0719ea913e","kind":"tag","published_at":"2015-02-13T09:44:45.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.29.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.29.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.29.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.29.1/manifests"},{"name":"v0.29.0","sha":"1962a3c2e35edabcb2b80f8e669fccd507b4bfad","kind":"tag","published_at":"2015-02-05T20:28:09.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.29.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.29.0/manifests"},{"name":"v0.28.0","sha":"1895f38f2e693035d53a4f15b0cd9ed4a99559c4","kind":"tag","published_at":"2014-12-10T17:17:06.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.28.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.28.0/manifests"},{"name":"v0.27.1","sha":"22ba610e9e3f1f00a92547a55becb6a118f213e3","kind":"tag","published_at":"2014-11-08T11:25:46.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.27.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.27.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.27.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.27.1/manifests"},{"name":"v0.27.0","sha":"51913d2474c6be3cad449252f7fad859f39b92ad","kind":"tag","published_at":"2014-10-30T16:43:16.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.27.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.27.0/manifests"},{"name":"v0.26.1","sha":"a3e080c23f0b57b8ac423ff56c7cce7ee74a8505","kind":"tag","published_at":"2014-09-18T12:10:19.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.26.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.26.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.26.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.26.1/manifests"},{"name":"v0.26.0","sha":"422675a4e10305055eae2954d5d6bd5a66cea83d","kind":"tag","published_at":"2014-09-03T12:35:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.26.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.26.0/manifests"},{"name":"v0.25.0","sha":"f307c73cc92ce80f03f4bdb84aba7e35d3abe68a","kind":"tag","published_at":"2014-08-15T11:19:18.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.25.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.25.0/manifests"},{"name":"v0.24.1","sha":"24a41a194ea20af46f9c7ffe85c8df4ef0f377fc","kind":"tag","published_at":"2014-07-03T11:38:12.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.24.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.24.1/manifests"},{"name":"v0.24.0","sha":"f3bb16d446817aee2cad53f8d414b5143a6085ff","kind":"tag","published_at":"2014-06-25T06:49:31.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.24.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.24.0/manifests"},{"name":"v0.23.0","sha":"7ee7a8b47314bc067f08622d621fd9c7505dd422","kind":"tag","published_at":"2014-06-02T12:19:11.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.23.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.23.0/manifests"},{"name":"v0.22.0","sha":"6dc9d8051f1a5008748efa80a7a34c74ae7ad881","kind":"tag","published_at":"2014-05-20T14:36:20.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.22.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.22.0/manifests"},{"name":"v0.21.0","sha":"f1faa413ba9cafee1fea977f0038c14646a3dd8b","kind":"tag","published_at":"2014-04-24T09:41:08.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.21.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.21.0/manifests"},{"name":"v0.20.1","sha":"d6c8221ca09c0f5edb8abcda466b41f2e5076b94","kind":"tag","published_at":"2014-04-05T12:16:15.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.20.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.20.1/manifests"},{"name":"v0.20.0","sha":"eec6ce222e3ab175ee53055c76326fc56a8a54a0","kind":"tag","published_at":"2014-04-02T14:03:36.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.20.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.20.0/manifests"},{"name":"v0.19.1","sha":"11edb64defd0b7baab554e7969bfeb649dfeff93","kind":"tag","published_at":"2014-03-17T15:57:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.19.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.19.1/manifests"},{"name":"v0.19.0","sha":"fcdc3013e04a263afdb4cd9280008c65d898c7a7","kind":"commit","published_at":"2014-03-13T16:13:50.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.19.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.19.0/manifests"},{"name":"v0.18.1","sha":"a0e3572144fea77aec6e590cdd7e40301bd001dd","kind":"tag","published_at":"2014-02-02T10:11:34.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.18.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.18.1/manifests"},{"name":"v0.18.0","sha":"e93b32e1fea7e13bd15f5bc0b33dd7fd1ee336e7","kind":"tag","published_at":"2014-01-30T16:10:58.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.18.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.18.0/manifests"},{"name":"v0.17.0","sha":"cd8f5170f050a449139593cc3b4eb2e3cd49d71d","kind":"tag","published_at":"2014-01-23T15:43:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.17.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.17.0/manifests"},{"name":"v0.16.0","sha":"6e1d595b79927bc4ce01b0e37be2aeac04cfc17c","kind":"tag","published_at":"2013-12-25T18:01:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.16.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"415e648fdabf20c5245c3c306a6609a4e9f4b776","kind":"tag","published_at":"2013-11-06T14:54:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.15.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"9512070ab85869dbb07e9011d7a1d94df7a0b5af","kind":"tag","published_at":"2013-10-10T09:22:21.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.14.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"0aaf59664f6a8ab6201e38d8eb812ef4adb8e9bc","kind":"tag","published_at":"2013-10-07T11:54:59.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.14.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.14.0/manifests"},{"name":"v0.13.1","sha":"521cc379b2d0cdd00f9589d89dfb7a035c70c685","kind":"tag","published_at":"2013-09-19T11:17:20.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.13.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.13.1/manifests"},{"name":"v0.13.0","sha":"e02cce9a7213833ffa73739ba46d02243faada22","kind":"tag","published_at":"2013-09-13T14:11:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.13.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.13.0/manifests"},{"name":"v0.12.0","sha":"b2e0d2d4bc97aa2fa8ba0e79eebeb688eba73d71","kind":"tag","published_at":"2013-08-23T08:20:22.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.12.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.12.0/manifests"},{"name":"v0.11.1","sha":"434a16d60220ca6b053ff607368cd2aa4b149a3b","kind":"tag","published_at":"2013-08-12T08:41:02.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.11.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.11.1/manifests"},{"name":"v0.11.0","sha":"3855b3fe6982a595db78736bd26f790829eec574","kind":"tag","published_at":"2013-08-09T14:44:27.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.11.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.11.0/manifests"},{"name":"v0.9.1","sha":"ab32eceb1594af23119c1489d9e07339c2e3a192","kind":"tag","published_at":"2013-07-05T15:13:00.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.9.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"453e12c2c5e5b71e1cfe529efff61df242d6a960","kind":"tag","published_at":"2013-07-01T12:57:32.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.9.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.9.0/manifests"},{"name":"v0.8.3","sha":"9e1268de51306a740400475dd0bc5fab3f0b145a","kind":"tag","published_at":"2013-06-18T12:41:25.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.8.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.3/manifests"},{"name":"v0.8.2","sha":"f18d5b87ed7de709b92d8f3a2c03b715a03689ff","kind":"tag","published_at":"2013-06-05T11:46:29.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.8.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"3c372b9151e9816347b5c190a82a134901253b97","kind":"tag","published_at":"2013-05-30T08:11:06.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.8.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"237292dcf6c94c064d74dae1dace921a801f4e75","kind":"tag","published_at":"2013-05-28T09:05:52.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.8.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.8.0/manifests"},{"name":"v0.7.2","sha":"8c579c8faf8991b49961e0ca0e0c29272c2637d4","kind":"tag","published_at":"2013-05-13T06:59:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.7.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"d65c59a777b67765fd9462d8924b944e34151fdf","kind":"tag","published_at":"2013-05-11T12:00:57.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.7.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"3bcaa0bc26567df6185ddca958c507cbfdc09fc1","kind":"tag","published_at":"2013-05-11T05:39:58.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.7.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"07b85abfacc84e53b8c0eff23b7f4053e451648c","kind":"tag","published_at":"2013-04-28T12:43:55.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.6.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"d94da8cf03b5b1a5f21191140646430077253b2c","kind":"tag","published_at":"2013-04-23T11:22:51.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.6.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"6ca36b573e9c8318855301f1737c841322b9a2e9","kind":"commit","published_at":"2013-04-17T15:08:56.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.5.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.5.0/manifests"},{"name":"v0.4.6","sha":"16a0487aac6de00fb30297fd693e835fab28ccad","kind":"commit","published_at":"2013-04-15T13:21:09.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.6","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"a1ba9c72c3d193f7bd74ba6807c0251e10b39fc2","kind":"commit","published_at":"2013-04-15T13:18:05.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.5","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"5eb73c4a1e7df24d8b6c4d041dd8c917c5a3d23b","kind":"commit","published_at":"2013-04-14T14:25:14.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.4","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"b0bdb5975e35f1fa5ea0c46f1a569c51e6fd7a56","kind":"commit","published_at":"2013-04-14T06:10:05.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.3","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"90edfed8ec2bf76345533897902b21a0a732f35c","kind":"commit","published_at":"2013-04-13T19:20:13.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"7cb7329e6ef2b9ef504897e36ddb21166b904932","kind":"commit","published_at":"2013-04-13T11:19:23.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"0a29cac83be7679ed9a1e38689480db84a74fd73","kind":"commit","published_at":"2013-04-11T09:45:37.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.4.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"873e390aa2b2c679acd8dc8a383df9eba4f4f737","kind":"commit","published_at":"2013-04-06T10:27:10.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.3.2","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"df9262b8f10bd76bafe1981a35bd233b3fc3c94f","kind":"commit","published_at":"2013-02-28T20:44:30.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.3.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"c28cfea0264059e02d9865e9a0f670737f9b5fa1","kind":"commit","published_at":"2013-02-11T15:55:34.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.3.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"951cec6ae8e746fd7d52e917e21b37e15ac0d2d8","kind":"commit","published_at":"2013-01-12T15:56:34.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.2.1","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"475972d97e3f92c724a653c879081bb39c389667","kind":"commit","published_at":"2013-01-02T19:42:13.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.2.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"bcef5e4f40ff5d7cd318bc0ac6f150e50745beb3","kind":"commit","published_at":"2012-12-20T09:55:57.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.1.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.1.0/manifests"},{"name":"v0.0.0","sha":"d0c5538cf2ad964afaeafb1682f5b9cd81717731","kind":"commit","published_at":"2012-05-03T12:36:42.000Z","download_url":"https://codeload.github.com/rubocop/rubocop/tar.gz/v0.0.0","html_url":"https://github.com/rubocop/rubocop/releases/tag/v0.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop/tags/v0.0.0/manifests"}]},"repo_metadata_updated_at":"2025-06-06T01:03:55.761Z","dependent_packages_count":12291,"downloads":549554719,"downloads_period":"total","dependent_repos_count":115529,"rankings":{"downloads":0.03791215530602915,"dependent_repos_count":0.11317893422241054,"dependent_packages_count":0.004460253565415194,"stargazers_count":0.10035570522184185,"forks_count":0.10370089539590326,"docker_downloads_count":0.06188601822013581,"average":0.0702489936552893},"purl":"pkg:gem/rubocop","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXdtamYtanBqai05ZjNq","url":"https://github.com/advisories/GHSA-wmjf-jpjj-9f3j","title":"RuboCop gem Insecure use of /tmp","description":"RuboCop 0.48.1 and earlier does not use /tmp in safe way, allowing local users to exploit this to tamper with cache files belonging to other users.","origin":"UNSPECIFIED","severity":"LOW","published_at":"2017-11-15T20:39:47.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":3.3,"cvss_vector":"CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2017-8418","https://github.com/bbatsov/rubocop/issues/4336","http://www.openwall.com/lists/oss-security/2017/05/01/14","https://github.com/rubocop/rubocop/commit/dcb258fabd5f2624c1ea0e1634763094590c09d7","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rubocop/CVE-2017-8418.yml","https://github.com/advisories/GHSA-wmjf-jpjj-9f3j"],"source_kind":"github","identifiers":["GHSA-wmjf-jpjj-9f3j","CVE-2017-8418"],"repository_url":"https://github.com/bbatsov/rubocop","blast_radius":16.70688034678457,"packages":[{"versions":[{"first_patched_version":"0.49.0","vulnerable_version_range":"\u003c 0.49.0"}],"ecosystem":"rubygems","package_name":"rubocop"}],"created_at":"2022-12-21T16:13:37.747Z","updated_at":"2023-08-28T13:43:42.000Z"}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/rubocop","docker_dependents_count":2130,"docker_downloads_count":3455005728,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/rubocop","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/rubocop/dependencies","status":null,"funding_links":["https://github.com/sponsors/bbatsov","https://patreon.com/bbatsov","https://opencollective.com/rubocop","https://tidelift.com/funding/github/rubygems/rubocop","https://www.paypal.me/bbatsov"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rubocop/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rubocop/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rubocop/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/rubocop/related_packages","maintainers":[{"uuid":"58641","login":"koic_ito","name":null,"email":null,"url":null,"packages_count":37,"html_url":"https://rubygems.org/profiles/koic_ito","role":null,"created_at":"2022-11-09T09:49:05.435Z","updated_at":"2022-11-09T09:49:05.435Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/koic_ito/packages"},{"uuid":"67960","login":"yujinakayama","name":null,"email":null,"url":null,"packages_count":17,"html_url":"https://rubygems.org/profiles/yujinakayama","role":null,"created_at":"2022-11-09T09:49:05.395Z","updated_at":"2022-11-09T09:49:05.395Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/yujinakayama/packages"},{"uuid":"59170","login":"bbatsov","name":null,"email":null,"url":null,"packages_count":12,"html_url":"https://rubygems.org/profiles/bbatsov","role":null,"created_at":"2022-11-09T09:49:05.376Z","updated_at":"2022-11-09T09:49:05.376Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/bbatsov/packages"},{"uuid":"129139","login":"Drenmi","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://rubygems.org/profiles/Drenmi","role":null,"created_at":"2022-11-09T09:49:05.416Z","updated_at":"2022-11-09T09:49:05.416Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/Drenmi/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198104,"maintainers_count":66425,"namespaces_count":0,"keywords_count":17793,"github":"rubygems","metadata":{"funded_packages_count":7043},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-06-05T05:53:14.406Z","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":2395,"unique_repositories_count_past_30_days":18,"recent_issues":[{"uuid":"5444490543","node_id":"PR_kwDOABJuf88AAAABDYyOBA","number":1060,"state":"open","title":"Bump rubocop from 1.89.0 to 1.91.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":25,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T02:32:37.000Z","updated_at":"2026-09-14T02:36:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.91.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.91.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.91.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15639\"\u003e#15639\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstParameterIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ParameterAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.91.0 (2026-09-10)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6eee0afc5fc9d5ba09f2769c689d0e6769402a79\"\u003e\u003ccode\u003e6eee0af\u003c/code\u003e\u003c/a\u003e Cut 1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ed0572d29d0fd383ce6b47881259f8ec5ad3d5a3\"\u003e\u003ccode\u003eed0572d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/318127275d7fa1b935e4fcc0c6669fa95e651031\"\u003e\u003ccode\u003e3181272\u003c/code\u003e\u003c/a\u003e Fix an infinite loop for \u003ccode\u003eStyle/NumericLiteralPrefix\u003c/code\u003e with signed literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b87652adeee453a8d7d9501d0133bf9400f4db07\"\u003e\u003ccode\u003eb87652a\u003c/code\u003e\u003c/a\u003e Fix Layout/LineLength SplitStrings loop on trailing-space split point\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/fce7a33e4baaebcb4b39c51c10df37d827bd5cc4\"\u003e\u003ccode\u003efce7a33\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e] Fix first array indentation loop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/321bd65b90f1b947017c5649f83e5aa8c35d947d\"\u003e\u003ccode\u003e321bd65\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/a464cbadf067731a684c65555852a6ae03e1b2a5\"\u003e\u003ccode\u003ea464cba\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix incorrect autocorrects for \u003ccode\u003eStyle/NilComparison\u003c/code\u003e with precedence...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3192b704205551d5f6642c59235007e624c60f4b\"\u003e\u003ccode\u003e3192b70\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f747cabefc80aed1eb89c4dfe5847e72da5c64fa\"\u003e\u003ccode\u003ef747cab\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or ass...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3f52020aba27b4ccafc33619282204db8f6951bb\"\u003e\u003ccode\u003e3f52020\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for the preview fail level\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.91.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.91.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/Starkast/wikimum/pull/1060","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Starkast%2Fwikimum/issues/1060","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1060/packages"},{"uuid":"5441464954","node_id":"PR_kwDOTZZH4c8AAAABDWb1MQ","number":174,"state":"open","title":"chore(deps-dev): update rubocop requirement from 1.90.0 to 1.91.0","user":"dependabot[bot]","labels":["area:infra"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T17:03:05.000Z","updated_at":"2026-09-13T17:03:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"rubocop","old_version":"1.90.0","new_version":"1.91.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.91.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15639\"\u003e#15639\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstParameterIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ParameterAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.91.0 (2026-09-10)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6eee0afc5fc9d5ba09f2769c689d0e6769402a79\"\u003e\u003ccode\u003e6eee0af\u003c/code\u003e\u003c/a\u003e Cut 1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ed0572d29d0fd383ce6b47881259f8ec5ad3d5a3\"\u003e\u003ccode\u003eed0572d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/318127275d7fa1b935e4fcc0c6669fa95e651031\"\u003e\u003ccode\u003e3181272\u003c/code\u003e\u003c/a\u003e Fix an infinite loop for \u003ccode\u003eStyle/NumericLiteralPrefix\u003c/code\u003e with signed literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b87652adeee453a8d7d9501d0133bf9400f4db07\"\u003e\u003ccode\u003eb87652a\u003c/code\u003e\u003c/a\u003e Fix Layout/LineLength SplitStrings loop on trailing-space split point\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/fce7a33e4baaebcb4b39c51c10df37d827bd5cc4\"\u003e\u003ccode\u003efce7a33\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e] Fix first array indentation loop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/321bd65b90f1b947017c5649f83e5aa8c35d947d\"\u003e\u003ccode\u003e321bd65\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/a464cbadf067731a684c65555852a6ae03e1b2a5\"\u003e\u003ccode\u003ea464cba\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix incorrect autocorrects for \u003ccode\u003eStyle/NilComparison\u003c/code\u003e with precedence...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3192b704205551d5f6642c59235007e624c60f4b\"\u003e\u003ccode\u003e3192b70\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f747cabefc80aed1eb89c4dfe5847e72da5c64fa\"\u003e\u003ccode\u003ef747cab\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or ass...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3f52020aba27b4ccafc33619282204db8f6951bb\"\u003e\u003ccode\u003e3f52020\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for the preview fail level\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.90.0...v1.91.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 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/Arcflect/veltrunode/pull/174","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcflect%2Fveltrunode/issues/174","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/174/packages"},{"uuid":"5381010068","node_id":"PR_kwDOJKv3g88AAAABCmVmtw","number":1349,"state":"closed","title":"Bump the bundler group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-11T02:04:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T02:06:13.000Z","updated_at":"2026-09-11T02:04:59.000Z","time_to_close":259124,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":4,"packages":[{"name":"laa_crime_forms_common","old_version":"`b5a7b05`","new_version":"`a0c7f3e`","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"webmock","old_version":"3.26.3","new_version":"3.26.4","repository_url":"https://github.com/bblimke/webmock"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 4 updates in the / directory: [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common), [rubocop](https://github.com/rubocop/rubocop), [selenium-webdriver](https://github.com/SeleniumHQ/selenium) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `laa_crime_forms_common` from `b5a7b05` to `a0c7f3e`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/a0c7f3e40c7f0af8457b0fb74df09cf632b59e87\"\u003e\u003ccode\u003ea0c7f3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/131\"\u003e#131\u003c/a\u003e from ministryofjustice/CRM457-3293-map-payment-basis-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/710814d783a79a36f76533034892c73dc82893f3\"\u003e\u003ccode\u003e710814d\u003c/code\u003e\u003c/a\u003e reduce duplication\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/72142a40e6a8d4782bc63d19bc36a2a45540b806\"\u003e\u003ccode\u003e72142a4\u003c/code\u003e\u003c/a\u003e change naming to avoid confusion  where there is a previous payment but that ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/eab6317da6b4de79ef7506005442dad59ed3da6a\"\u003e\u003ccode\u003eeab6317\u003c/code\u003e\u003c/a\u003e add linked_no_previous_payment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/8c33589711e7423ae5dd6e2815b98fd63979bf54\"\u003e\u003ccode\u003e8c33589\u003c/code\u003e\u003c/a\u003e add shared semantics for payment_basis\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/b5a7b05e38fa2d4472e3a1029f26917f28c87945...a0c7f3e40c7f0af8457b0fb74df09cf632b59e87\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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.47.0 to 4.48.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.48.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[js] Normalize empty custom locator results by \u003ca href=\"https://github.com/munawiki\"\u003e\u003ccode\u003e@​munawiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17851\"\u003eSeleniumHQ/selenium#17851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: fix W3C capabilities built from a list of options (create_matches) 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/17897\"\u003eSeleniumHQ/selenium#17897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] add low-level BiDi protocol integration 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/17878\"\u003eSeleniumHQ/selenium#17878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix badge for CI build on the default branch 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/17901\"\u003eSeleniumHQ/selenium#17901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix broken reStructuredText link in docs 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/17902\"\u003eSeleniumHQ/selenium#17902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] stop forwarding se:remoteUrl past the Node that consumes 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/17908\"\u003eSeleniumHQ/selenium#17908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Forward file upload/download for Kubernetes, Docker and relay sessions by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17914\"\u003eSeleniumHQ/selenium#17914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] reduce github cache churn and aggressively prune CodeQL caches 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/17909\"\u003eSeleniumHQ/selenium#17909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix two flaky BiDi tests that left timing-dependent state behind 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/17918\"\u003eSeleniumHQ/selenium#17918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add warn annotation for undeclared field while JSON coercion  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/17917\"\u003eSeleniumHQ/selenium#17917\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] temporarily disable nightly TestPyPI publishing 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/17920\"\u003eSeleniumHQ/selenium#17920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] fix Safari test failures 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/17922\"\u003eSeleniumHQ/selenium#17922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fix the issues that caused the release workflow to fail during last 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/17921\"\u003eSeleniumHQ/selenium#17921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] temporarily disable nightly TestPyPI publishing (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17920\"\u003e#17920\u003c/a\u003e)\u0026quot; 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/17924\"\u003eSeleniumHQ/selenium#17924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] fix silent hang on oversized WebSocket frames 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/17655\"\u003eSeleniumHQ/selenium#17655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Ensure BiDi is not exposed on Driver 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/17926\"\u003eSeleniumHQ/selenium#17926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] charter: link the accepted BiDi support boundary record 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/17928\"\u003eSeleniumHQ/selenium#17928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour the \u003ccode\u003eDO_NOT_TRACK\u003c/code\u003e env var by \u003ca href=\"https://github.com/shs96c\"\u003e\u003ccode\u003e@​shs96c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17931\"\u003eSeleniumHQ/selenium#17931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] record flaky tests on trunk and report weekly offenders to Slack 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/17930\"\u003eSeleniumHQ/selenium#17930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] ignore .bazelbsp/ IDE-generated directory 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/17932\"\u003eSeleniumHQ/selenium#17932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Install browser extensions from the driver directly 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/17817\"\u003eSeleniumHQ/selenium#17817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] generate the internal BiDi protocol layer from the shared binding-neutral 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/17761\"\u003eSeleniumHQ/selenium#17761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] always reject a missing required inbound BiDi field 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/17936\"\u003eSeleniumHQ/selenium#17936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] make Java and .NET release reruns pass when already published 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/17935\"\u003eSeleniumHQ/selenium#17935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Move dependency updates into a weekly workflow 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/17934\"\u003eSeleniumHQ/selenium#17934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] accept a whole-valued float for an integer BiDi field 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/17939\"\u003eSeleniumHQ/selenium#17939\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] unlock trunk once the release finishes writing to 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/17938\"\u003eSeleniumHQ/selenium#17938\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Add serialization and domain layer 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/17927\"\u003eSeleniumHQ/selenium#17927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] stop updating browsers and CDP during release preparation 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/17940\"\u003eSeleniumHQ/selenium#17940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] update new BiDi layer generation to conform to latest proposed ADR 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/17942\"\u003eSeleniumHQ/selenium#17942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Throw in case of unknown discriminator 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/17948\"\u003eSeleniumHQ/selenium#17948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] reject an inbound BiDi scalar outside its union's declared arms 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/17947\"\u003eSeleniumHQ/selenium#17947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] alert Slack when a CDP update lands on trunk 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/17950\"\u003eSeleniumHQ/selenium#17950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][bidi] Add BiDi connection-level event subscription 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/17946\"\u003eSeleniumHQ/selenium#17946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] SetMediaFeaturesOverride command in Emulation module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17953\"\u003eSeleniumHQ/selenium#17953\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/munawiki\"\u003e\u003ccode\u003e@​munawiki\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17851\"\u003eSeleniumHQ/selenium#17851\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.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/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.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/27f5213055e28398a5105b7892b7a3bb2012a6ef\"\u003e\u003ccode\u003e27f5213\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.48.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17956\"\u003e#17956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7bfaedb223f530da5b6e1e8e0038c50100bd6c4f\"\u003e\u003ccode\u003e7bfaedb\u003c/code\u003e\u003c/a\u003e [rb] reject 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\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6df57060dea30e91ab78b2e04130ceb208de3fae\"\u003e\u003ccode\u003e6df5706\u003c/code\u003e\u003c/a\u003e [rb] accept 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/1dd3004144ec48314bd5ba471f0dbc0fbd6b5b95\"\u003e\u003ccode\u003e1dd3004\u003c/code\u003e\u003c/a\u003e [rb] always 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/eb28a14f3833750c23b0325d578412a95ab306d2\"\u003e\u003ccode\u003eeb28a14\u003c/code\u003e\u003c/a\u003e [rb] fix 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/194545f1f16080ce2cacc44be7a437df9a979bcb\"\u003e\u003ccode\u003e194545f\u003c/code\u003e\u003c/a\u003e [rb] fix Safari test failures (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17922\"\u003e#17922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/3e387119b8709dbde85e8bd4e8b79801523b9993\"\u003e\u003ccode\u003e3e38711\u003c/code\u003e\u003c/a\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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/000328171278909d02545b761f8c39156e4d4332\"\u003e\u003ccode\u003e0003281\u003c/code\u003e\u003c/a\u003e [rb] add 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\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/b4b73af3ceaf1379ab9eef525307b56c7bc8c29d\"\u003e\u003ccode\u003eb4b73af\u003c/code\u003e\u003c/a\u003e [build] Update lockfiles for nightly versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/1ed71ed333b3c3ef37aac37c5da489d8b0474590\"\u003e\u003ccode\u003e1ed71ed\u003c/code\u003e\u003c/a\u003e [build] Reset versions to nightly after selenium-4.47.0 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.3 to 3.26.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.26.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests by \u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\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/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.26.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests by \u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\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/bblimke/webmock/commit/0fdbad0846d044af30f4b46f5e1f2be1a29ab8ec\"\u003e\u003ccode\u003e0fdbad0\u003c/code\u003e\u003c/a\u003e Version 3.26.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/b187df8827e1f08a1684a8ddc0a5050dbd449c16\"\u003e\u003ccode\u003eb187df8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\u003c/a\u003e from koic/fix_race_condition_in_httpclient_adapter_a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/f275724131a74f781e517ce83ff9efe20023687e\"\u003e\u003ccode\u003ef275724\u003c/code\u003e\u003c/a\u003e Fix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.3...v3.26.4\"\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/ministryofjustice/laa-assess-crime-forms/pull/1349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1349/packages"},{"uuid":"5366398961","node_id":"PR_kwDONC8Qws8AAAABCayB0w","number":654,"state":"open","title":":arrow_up: Bump rubocop from 1.89.0 to 1.90.0 in /examples/ruby in the dependencies group","user":"dependabot[bot]","labels":["dependencies","ruby","dependency:patch"],"assignees":[],"locked":false,"comments_count":15,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-06T17:02:26.000Z","updated_at":"2026-09-06T17:05:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":":arrow_up: Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":"/examples/ruby in the dependencies group","ecosystem":"rubygems"},"body":"Bumps the dependencies group in /examples/ruby with 1 update: [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.90.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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/7rikazhexde/json2vars-setter/pull/654","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/654","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/654/packages"},{"uuid":"5354904305","node_id":"PR_kwDOJc6_X88AAAABCSHMrw","number":34,"state":"closed","title":"chore(deps): bump the ruby group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-12T02:08:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-05T02:07:07.000Z","updated_at":"2026-09-12T02:08:09.000Z","time_to_close":604860,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ruby","update_count":12,"packages":[{"name":"redis","old_version":"5.4.1","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"image_processing","old_version":"2.0.3","new_version":"2.1.0","repository_url":"https://github.com/janko/image_processing"},{"name":"sidekiq","old_version":"8.1.6","new_version":"8.1.7","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"rails_cloudflare_turnstile","old_version":"0.5.0","new_version":"0.5.1","repository_url":"https://github.com/instrumentl/rails-cloudflare-turnstile"},{"name":"sentry-rails","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"meta-tags","old_version":"2.23.0","new_version":"2.24.0","repository_url":"https://github.com/kpumuk/meta-tags"},{"name":"pagy","old_version":"43.6.1","new_version":"43.6.2","repository_url":"https://github.com/ddnexus/pagy"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rack-mini-profiler","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/MiniProfiler/rack-mini-profiler"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [redis](https://github.com/redis/redis-rb) | `5.4.1` | `6.0.0` |\n| [image_processing](https://github.com/janko/image_processing) | `2.0.3` | `2.1.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.6` | `8.1.7` |\n| [rails_cloudflare_turnstile](https://github.com/instrumentl/rails-cloudflare-turnstile) | `0.5.0` | `0.5.1` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [meta-tags](https://github.com/kpumuk/meta-tags) | `2.23.0` | `2.24.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.6.1` | `43.6.2` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.89.0` | `1.90.0` |\n| [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) | `4.0.1` | `5.0.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.48.0` |\n\n\nUpdates `redis` from 5.4.1 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-rb/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003cp\u003eThis is a major release of the \u003ccode\u003eredis\u003c/code\u003e and \u003ccode\u003eredis-clustering\u003c/code\u003e gems. The headline change is that the client now speaks \u003cstrong\u003eRESP3 by default\u003c/strong\u003e, alongside first-class support for the \u003cstrong\u003eRedis Query Engine\u003c/strong\u003e and the \u003cstrong\u003eJSON module\u003c/strong\u003e, a batch of new Redis 6.2–8.10 commands, and experimental support for the Redis 8.10 \u003ccode\u003eHIMPORT\u003c/code\u003e bulk-ingestion command family.\u003c/p\u003e\n\u003cp\u003eCommand return values are unchanged from 5.x with one exception (GEO coordinates, see below), so for most applications this upgrade is a \u003ccode\u003eGemfile\u003c/code\u003e bump.\u003c/p\u003e\n\u003cp\u003eRequires \u003cstrong\u003eRuby 3.2+\u003c/strong\u003e and works with \u003cstrong\u003eRedis server 6.0+\u003c/strong\u003e (older servers are handled via automatic RESP2 fallback).\u003c/p\u003e\n\u003ch3\u003eRESP3 by default\u003c/h3\u003e\n\u003cp\u003eRESP3's richer wire types (native maps, doubles, booleans) let the parser deliver replies already in their final Ruby shape. Under RESP2, structured replies arrive as flat arrays of bulk strings that the client must re-shape in Ruby — e.g. \u003ccode\u003eHGETALL\u003c/code\u003e builds a \u003ccode\u003eHash\u003c/code\u003e from a flat \u003ccode\u003e[field, value, ...]\u003c/code\u003e array, and sorted-set scores are converted \u003ccode\u003eString\u003c/code\u003e → \u003ccode\u003eFloat\u003c/code\u003e pair by pair. Under RESP3 that re-shaping pass disappears.\u003c/p\u003e\n\u003cp\u003eMeasured with \u003ca href=\"https://github.com/redis/redis-rb/blob/master/bench/resp_comparison.rb\"\u003ebench/resp_comparison.rb\u003c/a\u003e (redis-rb 6.0.0, Ruby 3.4.1, Redis 8.8, localhost, 100-element replies):\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePure-Ruby driver (default):\u003c/strong\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eWorkload\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 RPS (8 threads)\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 µs CPU/op\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eGET (50B string)\u003c/td\u003e\n\u003ctd\u003e4251 → 4436 (+4%)\u003c/td\u003e\n\u003ctd\u003e23.4 → 22.9 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHGETALL (100 fields)\u003c/td\u003e\n\u003ctd\u003e2361 → 2560 (+8%)\u003c/td\u003e\n\u003ctd\u003e164 → 129 (\u003cstrong\u003e−22%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eZRANGE WITHSCORES (100)\u003c/td\u003e\n\u003ctd\u003e2597 → 2459 (−5%)\u003c/td\u003e\n\u003ctd\u003e130 → 147 (~0, noise)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXRANGE (100 entries)\u003c/td\u003e\n\u003ctd\u003e1544 → 1570 (+2%)\u003c/td\u003e\n\u003ctd\u003e346 → 328 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u003cstrong\u003ehiredis driver (C parser):\u003c/strong\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eWorkload\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 RPS (8 threads)\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 µs CPU/op\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eGET\u003c/td\u003e\n\u003ctd\u003e12756 → 12620 (~0)\u003c/td\u003e\n\u003ctd\u003e69 → 70 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHGETALL\u003c/td\u003e\n\u003ctd\u003e10175 → 10592 (+4%)\u003c/td\u003e\n\u003ctd\u003e97 → 89 (−8%; 1 thread: 88 → 63, \u003cstrong\u003e−28%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eZRANGE WITHSCORES\u003c/td\u003e\n\u003ctd\u003e10036 → 11629 (\u003cstrong\u003e+16%\u003c/strong\u003e)\u003c/td\u003e\n\u003ctd\u003e108 → 85 (\u003cstrong\u003e−22%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXRANGE\u003c/td\u003e\n\u003ctd\u003e7053 → 6999 (~0)\u003c/td\u003e\n\u003ctd\u003e152 → 152 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eIn short: hash reads use ~10–25% less client CPU per call on both drivers; sorted-set reads with scores gain up to 16% throughput and ~20% less CPU with hiredis (unchanged on the pure-Ruby driver, where parsing RESP3 doubles costs roughly what the re-shaping pass did); simple string and stream commands are unaffected — their reply shapes are the same in both protocols. RESP3 pairs best with the hiredis driver, which moves all reply construction out of Ruby and into C.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMethodology note: figures are per-reply CPU measurements against a localhost server; wall-clock throughput gains in production depend on how network-bound your workload is.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eBeyond performance, RESP3 also lays the groundwork for push-based features — such as server-assisted client-side caching (\u003ccode\u003eCLIENT TRACKING\u003c/code\u003e invalidation events) — in future 6.x releases, without another protocol migration.\u003c/p\u003e\n\u003ch3\u003e🔥 Breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRESP3 by default\u003c/strong\u003e (see above); pass \u003ccode\u003eprotocol: 2\u003c/code\u003e to keep RESP2. The only return-value change is GEO coordinates as \u003ccode\u003eFloat\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequires Ruby 3.2+\u003c/strong\u003e (previously 2.7/2.6). Bundler will keep older Rubies on the 5.4.x series automatically. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1353\"\u003e#1353\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCluster gem (\u003ccode\u003eredis-clustering\u003c/code\u003e) only\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCommands are now routed by their server-declared command tips (redis-cluster-client 0.16.6+): \u003ccode\u003eSLOWLOG GET\u003c/code\u003e returns one entry list per master; \u003ccode\u003eSLOWLOG LEN\u003c/code\u003e and \u003ccode\u003eLATENCY RESET\u003c/code\u003e return the sum across all masters; \u003ccode\u003eFUNCTION LOAD\u003c/code\u003e/\u003ccode\u003eDELETE\u003c/code\u003e/\u003ccode\u003eFLUSH\u003c/code\u003e/\u003ccode\u003eRESTORE\u003c/code\u003e now execute on all masters (previously a single arbitrary node — this also fixes \u003ccode\u003eFCALL\u003c/code\u003e failing for keys on other masters); commands with keys in subcommands (e.g. \u003ccode\u003eXINFO STREAM\u003c/code\u003e) route to the key's slot owner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 New features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRedis Query Engine\u003c/strong\u003e (RediSearch, \u003ccode\u003eFT.*\u003c/code\u003e): \u003ccode\u003eft_create\u003c/code\u003e, \u003ccode\u003eft_alter\u003c/code\u003e, \u003ccode\u003eft_dropindex\u003c/code\u003e, \u003ccode\u003eft_info\u003c/code\u003e, \u003ccode\u003eft_search\u003c/code\u003e, \u003ccode\u003eft_aggregate\u003c/code\u003e, vector and hybrid search, suggestions, dictionaries, synonyms, aliases, and spellcheck. Not supported by \u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1356\"\u003e#1356\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1359\"\u003e#1359\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1360\"\u003e#1360\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJSON module\u003c/strong\u003e: \u003ccode\u003ejson_set\u003c/code\u003e, \u003ccode\u003ejson_get\u003c/code\u003e, \u003ccode\u003ejson_mset\u003c/code\u003e, \u003ccode\u003ejson_mget\u003c/code\u003e, \u003ccode\u003ejson_del\u003c/code\u003e, \u003ccode\u003ejson_forget\u003c/code\u003e, \u003ccode\u003ejson_clear\u003c/code\u003e, \u003ccode\u003ejson_merge\u003c/code\u003e, \u003ccode\u003ejson_arr*\u003c/code\u003e, \u003ccode\u003ejson_obj*\u003c/code\u003e, \u003ccode\u003ejson_str*\u003c/code\u003e, \u003ccode\u003ejson_numincrby\u003c/code\u003e, \u003ccode\u003ejson_toggle\u003c/code\u003e, \u003ccode\u003ejson_type\u003c/code\u003e, \u003ccode\u003ejson_debug_memory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1346\"\u003e#1346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1347\"\u003e#1347\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1348\"\u003e#1348\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1349\"\u003e#1349\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/redis/redis-rb/blob/master/CHANGELOG.md\"\u003eredis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.0\u003c/h1\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse RESP3 (\u003ccode\u003eHELLO 3\u003c/code\u003e) by default; pass \u003ccode\u003eprotocol: 2\u003c/code\u003e to keep RESP2. \u003ccode\u003eGEOPOS\u003c/code\u003e and\n\u003ccode\u003eGEOSEARCH\u003c/code\u003e/\u003ccode\u003eGEORADIUS\u003c/code\u003e with \u003ccode\u003eWITHCOORD\u003c/code\u003e now return coordinates as \u003ccode\u003eFloat\u003c/code\u003e instead of \u003ccode\u003eString\u003c/code\u003e.\nSee \u003ca href=\"https://github.com/redis/redis-rb/blob/master/specs/migration-resp3.md\"\u003ehttps://github.com/redis/redis-rb/blob/master/specs/migration-resp3.md\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Ruby 3.2+. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1353\"\u003e#1353\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the Redis Query Engine (RediSearch, \u003ccode\u003eFT.*\u003c/code\u003e): \u003ccode\u003eft_create\u003c/code\u003e, \u003ccode\u003eft_alter\u003c/code\u003e,\n\u003ccode\u003eft_dropindex\u003c/code\u003e, \u003ccode\u003eft_info\u003c/code\u003e, \u003ccode\u003eft_search\u003c/code\u003e, \u003ccode\u003eft_aggregate\u003c/code\u003e, vector and hybrid search, suggestions,\ndictionaries, synonyms, aliases, and spellcheck. Not supported by \u003ccode\u003eRedis::Distributed\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1356\"\u003e#1356\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1359\"\u003e#1359\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1360\"\u003e#1360\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the JSON module: \u003ccode\u003ejson_set\u003c/code\u003e, \u003ccode\u003ejson_get\u003c/code\u003e, \u003ccode\u003ejson_mset\u003c/code\u003e, \u003ccode\u003ejson_mget\u003c/code\u003e, \u003ccode\u003ejson_del\u003c/code\u003e,\n\u003ccode\u003ejson_forget\u003c/code\u003e, \u003ccode\u003ejson_clear\u003c/code\u003e, \u003ccode\u003ejson_merge\u003c/code\u003e, \u003ccode\u003ejson_arr*\u003c/code\u003e, \u003ccode\u003ejson_obj*\u003c/code\u003e, \u003ccode\u003ejson_str*\u003c/code\u003e,\n\u003ccode\u003ejson_numincrby\u003c/code\u003e, \u003ccode\u003ejson_toggle\u003c/code\u003e, \u003ccode\u003ejson_type\u003c/code\u003e, \u003ccode\u003ejson_debug_memory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1346\"\u003e#1346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1347\"\u003e#1347\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1348\"\u003e#1348\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1349\"\u003e#1349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd keyspace notification support: channel builders and a binary-safe parser for the classic\n\u003ccode\u003e__keyspace@*\u003c/code\u003e/\u003ccode\u003e__keyevent@*\u003c/code\u003e channels and the Redis 8.8 subkey notification families\n(\u003ccode\u003eRedis::KeyspaceNotifications\u003c/code\u003e), plus a manager (\u003ccode\u003eRedis#keyspace_notifications\u003c/code\u003e) that owns a\ndedicated connection, dispatches typed \u003ccode\u003eNotification\u003c/code\u003e objects to handlers, and automatically\nre-subscribes after connection loss (\u003ccode\u003eon_reconnect\u003c/code\u003e signals the lossy gap). Enabling\n\u003ccode\u003enotify-keyspace-events\u003c/code\u003e on the server remains the operator's responsibility. Not supported by\n\u003ccode\u003eRedis::Distributed\u003c/code\u003e. See specs/keyspace-notifications/user-guide.md.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elmovem\u003c/code\u003e and \u003ccode\u003eblmovem\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1363\"\u003e#1363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esunioncard\u003c/code\u003e and \u003ccode\u003esdiffcard\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003exread\u003c/code\u003e and \u003ccode\u003exreadgroup\u003c/code\u003e now accept \u003ccode\u003emax_count:\u003c/code\u003e and \u003ccode\u003emax_size:\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ehexpire\u003c/code\u003e, \u003ccode\u003ehpexpire\u003c/code\u003e, \u003ccode\u003ehttl\u003c/code\u003e and \u003ccode\u003ehpttl\u003c/code\u003e (Redis 7.4). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1324\"\u003e#1324\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1325\"\u003e#1325\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ehexpireat\u003c/code\u003e, \u003ccode\u003ehpexpireat\u003c/code\u003e, \u003ccode\u003ehexpiretime\u003c/code\u003e, \u003ccode\u003ehpexpiretime\u003c/code\u003e and \u003ccode\u003ehpersist\u003c/code\u003e; \u003ccode\u003ehexpire\u003c/code\u003e and\n\u003ccode\u003ehpexpire\u003c/code\u003e now accept the \u003ccode\u003enx:\u003c/code\u003e/\u003ccode\u003exx:\u003c/code\u003e/\u003ccode\u003egt:\u003c/code\u003e/\u003ccode\u003elt:\u003c/code\u003e condition options (Redis 7.4). All are\navailable on \u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1374\"\u003e#1374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehscan\u003c/code\u003e and \u003ccode\u003ehscan_each\u003c/code\u003e now accept \u003ccode\u003enovalues: true\u003c/code\u003e (Redis 7.4). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egeosearch\u003c/code\u003e and \u003ccode\u003egeosearchstore\u003c/code\u003e (Redis 6.2); geo commands are now available on\n\u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1342\"\u003e#1342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egeoadd\u003c/code\u003e now accepts \u003ccode\u003enx:\u003c/code\u003e, \u003ccode\u003exx:\u003c/code\u003e and \u003ccode\u003ech:\u003c/code\u003e; geo radius searches accept \u003ccode\u003ecount_any:\u003c/code\u003e; \u003ccode\u003exadd\u003c/code\u003e\naccepts \u003ccode\u003elimit:\u003c/code\u003e (Redis 6.2). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1345\"\u003e#1345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRedis::Distributed\u003c/code\u003e now implements \u003ccode\u003ehscan\u003c/code\u003e, \u003ccode\u003ehscan_each\u003c/code\u003e and \u003ccode\u003ehstrlen\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1319\"\u003e#1319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIdentify the client to the server via \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e (\u003ccode\u003elib-name=redis-rb\u003c/code\u003e,\n\u003ccode\u003elib-ver=\u0026lt;version\u0026gt;\u003c/code\u003e). Extend the reported name with \u003ccode\u003edriver_info:\u003c/code\u003e, or disable with\n\u003ccode\u003edriver_info: false\u003c/code\u003e. See the README \u0026quot;Client identification\u0026quot; section. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehimport_prepare\u003c/code\u003e, \u003ccode\u003ehimport_set\u003c/code\u003e, \u003ccode\u003ehimport_discard\u003c/code\u003e and \u003ccode\u003ehimport_discard_all\u003c/code\u003e\n(Redis 8.10 \u003ccode\u003eHIMPORT\u003c/code\u003e). Lost fieldsets are re-prepared and retried automatically; disable with\n\u003ccode\u003ehimport_auto_prepare: false\u003c/code\u003e. The API may change in a future minor release. See the README\n\u0026quot;Bulk hash ingestion (HIMPORT)\u0026quot; section. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/0fa108aed7255ea20a9c236d690153abcf81762d\"\u003e\u003ccode\u003e0fa108a\u003c/code\u003e\u003c/a\u003e Fixed merge conflicts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/4dca97de5d6128259df93aa728b78e917fad47ef\"\u003e\u003ccode\u003e4dca97d\u003c/code\u003e\u003c/a\u003e Sync with master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/32d781b3d0564e7f339a771f9bf13e57b9623077\"\u003e\u003ccode\u003e32d781b\u003c/code\u003e\u003c/a\u003e Identify redis-rb to the server via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/e5d6b0a027448ec17b93ded756f8dc74f6fb652b\"\u003e\u003ccode\u003ee5d6b0a\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/19f8a639026ca4964f73764046959e4acfff6b42\"\u003e\u003ccode\u003e19f8a63\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/60c4aadd5610d760fd43af40dfd2aba094411746\"\u003e\u003ccode\u003e60c4aad\u003c/code\u003e\u003c/a\u003e Prepare 6.0.0 release (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/89407d4d7877612c10c4f5d0db20fe3e4b84f249\"\u003e\u003ccode\u003e89407d4\u003c/code\u003e\u003c/a\u003e Fixed unstable test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/eba7fdca8c9c730799d35c1e333d325e9b2b41a0\"\u003e\u003ccode\u003eeba7fdc\u003c/code\u003e\u003c/a\u003e Fixed rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/56fc0b95bc4353d76e3dde7f81835be6d00d8965\"\u003e\u003ccode\u003e56fc0b9\u003c/code\u003e\u003c/a\u003e Prepare 6.0.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/dd2d1585c44e5a8d8b3c866dad579b7fb803f6c7\"\u003e\u003ccode\u003edd2d158\u003c/code\u003e\u003c/a\u003e Added support for Ruby 3.2+ (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-rb/compare/v5.4.1...v6.0.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.0.3 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\u003c/blockquote\u003e\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\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.0.3...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.6 to 8.1.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForward compatibililty with Active Job 8.1 \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7019\"\u003e#7019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMany minor fixes and test improvements [hammadxcm]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/1bb4aa06e5aa178a114a5e855f9f3d5c24f6c61b\"\u003e\u003ccode\u003e1bb4aa0\u003c/code\u003e\u003c/a\u003e prep for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f7d4e43724b0816764f16cd617c27f9edb213eb2\"\u003e\u003ccode\u003ef7d4e43\u003c/code\u003e\u003c/a\u003e Disable happy eyeballs to minimize thread noise in profiler output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/8cd683ee81c4ff8f64daaa6b07181f39d31e44a0\"\u003e\u003ccode\u003e8cd683e\u003c/code\u003e\u003c/a\u003e re-fmt with latest standard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/e1f808a08645f9b8a194852a171b5667f5f877bd\"\u003e\u003ccode\u003ee1f808a\u003c/code\u003e\u003c/a\u003e Updated Hindi locale wrt latest en.yml (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7059\"\u003e#7059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0679cb45fed6febd86a18e39854d142961ecc37f\"\u003e\u003ccode\u003e0679cb4\u003c/code\u003e\u003c/a\u003e Update documentation with forum (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/27ec98218bfcf6a90080e1852a0bee16ff4e3c80\"\u003e\u003ccode\u003e27ec982\u003c/code\u003e\u003c/a\u003e updated locale to the latest (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7057\"\u003e#7057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3ab01da03a71b3c94a36f3a2f84976cbc36b6d0d\"\u003e\u003ccode\u003e3ab01da\u003c/code\u003e\u003c/a\u003e Metrics: draw deploy marks from every day the queried window spans (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7056\"\u003e#7056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/e3753389e5a71c2dd26ec0691fae175d6e1e4c9a\"\u003e\u003ccode\u003ee375338\u003c/code\u003e\u003c/a\u003e TUI: Render controls dynamically based on terminal width (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7052\"\u003e#7052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c809c57ca233d81a80bd8dbe05d8a876945540e2\"\u003e\u003ccode\u003ec809c57\u003c/code\u003e\u003c/a\u003e Convert help screen hotkeys to table (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7051\"\u003e#7051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6ced4c2a00a3f5770c36cb93337ffba5e798c745\"\u003e\u003ccode\u003e6ced4c2\u003c/code\u003e\u003c/a\u003e changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.6...v8.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails_cloudflare_turnstile` from 0.5.0 to 0.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/releases\"\u003erails_cloudflare_turnstile's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump nokogiri from 1.18.10 to 1.19.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/246\"\u003einstrumentl/rails-cloudflare-turnstile#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.7.4 to 2.9.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/248\"\u003einstrumentl/rails-cloudflare-turnstile#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump bundler-audit from 0.9.2 to 0.9.3 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/instrumentl/rails-cloudflare-turnstile/pull/253\"\u003einstrumentl/rails-cloudflare-turnstile#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump pry from 0.15.2 to 0.16.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/250\"\u003einstrumentl/rails-cloudflare-turnstile#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.3.0 to 13.3.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/247\"\u003einstrumentl/rails-cloudflare-turnstile#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rails from 8.1.0 to 8.1.2 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/instrumentl/rails-cloudflare-turnstile/pull/251\"\u003einstrumentl/rails-cloudflare-turnstile#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump rspec-rails from 7.1.1 to 8.0.4 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/instrumentl/rails-cloudflare-turnstile/pull/252\"\u003einstrumentl/rails-cloudflare-turnstile#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.0 to 2.9.2 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/instrumentl/rails-cloudflare-turnstile/pull/254\"\u003einstrumentl/rails-cloudflare-turnstile#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ruby 4.0 to the testing matrix by \u003ca href=\"https://github.com/gsinkin-instrumentl\"\u003e\u003ccode\u003e@​gsinkin-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/256\"\u003einstrumentl/rails-cloudflare-turnstile#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rails from 8.1.2 to 8.1.3 by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/257\"\u003einstrumentl/rails-cloudflare-turnstile#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade action_text-trix from 2.1.17 to 2.1.18 by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/261\"\u003einstrumentl/rails-cloudflare-turnstile#261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.51.1 to 1.54.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/259\"\u003einstrumentl/rails-cloudflare-turnstile#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump webmock from 3.25.1 to 3.26.2 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/instrumentl/rails-cloudflare-turnstile/pull/258\"\u003einstrumentl/rails-cloudflare-turnstile#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rack-session from 2.1.1 to 2.1.2 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/instrumentl/rails-cloudflare-turnstile/pull/260\"\u003einstrumentl/rails-cloudflare-turnstile#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump addressable from 2.8.9 to 2.9.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/262\"\u003einstrumentl/rails-cloudflare-turnstile#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.2 to 2.9.3 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/instrumentl/rails-cloudflare-turnstile/pull/263\"\u003einstrumentl/rails-cloudflare-turnstile#263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.3.1 to 13.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/264\"\u003einstrumentl/rails-cloudflare-turnstile#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.4.1 to 13.4.2 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/instrumentl/rails-cloudflare-turnstile/pull/265\"\u003einstrumentl/rails-cloudflare-turnstile#265\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump erb from 6.0.2 to 6.0.4 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/instrumentl/rails-cloudflare-turnstile/pull/266\"\u003einstrumentl/rails-cloudflare-turnstile#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.3 to 2.9.4 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/instrumentl/rails-cloudflare-turnstile/pull/268\"\u003einstrumentl/rails-cloudflare-turnstile#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump net-imap from 0.6.3 to 0.6.4 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/instrumentl/rails-cloudflare-turnstile/pull/267\"\u003einstrumentl/rails-cloudflare-turnstile#267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade nokogiri and faraday to eliminate CVEs by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/271\"\u003einstrumentl/rails-cloudflare-turnstile#271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.4 to 2.9.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/272\"\u003einstrumentl/rails-cloudflare-turnstile#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: resolve net-imap CVEs by \u003ca href=\"https://github.com/gsinkin-instrumentl\"\u003e\u003ccode\u003e@​gsinkin-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/273\"\u003einstrumentl/rails-cloudflare-turnstile#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add **html_options (e.g. CSP nonce) support to cloudflare_turnstile_script_tag by \u003ca href=\"https://github.com/kwent\"\u003e\u003ccode\u003e@​kwent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/269\"\u003einstrumentl/rails-cloudflare-turnstile#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.54.0 to 1.55.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/274\"\u003einstrumentl/rails-cloudflare-turnstile#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump 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/instrumentl/rails-cloudflare-turnstile/pull/275\"\u003einstrumentl/rails-cloudflare-turnstile#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update loofah, rails-html-sanitizer, websocket-driver by \u003ca href=\"https://github.com/senthil-instrumentl\"\u003e\u003ccode\u003e@​senthil-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/278\"\u003einstrumentl/rails-cloudflare-turnstile#278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.55.0 to 1.56.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/276\"\u003einstrumentl/rails-cloudflare-turnstile#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-python 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/instrumentl/rails-cloudflare-turnstile/pull/277\"\u003einstrumentl/rails-cloudflare-turnstile#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bump rails to 8.1.3.1 to address cve-2026-66066 by \u003ca href=\"https://github.com/celinefb\"\u003e\u003ccode\u003e@​celinefb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/279\"\u003einstrumentl/rails-cloudflare-turnstile#279\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.5 to 2.9.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/280\"\u003einstrumentl/rails-cloudflare-turnstile#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ruby 4.0 support and release 0.5.1 by \u003ca href=\"https://github.com/celinefb\"\u003e\u003ccode\u003e@​celinefb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/281\"\u003einstrumentl/rails-cloudflare-turnstile#281\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/kwent\"\u003e\u003ccode\u003e@​kwent\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/269\"\u003einstrumentl/rails-cloudflare-turnstile#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senthil-instrumentl\"\u003e\u003ccode\u003e@​senthil-instrumentl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/278\"\u003einstrumentl/rails-cloudflare-turnstile#278\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.1\"\u003ehttps://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.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/instrumentl/rails-cloudflare-turnstile/blob/main/CHANGELOG.md\"\u003erails_cloudflare_turnstile's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support added.\u003c/li\u003e\n\u003cli\u003eDependencies updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/35bd12ed3c99c49f45bb135fa9ecda16e96a4494\"\u003e\u003ccode\u003e35bd12e\u003c/code\u003e\u003c/a\u003e feat: add ruby 4.0 support and release 0.5.1 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/bf25fa5669ac1d144d4afd7f3cca26bff6bcee28\"\u003e\u003ccode\u003ebf25fa5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump sqlite3 from 2.9.5 to 2.9.6 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/a448a38d33e1d0fd2045a05464cb1a207c04a82f\"\u003e\u003ccode\u003ea448a38\u003c/code\u003e\u003c/a\u003e fix: bump rails to 8.1.3.1 to address cve-2026-66066 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/55f3ae02cb8aa2a321140cc7ea447b129fd4f9e2\"\u003e\u003ccode\u003e55f3ae0\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-python from 6 to 7 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/08443bf0ae475697ce3c53b2a21359fb8c36c8e7\"\u003e\u003ccode\u003e08443bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump standard from 1.55.0 to 1.56.0 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/b2328806ea292dd527c1798983dac4fb2f1f0fcf\"\u003e\u003ccode\u003eb232880\u003c/code\u003e\u003c/a\u003e chore: update loofah, rails-html-sanitizer, websocket-driver (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/b894a11a94ef26aac011ac2aed1c2ccb06ce8691\"\u003e\u003ccode\u003eb894a11\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/6f971629379c2d82a4c6b4c208f5454d4c671782\"\u003e\u003ccode\u003e6f97162\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump standard from 1.54.0 to 1.55.0 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/ce3d116397df42fc793c2f40b4b18599f7b495be\"\u003e\u003ccode\u003ece3d116\u003c/code\u003e\u003c/a\u003e feat: add **html_options (e.g. CSP nonce) support to cloudflare_turnstile_scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/55216e07faccdc1c3263f922d3e7f14c4391aed4\"\u003e\u003ccode\u003e55216e0\u003c/code\u003e\u003c/a\u003e chore: resolve net-imap CVEs (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/b6c4ddd7b8dc304ec85b468e64fa899f9e530032\"\u003e\u003ccode\u003eb6c4ddd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Make rails breadcrumbs respect data collection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3068\"\u003e#3068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/040fb0da92c2d94342d636fbe464f46718529c84\"\u003e\u003ccode\u003e040fb0d\u003c/code\u003e\u003c/a\u003e fix(rails): set dummy rails app before calling initializers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2f8328f33e458dd38c278cf9e4d17b11066812b1\"\u003e\u003ccode\u003e2f8328f\u003c/code\u003e\u003c/a\u003e feat(data-collection): Allow booleans as shorthand for KeyValueCollection fie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d3f1ff40665704c08fc83c07d8815fa44e8a7925\"\u003e\u003ccode\u003ed3f1ff4\u003c/code\u003e\u003c/a\u003e feat! Remove enable_metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/4842d951cfbc400c4476b5ebd9e74f89b152c8d0\"\u003e\u003ccode\u003e4842d95\u003c/code\u003e\u003c/a\u003e feat(data-collection): configure and filter collected data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3028\"\u003e#3028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d11f357c7bc3278fda96b52995827ffd39326f9c\"\u003e\u003ccode\u003ed11f357\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/baf8c9add168f8e96ee6ca356a12a1479448b22d\"\u003e\u003ccode\u003ebaf8c9a\u003c/code\u003e\u003c/a\u003e README.md: Drop broken Dependabot version compatibility badge (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3042\"\u003e#3042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/924f0677fd21465e8a653fca66fb3c8487450bbd\"\u003e\u003ccode\u003e924f067\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2f8328f33e458dd38c278cf9e4d17b11066812b1\"\u003e\u003ccode\u003e2f8328f\u003c/code\u003e\u003c/a\u003e feat(data-collection): Allow booleans as shorthand for KeyValueCollection fie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d3f1ff40665704c08fc83c07d8815fa44e8a7925\"\u003e\u003ccode\u003ed3f1ff4\u003c/code\u003e\u003c/a\u003e feat! Remove enable_metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/4842d951cfbc400c4476b5ebd9e74f89b152c8d0\"\u003e\u003ccode\u003e4842d95\u003c/code\u003e\u003c/a\u003e feat(data-collection): configure and filter collected data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3028\"\u003e#3028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d11f357c7bc3278fda96b52995827ffd39326f9c\"\u003e\u003ccode\u003ed11f357\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/baf8c9add168f8e96ee6ca356a12a1479448b22d\"\u003e\u003ccode\u003ebaf8c9a\u003c/code\u003e\u003c/a\u003e README.md: Drop broken Dependabot version compatibility badge (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3042\"\u003e#3042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/924f0677fd21465e8a653fca66fb3c8487450bbd\"\u003e\u003ccode\u003e924f067\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meta-tags` from 2.23.0 to 2.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kpumuk/meta-tags/releases\"\u003emeta-tags's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to stop truncating arrays mid-item by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/354\"\u003ekpumuk/meta-tags#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.293.0 to 1.294.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/355\"\u003ekpumuk/meta-tags#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.294.0 to 1.295.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/356\"\u003ekpumuk/meta-tags#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden Dependabot push workflow against untrusted checkouts by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/357\"\u003ekpumuk/meta-tags#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenSSF Scorecards workflow by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/358\"\u003ekpumuk/meta-tags#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden GitHub workflow security by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/359\"\u003ekpumuk/meta-tags#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTighten workflow permission declarations by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/360\"\u003ekpumuk/meta-tags#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport custom robots directives by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/361\"\u003ekpumuk/meta-tags#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CodeQL CSRF warning in test controller by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/362\"\u003ekpumuk/meta-tags#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.295.0 to 1.297.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/363\"\u003ekpumuk/meta-tags#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.297.0 to 1.299.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/364\"\u003ekpumuk/meta-tags#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubygems/release-gem from 1.1.4 to 1.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/365\"\u003ekpumuk/meta-tags#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.299.0 to 1.300.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/366\"\u003ekpumuk/meta-tags#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.300.0 to 1.301.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/369\"\u003ekpumuk/meta-tags#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 3.0.0 to 3.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/368\"\u003ekpumuk/meta-tags#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/367\"\u003ekpumuk/meta-tags#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.301.0 to 1.302.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/370\"\u003ekpumuk/meta-tags#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.302.0 to 1.306.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/372\"\u003ekpumuk/meta-tags#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pedantic zizmor workflow and fix GitHub Actions findings by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/374\"\u003ekpumuk/meta-tags#374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.306.0 to 1.307.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/375\"\u003ekpumuk/meta-tags#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 3.1.1 to 3.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/376\"\u003ekpumuk/meta-tags#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump zizmorcore/zizmor-action from 0.5.3 to 0.5.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/377\"\u003ekpumuk/meta-tags#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump zizmorcore/zizmor-action from 0.5.5 to 0.5.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/379\"\u003ekpumuk/meta-tags#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.307.0 to 1.308.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/378\"\u003ekpumuk/meta-tags#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.308.0 to 1.310.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/380\"\u003ekpumuk/meta-tags#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/XIVAuth/XIVAuth/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/XIVAuth%2FXIVAuth/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"5330174966","node_id":"PR_kwDORpu9T88AAAABB-XLqw","number":70,"state":"closed","title":"build(deps): Bump the bundler group across 2 directories with 2 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T04:43:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-02T23:04:55.000Z","updated_at":"2026-09-04T04:43:17.000Z","time_to_close":106700,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"bundler","update_count":2,"packages":[{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 1 update in the /proto-clients/spicedb-ruby-proto directory: [google-protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the bundler group with 2 updates in the /spicedb-ruby directory: [google-protobuf](https://github.com/protocolbuffers/protobuf) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/authzed/spicedb-clients-prototype/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fspicedb-clients-prototype/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"},{"uuid":"5312017592","node_id":"PR_kwDOD_yjk88AAAABBv3tsQ","number":293,"state":"closed","title":"Bump the all-minor-patch group with 2 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T23:15:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-01T12:48:47.000Z","updated_at":"2026-09-04T23:15:10.000Z","time_to_close":296780,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-minor-patch","update_count":2,"packages":[{"name":"mdl","old_version":"0.18.0","new_version":"0.18.1","repository_url":"https://github.com/mivok/markdownlint"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-minor-patch group with 2 updates: [mdl](https://github.com/mivok/markdownlint) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `mdl` from 0.18.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/markdownlint/markdownlint/blob/main/CHANGELOG.md\"\u003emdl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v0.18.1] (2026-08-09)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed crash on startup when using old versions of the uri gem.\n\u003ca href=\"https://redirect.github.com/markdownlint/markdownlint/pull/606/\"\u003e#606\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/markdownlint/markdownlint/commit/7810020e1bf3cb3eef0733cd754bc5bc00a5de5a\"\u003e\u003ccode\u003e7810020\u003c/code\u003e\u003c/a\u003e Make releasing docker properly easier (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markdownlint/markdownlint/commit/22ef36763e4fcfe8ea172716df5d0d66fe8a0aac\"\u003e\u003ccode\u003e22ef367\u003c/code\u003e\u003c/a\u003e Prep 0.18.1 (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markdownlint/markdownlint/commit/80e27d166a96eae2fe7be9eab2e84feb6d0f5991\"\u003e\u003ccode\u003e80e27d1\u003c/code\u003e\u003c/a\u003e Fix default ruleset loading with older URI versions (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mivok/markdownlint/compare/v0.18.0...v0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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/jaymzh/sugarjar/pull/293","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fsugarjar/issues/293","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/293/packages"},{"uuid":"5311049224","node_id":"PR_kwDOFJy-N88AAAABBvFrgw","number":257,"state":"open","title":"Bump the rubocop group across 1 directory with 5 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-09-01T11:07:24.000Z","updated_at":"2026-09-12T21:54:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"rubocop","update_count":5,"packages":[{"name":"rubocop","old_version":"1.87.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-rails","old_version":"2.35.3","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.9.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-capybara","old_version":"2.23.0","new_version":"3.0.0","repository_url":"https://github.com/rubocop/rubocop-capybara"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the rubocop group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.87.0` | `1.90.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.3` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.23.0` | `3.0.0` |\n\n\nUpdates `rubocop` from 1.87.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.87.0...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.35.3 to 2.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.37.0\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1649\"\u003e#1649\u003c/a\u003e: Allow frozen array/hash literal (e.g. \u003ccode\u003e[].freeze\u003c/code\u003e, \u003ccode\u003e{}.freeze\u003c/code\u003e) as \u003ccode\u003e:default\u003c/code\u003e value in \u003ccode\u003eRails/AttributeDefaultBlockValue\u003c/code\u003e. (\u003ca href=\"https://github.com/kuboon\"\u003e\u003ccode\u003e@​kuboon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1652\"\u003e#1652\u003c/a\u003e: Improve \u003ccode\u003eRails/HttpPositionalArguments\u003c/code\u003e performance by checking for \u003ccode\u003einclude Rack::Test::Methods\u003c/code\u003e once per file instead of once per HTTP call. (\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1650\"\u003e#1650\u003c/a\u003e: Speed up loading rubocop-rails by lazily loading only the cops and mixins needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.36.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1647\"\u003e#1647\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/EagerEvaluationLogMessage\u003c/code\u003e when the interpolated string is passed to \u003ccode\u003eRails.logger.debug\u003c/code\u003e as the sole body of an enclosing block such as \u003ccode\u003eeach\u003c/code\u003e or \u003ccode\u003etap\u003c/code\u003e. (\u003ca href=\"https://github.com/conwayje\"\u003e\u003ccode\u003e@​conwayje\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1646\"\u003e#1646\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/ReversibleMigration\u003c/code\u003e when using \u003ccode\u003eremove_index\u003c/code\u003e without a column inside a \u003ccode\u003echange_table\u003c/code\u003e block. (\u003ca href=\"https://github.com/ilianah\"\u003e\u003ccode\u003e@​ilianah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1642\"\u003e#1642\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with a symbol to proc such as \u003ccode\u003efoo.try(\u0026amp;:bar)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1599\"\u003e#1599\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eRails/LinkToBlank\u003c/code\u003e when \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e with \u003ccode\u003eEnforcedStyleForMultiline: consistent_comma\u003c/code\u003e adds a trailing comma, which produced a duplicate comma. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1619\"\u003e#1619\u003c/a\u003e: Fix \u003ccode\u003eMigratedSchemaVersion\u003c/code\u003e setting so it works for all cops. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1641\"\u003e#1641\u003c/a\u003e: Fix false negatives in \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with operator methods such as \u003ccode\u003e[]\u003c/code\u003e, \u003ccode\u003e[]=\u003c/code\u003e, and \u003ccode\u003e==\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.5\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. (\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. (\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. (\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.37.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1649\"\u003e#1649\u003c/a\u003e: Allow frozen array/hash literal (e.g. \u003ccode\u003e[].freeze\u003c/code\u003e, \u003ccode\u003e{}.freeze\u003c/code\u003e) as \u003ccode\u003e:default\u003c/code\u003e value in \u003ccode\u003eRails/AttributeDefaultBlockValue\u003c/code\u003e. ([\u003ca href=\"https://github.com/kuboon\"\u003e\u003ccode\u003e@​kuboon\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1652\"\u003e#1652\u003c/a\u003e: Improve \u003ccode\u003eRails/HttpPositionalArguments\u003c/code\u003e performance by checking for \u003ccode\u003einclude Rack::Test::Methods\u003c/code\u003e once per file instead of once per HTTP call. ([\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1650\"\u003e#1650\u003c/a\u003e: Speed up loading rubocop-rails by lazily loading only the cops and mixins needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-07-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1647\"\u003e#1647\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/EagerEvaluationLogMessage\u003c/code\u003e when the interpolated string is passed to \u003ccode\u003eRails.logger.debug\u003c/code\u003e as the sole body of an enclosing block such as \u003ccode\u003eeach\u003c/code\u003e or \u003ccode\u003etap\u003c/code\u003e. ([\u003ca href=\"https://github.com/conwayje\"\u003e\u003ccode\u003e@​conwayje\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1646\"\u003e#1646\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/ReversibleMigration\u003c/code\u003e when using \u003ccode\u003eremove_index\u003c/code\u003e without a column inside a \u003ccode\u003echange_table\u003c/code\u003e block. ([\u003ca href=\"https://github.com/ilianah\"\u003e\u003ccode\u003e@​ilianah\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1642\"\u003e#1642\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with a symbol to proc such as \u003ccode\u003efoo.try(\u0026amp;:bar)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1599\"\u003e#1599\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eRails/LinkToBlank\u003c/code\u003e when \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e with \u003ccode\u003eEnforcedStyleForMultiline: consistent_comma\u003c/code\u003e adds a trailing comma, which produced a duplicate comma. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1619\"\u003e#1619\u003c/a\u003e: Fix \u003ccode\u003eMigratedSchemaVersion\u003c/code\u003e setting so it works for all cops. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1641\"\u003e#1641\u003c/a\u003e: Fix false negatives in \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with operator methods such as \u003ccode\u003e[]\u003c/code\u003e, \u003ccode\u003e[]=\u003c/code\u003e, and \u003ccode\u003e==\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.5 (2026-06-21)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. ([\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.4 (2026-06-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. ([\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2ccba590ec4732e13dd4b5dfc8609874372d8f43\"\u003e\u003ccode\u003e2ccba59\u003c/code\u003e\u003c/a\u003e Cut 2.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/597f35228c30a30112d315c1b7450f603c8a034d\"\u003e\u003ccode\u003e597f352\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/a4004945c27bd62a7b8a4d0b1a0a54158bd177e5\"\u003e\u003ccode\u003ea400494\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1652\"\u003e#1652\u003c/a\u003e from moberegger/moberegger/optimize-HttpPositionalAr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cbc61579fde667271c3db91b90bbf3688b056a43\"\u003e\u003ccode\u003ecbc6157\u003c/code\u003e\u003c/a\u003e Optimize HttpPositionalArguments cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cb023b962c0880ccc081094695ea1ae78fe28c1f\"\u003e\u003ccode\u003ecb023b9\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/166cfc6b8f1cf08862cb97d7858d1d07128cb7dc\"\u003e\u003ccode\u003e166cfc6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1650\"\u003e#1650\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/3dd63780cd897ad65faed05bf732c748af44df82\"\u003e\u003ccode\u003e3dd6378\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/0b20dad75d274a222eb1d8d357007b0a646f3fd3\"\u003e\u003ccode\u003e0b20dad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1649\"\u003e#1649\u003c/a\u003e from kuboon/copilot/attribute-default-block-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/7c766962387a0d6eb15971be560dde75f2e6eb85\"\u003e\u003ccode\u003e7c76696\u003c/code\u003e\u003c/a\u003e Allow frozen literal defaults in AttributeDefaultBlockValue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/84fef55a2c21c326e15fed7f47d965280114dfd5\"\u003e\u003ccode\u003e84fef55\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.3...v2.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.9.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. (\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). (\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). (\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2 (2026-06-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. ([\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.1 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). ([\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2488441eb70a9dd40843492d4ce76d491ee98a8f\"\u003e\u003ccode\u003e2488441\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2189\"\u003e#2189\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/c9e53cf7e52f01baf54d9f9e1cb76f8788a3f2b7\"\u003e\u003ccode\u003ec9e53cf\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/7ae0a42f6e2510b910959b3457164ea87fa15635\"\u003e\u003ccode\u003e7ae0a42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2186\"\u003e#2186\u003c/a\u003e from sakuro/fix/spec-file-path-format-empty-custom-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/8b0b5e9dd4035dfa8d51a7d42fad35b363f700d2\"\u003e\u003ccode\u003e8b0b5e9\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into fix/spec-file-path-format-empty-custom-transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/dc4465cb76cf0b8a6c088cb8ed983ab63e0e7740\"\u003e\u003ccode\u003edc4465c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2188\"\u003e#2188\u003c/a\u003e from rubocop/fix-2185\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/d5de6b244e5992e6b0487e6c5f31e85cb48bc88c\"\u003e\u003ccode\u003ed5de6b2\u003c/code\u003e\u003c/a\u003e Consider regexp with options a non-simple regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/bad0cb3d8a6703f10a620b0c91dbb8e32db273bb\"\u003e\u003ccode\u003ebad0cb3\u003c/code\u003e\u003c/a\u003e :bug: Fix RSpec/SpecFilePathFormat false positives when CustomTransform maps ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ec3eeab2e7041d1891b0355c5516b7b161b811a2\"\u003e\u003ccode\u003eec3eeab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2183\"\u003e#2183\u003c/a\u003e from rubocop/fix-match-with-simple-regex-with-interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/16bbf497ec1af234fc8ecbdacabfb519469af2c0\"\u003e\u003ccode\u003e16bbf49\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2a78abd918ea7ebeea829318b05eee358885ae7a\"\u003e\u003ccode\u003e2a78abd\u003c/code\u003e\u003c/a\u003e Ignore interpolation in MatchWithSimpleRegex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.9.0...v3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-capybara` from 2.23.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/releases\"\u003erubocop-capybara's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Capybara v3.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable pending cops by default for the 3.0 release. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove the deprecated \u003ccode\u003eCapybara/ClickLinkOrButtonStyle\u003c/code\u003e cop. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove obsolete cop name migration config for the 2.x to 3.0 transition. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md\"\u003erubocop-capybara's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0 (2026-06-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable pending cops by default for the 3.0 release. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eRemove the deprecated \u003ccode\u003eCapybara/ClickLinkOrButtonStyle\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eRemove obsolete cop name migration config for the 2.x to 3.0 transition. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/a9b8f9aae8d960a0139960728785d760afc921aa\"\u003e\u003ccode\u003ea9b8f9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/177\"\u003e#177\u003c/a\u003e from rubocop/v3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/6a4579d93be9d23c261ccf06143c0c8d4fefddd3\"\u003e\u003ccode\u003e6a4579d\u003c/code\u003e\u003c/a\u003e release v3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/75e7cdaf542df18841284bb11bb10326db545a02\"\u003e\u003ccode\u003e75e7cda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/176\"\u003e#176\u003c/a\u003e from rubocop/docs/update-specific-matcher-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/f02ff72536c524b21c6ac7668912d7df7f5e895f\"\u003e\u003ccode\u003ef02ff72\u003c/code\u003e\u003c/a\u003e Update SpecificMatcher README example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ebe10e8b9056f37ad42da8d346fb1986f053ef72\"\u003e\u003ccode\u003eebe10e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/174\"\u003e#174\u003c/a\u003e from rubocop/enable-pending-capybara-cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/20a572111c2795e3f9f9544e923c88a007159dc9\"\u003e\u003ccode\u003e20a5721\u003c/code\u003e\u003c/a\u003e Enable pending Capybara cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/fee37740560e4ce64b75ea907a1607110e77c129\"\u003e\u003ccode\u003efee3774\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/173\"\u003e#173\u003c/a\u003e from rubocop/remove-obsolete-cop-name-migration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ea818bd7457ff96b7ea08d6dbce4936d1844d1d0\"\u003e\u003ccode\u003eea818bd\u003c/code\u003e\u003c/a\u003e Remove obsolete cop name migration config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/989fe3cc5826d4a75b8e0882f9607962e55904d6\"\u003e\u003ccode\u003e989fe3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/172\"\u003e#172\u003c/a\u003e from rubocop/remove-click-link-or-button-style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/5d5a5b8540f85b0907525b0d94060adc585e37b5\"\u003e\u003ccode\u003e5d5a5b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/175\"\u003e#175\u003c/a\u003e from rubocop/dependabot/github_actions/actions/checko...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-capybara/compare/v2.23.0...v3.0.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/danielabar/hello-visitor/pull/257","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielabar%2Fhello-visitor/issues/257","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/257/packages"},{"uuid":"5304885326","node_id":"PR_kwDOSUivxM8AAAABBqKhNQ","number":43,"state":"open","title":"Bump rubocop from 1.89.0 to 1.90.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-08-31T21:06:50.000Z","updated_at":"2026-09-03T23:32:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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/fuentesjr/metz-scan/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuentesjr%2Fmetz-scan/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"5303341902","node_id":"PR_kwDOTIf3NM8AAAABBo6zEA","number":19,"state":"closed","title":"Bump rubocop from 1.88.0 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T18:07:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T18:06:22.000Z","updated_at":"2026-09-14T18:07:44.000Z","time_to_close":1209679,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.88.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.88.0\u0026new-version=1.90.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/georgedouzas/mathpix-mcp/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgedouzas%2Fmathpix-mcp/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"},{"uuid":"5302984447","node_id":"PR_kwDOQozE1c8AAAABBooasA","number":93,"state":"closed","title":"build(deps-dev): bump rubocop from 1.88.2 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-08T23:58:09.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T17:24:39.000Z","updated_at":"2026-09-08T23:58:17.000Z","time_to_close":714810,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"rubocop","old_version":"1.88.2","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.2 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.88.2\u0026new-version=1.90.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/romkey/pdxhackerspace-geowiki/pull/93","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/romkey%2Fpdxhackerspace-geowiki/issues/93","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/93/packages"},{"uuid":"5301400109","node_id":"PR_kwDOGe0_Us8AAAABBnXNjw","number":307,"state":"closed","title":"Bump the bundler-patch-and-minor group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T02:32:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T14:36:22.000Z","updated_at":"2026-09-04T02:32:39.000Z","time_to_close":302176,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler-patch-and-minor","update_count":3,"packages":[{"name":"rubocop","old_version":"1.88.1","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"webmock","old_version":"3.26.2","new_version":"3.26.3","repository_url":"https://github.com/bblimke/webmock"},{"name":"yard","old_version":"0.9.44","new_version":"0.9.45","repository_url":"https://github.com/lsegal/yard"},{"name":"rubocop","old_version":"1.88.1","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-patch-and-minor group with 3 updates in the /toggly-ruby/toggly directory: [rubocop](https://github.com/rubocop/rubocop), [webmock](https://github.com/bblimke/webmock) and [yard](https://github.com/lsegal/yard).\nBumps the bundler-patch-and-minor group with 2 updates in the /toggly-ruby/toggly-cache directory: [rubocop](https://github.com/rubocop/rubocop) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `rubocop` from 1.88.1 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.1...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.2 to 3.26.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.26.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eConfirm to work with curb 1.3.7\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jbockler\"\u003eJosch Bockler\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/lesleh\"\u003eLeslie Hoare\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.26.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eConfirm to work with curb 1.3.7\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jbockler\"\u003eJosch Bockler\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/lesleh\"\u003eLeslie Hoare\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/ee409ac0a5f0c06cf6b88bd16a12f20e4ca3c178\"\u003e\u003ccode\u003eee409ac\u003c/code\u003e\u003c/a\u003e Version 3.26.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/2c976d5134fd4c43b504c21c5259e4459fa35db4\"\u003e\u003ccode\u003e2c976d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1127\"\u003e#1127\u003c/a\u003e from jbockler/curb-1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5b4015514eb0c4ff07c1591b971535d131f6a93c\"\u003e\u003ccode\u003e5b40155\u003c/code\u003e\u003c/a\u003e Confirm to work with curb 1.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/f685e7e8c514531653c47884a1effe92f478c82a\"\u003e\u003ccode\u003ef685e7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1130\"\u003e#1130\u003c/a\u003e from lesleh/fix-async-http-status-description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/a50557eb7f899a9008964d20ce653457527f0fa0\"\u003e\u003ccode\u003ea50557e\u003c/code\u003e\u003c/a\u003e Fix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.2...v3.26.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yard` from 0.9.44 to 0.9.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lsegal/yard/releases\"\u003eyard's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.9.45\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e@param\u003c/code\u003e types to document generated \u003ccode\u003eStruct.new\u003c/code\u003e and \u003ccode\u003eData.define\u003c/code\u003e members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1684\"\u003e#1684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd compatibility with RDoc 8\u003c/li\u003e\n\u003cli\u003eFix TypesExplainer parsing of types following Hash collections (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1688\"\u003e#1688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix HTML generation for RBS constants without source values (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix method redefinition warnings when loading YARD with Ruby warnings enabled (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove sanitization of \u003ccode\u003eyard server\u003c/code\u003e request paths\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/lsegal/yard/blob/main/CHANGELOG.md\"\u003eyard's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/lsegal/yard/compare/v0.9.44...v0.9.45\"\u003e0.9.45\u003c/a\u003e - July 14th, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e@param\u003c/code\u003e types to document generated \u003ccode\u003eStruct.new\u003c/code\u003e and \u003ccode\u003eData.define\u003c/code\u003e members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1684\"\u003e#1684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd compatibility with RDoc 8\u003c/li\u003e\n\u003cli\u003eFix TypesExplainer parsing of types following Hash collections (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1688\"\u003e#1688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix HTML generation for RBS constants without source values (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix method redefinition warnings when loading YARD with Ruby warnings enabled (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove sanitization of \u003ccode\u003eyard server\u003c/code\u003e request paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2659ecd7e721920db98a2e034405ad234e1846b8\"\u003e\u003ccode\u003e2659ecd\u003c/code\u003e\u003c/a\u003e Release: v0.9.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2b467e08167d898b6e4bbe0a8603339c89b90705\"\u003e\u003ccode\u003e2b467e0\u003c/code\u003e\u003c/a\u003e Create a gh-fix skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2842ba72b9dc7ed6f2a3843a55784866eaa97ef5\"\u003e\u003ccode\u003e2842ba7\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/00fe9b159eb19bf676499eca46d753cf1079b47a\"\u003e\u003ccode\u003e00fe9b1\u003c/code\u003e\u003c/a\u003e Refactor server sanitization logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/c6fd371438a5d53955e84e6093523b65bc7c96c9\"\u003e\u003ccode\u003ec6fd371\u003c/code\u003e\u003c/a\u003e Use \u003ca href=\"https://github.com/param\"\u003e\u003ccode\u003e@​param\u003c/code\u003e\u003c/a\u003e types for Struct and Data members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/d2a88839e5de58f198af1d13f9a6f35269809349\"\u003e\u003ccode\u003ed2a8883\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into fix/issue-1684-struct-data-pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/674d0cf08c6e4a99b8275c67e6d664565d69123a\"\u003e\u003ccode\u003e674d0cf\u003c/code\u003e\u003c/a\u003e Fix parser method redefinition warnings (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1694\"\u003e#1694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/9483cd376f0cd51b4c3bc061a2996f33cae54395\"\u003e\u003ccode\u003e9483cd3\u003c/code\u003e\u003c/a\u003e Use param types for Struct and Data members\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/12ed8b717f40cb62e5f812eee07350b883539668\"\u003e\u003ccode\u003e12ed8b7\u003c/code\u003e\u003c/a\u003e Merge main into fix/issue-1687-method-redefined-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/9b874e2015a842d05821a2af816bc1ca163de0da\"\u003e\u003ccode\u003e9b874e2\u003c/code\u003e\u003c/a\u003e Fix HTML generation for RBS constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lsegal/yard/compare/v0.9.44...v0.9.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.1 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c428...\n\n_Description has been truncated_","html_url":"https://github.com/ops-ai/Toggly.FeatureManagement/pull/307","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ops-ai%2FToggly.FeatureManagement/issues/307","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/307/packages"},{"uuid":"5276145403","node_id":"PR_kwDOPp5uw88AAAABBT6Dww","number":88,"state":"closed","title":"build(deps): bump the bundler group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T08:08:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T08:09:21.000Z","updated_at":"2026-09-04T08:08:48.000Z","time_to_close":604762,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":19,"packages":[{"name":"vernier","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/jhawthorn/vernier"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-sorbet","old_version":"0.13.2","new_version":"0.14.0","repository_url":"https://github.com/shopify/rubocop-sorbet"},{"name":"simplecov","old_version":"1.0.2","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"sorbet-static-and-runtime","old_version":"0.6.13359","new_version":"0.6.13433","repository_url":"https://github.com/sorbet/sorbet"},{"name":"spoom","old_version":"1.8.6","new_version":"1.8.7","repository_url":"https://github.com/Shopify/spoom"},{"name":"ruby-lsp","old_version":"0.26.10","new_version":"0.26.11","repository_url":"https://github.com/Shopify/ruby-lsp"},{"name":"csv","old_version":"3.3.5","new_version":"3.3.6","repository_url":"https://github.com/ruby/csv"},{"name":"patchelf","old_version":"1.5.2","new_version":"1.6.2","repository_url":"https://github.com/Homebrew/patchelf.rb"},{"name":"rubydex","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Shopify/rubydex"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 11 updates in the /Library/Homebrew directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [vernier](https://github.com/jhawthorn/vernier) | `1.10.1` | `1.11.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.88.2` | `1.89.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [rubocop-sorbet](https://github.com/shopify/rubocop-sorbet) | `0.13.2` | `0.14.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.0.2` | `1.1.1` |\n| [sorbet-static-and-runtime](https://github.com/sorbet/sorbet) | `0.6.13359` | `0.6.13433` |\n| [spoom](https://github.com/Shopify/spoom) | `1.8.6` | `1.8.7` |\n| [ruby-lsp](https://github.com/Shopify/ruby-lsp) | `0.26.10` | `0.26.11` |\n| [csv](https://github.com/ruby/csv) | `3.3.5` | `3.3.6` |\n| [patchelf](https://github.com/Homebrew/patchelf.rb) | `1.5.2` | `1.6.2` |\n| [rubydex](https://github.com/Shopify/rubydex) | `0.3.0` | `0.4.0` |\n\n\nUpdates `vernier` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/d56bc846db395a14405b66b45839bf630f0e9333\"\u003e\u003ccode\u003ed56bc84\u003c/code\u003e\u003c/a\u003e v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/6b59c36aab9b63532222cc4f9479d12bda52c197\"\u003e\u003ccode\u003e6b59c36\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/180\"\u003e#180\u003c/a\u003e from rwstauner/view-speed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/6b1dcad79a5edff2a21fb377afc47fc67c408b15\"\u003e\u003ccode\u003e6b1dcad\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into view-speed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/fe4dcc04b85ab0cbe005d76639bcfbcaaf502122\"\u003e\u003ccode\u003efe4dcc0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/182\"\u003e#182\u003c/a\u003e from rwstauner/zlib-min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/e7ba227fd9cc47335e8699c62575c8a404416696\"\u003e\u003ccode\u003ee7ba227\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/181\"\u003e#181\u003c/a\u003e from rwstauner/head-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/14f82b838f7961a2a7f5840f513d3d69df52ee53\"\u003e\u003ccode\u003e14f82b8\u003c/code\u003e\u003c/a\u003e Pin zlib to \u0026gt;= 3.2.1 in Gemfile to fix CI flakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/8807edacc2ff1bde32974dd7cfcce1bfa7a3a154\"\u003e\u003ccode\u003e8807eda\u003c/code\u003e\u003c/a\u003e Use object memsize to calculate retained object test range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/ce4c3eb361e618e999b098655f14ed97d17a7cc1\"\u003e\u003ccode\u003ece4c3eb\u003c/code\u003e\u003c/a\u003e Speed up file_listing output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/cbd271dcdf36013230aa329bdad8c4b7ce897ec4\"\u003e\u003ccode\u003ecbd271d\u003c/code\u003e\u003c/a\u003e Extract string sanitization for reuse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/cfe3528174ce47bd87e3a11b6317b5474b48bd57\"\u003e\u003ccode\u003ecfe3528\u003c/code\u003e\u003c/a\u003e Add tests for file_listing/top output\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.1...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-sorbet` from 0.13.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shopify/rubocop-sorbet/releases\"\u003erubocop-sorbet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eSorbet/SetterReturnType\u003c/code\u003e cop and extract RBSParser helper by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/389\"\u003eShopify/rubocop-sorbet#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TLetCorrection corrupting files with interior heredocs by \u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/387\"\u003eShopify/rubocop-sorbet#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch Lint/Void to be RBS \u003ccode\u003e#: absurd\u003c/code\u003e aware by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/390\"\u003eShopify/rubocop-sorbet#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1 and 3.2 by \u003ca href=\"https://github.com/Morriar\"\u003e\u003ccode\u003e@​Morriar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/392\"\u003eShopify/rubocop-sorbet#392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Shopify/rubocop-sorbet/compare/v0.13.2...v0.14.0\"\u003ehttps://github.com/Shopify/rubocop-sorbet/compare/v0.13.2...v0.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/0c73cb13bafce68598265360c3b6058aad4c655e\"\u003e\u003ccode\u003e0c73cb1\u003c/code\u003e\u003c/a\u003e Release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/19dde04b00807ec5f270d42e7e7e8c0cbf1b102e\"\u003e\u003ccode\u003e19dde04\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/394\"\u003e#394\u003c/a\u003e from Shopify/dependabot/github_actions/actions/stale-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/48db43249eb72081b44ea02ace87c291a69a3ca5\"\u003e\u003ccode\u003e48db432\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10.4.0 to 11.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/1ac9184889da701a52b9bc33d0e1bda3b840aa28\"\u003e\u003ccode\u003e1ac9184\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/392\"\u003e#392\u003c/a\u003e from Shopify/drop-ruby-3-1-3-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/8b872bebce2af75f8d24b8de393ed6fd755ea3b8\"\u003e\u003ccode\u003e8b872be\u003c/code\u003e\u003c/a\u003e Test against Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/191035819455b01e7ef6f34c8b006df818720b3b\"\u003e\u003ccode\u003e1910358\u003c/code\u003e\u003c/a\u003e Drop support for Ruby 3.1 and 3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/88c551208ef838855d9edd70dda07e401f123391\"\u003e\u003ccode\u003e88c5512\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/390\"\u003e#390\u003c/a\u003e from Shopify/rm-Lint/Void\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/38d21fc9ca3fecd769c440de4ad2dd9e6c171c50\"\u003e\u003ccode\u003e38d21fc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/387\"\u003e#387\u003c/a\u003e from dduugg/fix-t-let-interior-heredoc-corruption\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/cac0d1ab2105d51074f048000cd0b860a7ceaa2e\"\u003e\u003ccode\u003ecac0d1a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/389\"\u003e#389\u003c/a\u003e from Shopify/attr-writer-void\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/fc608980e03d976b36ba644687b26d58fecf197d\"\u003e\u003ccode\u003efc60898\u003c/code\u003e\u003c/a\u003e Add on_itblock alias to cops with on_block\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shopify/rubocop-sorbet/compare/v0.13.2...v0.14.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.0.2 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.316.0 to 1.318.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1238\"\u003esimplecov-ruby/simplecov#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: memoise key parsing in RubyDataParser to fix combiner performance regression by \u003ca href=\"https://github.com/oleksii-leonov\"\u003e\u003ccode\u003e@​oleksii-leonov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1239\"\u003esimplecov-ruby/simplecov#1239\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/oleksii-leonov\"\u003e\u003ccode\u003e@​oleksii-leonov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1239\"\u003esimplecov-ruby/simplecov#1239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.2...v1.0.3\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.2...v1.0.3\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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self...\n\n_Description has been truncated_","html_url":"https://github.com/Fats768/brew/pull/88","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fats768%2Fbrew/issues/88","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/88/packages"},{"uuid":"5274281069","node_id":"PR_kwDOAvES1c8AAAABBScJ3w","number":1079,"state":"closed","title":"chore(deps): bump rubocop from 1.89.0 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-12T02:57:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T03:03:31.000Z","updated_at":"2026-09-12T02:57:32.000Z","time_to_close":1295636,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.90.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/circleci-tools/circleci-cli/pull/1079","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/circleci-tools%2Fcircleci-cli/issues/1079","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1079/packages"},{"uuid":"5241317551","node_id":"PR_kwDOC2qI-M8AAAABA4O-Iw","number":179,"state":"closed","title":"Update rubocop requirement from ~\u003e 1.89.0 to ~\u003e 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-11T02:13:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-25T02:12:43.000Z","updated_at":"2026-09-11T02:13:22.000Z","time_to_close":1468837,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"rubocop","old_version":"~\u003e 1.89.0","new_version":"~\u003e 1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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 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/site-prism/site_prism-all_there/pull/179","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/site-prism%2Fsite_prism-all_there/issues/179","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/179/packages"},{"uuid":"5238746308","node_id":"PR_kwDOGS9fhc8AAAABA2NH9g","number":204,"state":"closed","title":"Update rubocop requirement from ~\u003e 1.88.0 to ~\u003e 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-10T19:43:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-24T19:42:51.000Z","updated_at":"2026-09-10T19:43:42.000Z","time_to_close":1468848,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"rubocop","old_version":"~\u003e 1.88.0","new_version":"~\u003e 1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.0...v1.90.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 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/site-prism/automation_helpers/pull/204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/site-prism%2Fautomation_helpers/issues/204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/204/packages"},{"uuid":"5194838358","node_id":"PR_kwDOCFQMCs8AAAABATrz5w","number":661,"state":"closed","title":"chore(deps): Bump the minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":["TC-SJ-Yoon"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-14T16:21:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-19T16:22:54.000Z","updated_at":"2026-09-14T16:21:45.000Z","time_to_close":2246329,"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":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"simplecov","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"aws-sdk-s3","old_version":"1.228.1","new_version":"1.229.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"msgpack","old_version":"1.8.3","new_version":"1.8.4","repository_url":"https://github.com/msgpack/msgpack-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.88.2` | `1.89.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.0.3` | `1.1.1` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.228.1` | `1.229.0` |\n| [msgpack](https://github.com/msgpack/msgpack-ruby) | `1.8.3` | `1.8.4` |\n\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.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.0.3 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self-contained report remains usable even if its optional sidecar JSON was later removed or damaged.\u003c/li\u003e\n\u003cli\u003eCoverage JSON consumers now reject malformed syntax, invalid UTF-8, and non-object roots through one shared parser. \u003ccode\u003eHTMLFormatter#format_from_json\u003c/code\u003e also validates the viewer's required metadata, coverage flags, enabled totals, groups, and source arrays before creating or replacing its output.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/76a8e4e0f6616a16ad7a5b5870ec2fdb772534fb\"\u003e\u003ccode\u003e76a8e4e\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e1bf502e41f267ccdcde1ec9e1e296770890ea21\"\u003e\u003ccode\u003ee1bf502\u003c/code\u003e\u003c/a\u003e Refresh the report screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/f33e0bff11349d0f1334c4a85aa786c416d88e3c\"\u003e\u003ccode\u003ef33e0bf\u003c/code\u003e\u003c/a\u003e Drop the coverage glyphs from the source view and its legend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/2673f9a91d0128b8502e227eb97d986e5c849b29\"\u003e\u003ccode\u003e2673f9a\u003c/code\u003e\u003c/a\u003e Let the tab strip own the report's top bar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/c6ef10b39f925e9ce58c9d0c1d3cbb7b498ff165\"\u003e\u003ccode\u003ec6ef10b\u003c/code\u003e\u003c/a\u003e Report a sandbox command timeout instead of its teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/06759785ca8219886176b0c94fe2795795c98772\"\u003e\u003ccode\u003e0675978\u003c/code\u003e\u003c/a\u003e Keep the conductor's merged report from hinging on runner luck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/560fae5b39ddd04163010692df57e19422fb75f3\"\u003e\u003ccode\u003e560fae5\u003c/code\u003e\u003c/a\u003e Exercise Rails' built-in Minitest integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/ab66677bc09981fb7b7324581b38dcf93700e94f\"\u003e\u003ccode\u003eab66677\u003c/code\u003e\u003c/a\u003e Remember the file-list sort order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/6640c1e5a6a34c13f287d3ca732e1f9519559029\"\u003e\u003ccode\u003e6640c1e\u003c/code\u003e\u003c/a\u003e Polish the source file view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e9ba8c34086eddf4be4b28f9dbe985b6d30521b1\"\u003e\u003ccode\u003ee9ba8c3\u003c/code\u003e\u003c/a\u003e Build a Rails-style screenshot coverage fixture\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.228.1 to 1.229.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.229.0 (2026-08-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - AWS Backup now lets you create read-only access points for Amazon S3 recovery points, enabling you to access backup data using S3 APIs without initiating a restore.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.228.2 (2026-07-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - S3 Encryption Client, encryptionV2 and encryptionV3, returns a decryption error for a malformed material description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msgpack` from 1.8.3 to 1.8.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog\"\u003emsgpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e2026-07-28 1.8.4\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMessagePack::Buffer\u003c/code\u003e to stop using already released memory page.\nThis could have caused data to leak across buffers when using the MessagePack::Buffer API\ndirectly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/42378b091b0936d27bc9649da366e90798345fe6\"\u003e\u003ccode\u003e42378b0\u003c/code\u003e\u003c/a\u003e Release 1.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/7cb88d4cf1b87d60c41d28b378922a7d63a7b6fe\"\u003e\u003ccode\u003e7cb88d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/399\"\u003e#399\u003c/a\u003e from Watson1978/fix-rmem-page-ownership\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/ce44d0ee7fc616754005ec511ffcaae1de841cae\"\u003e\u003ccode\u003ece44d0e\u003c/code\u003e\u003c/a\u003e Fix rmem page released while a later chunk still points into it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/8ab8a5a4f6ac85a26028c7c34c2b1f6c888f7790\"\u003e\u003ccode\u003e8ab8a5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/398\"\u003e#398\u003c/a\u003e from hsbt/claude/vigilant-chebyshev-63ce11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/b136b7fc114ed5935f0492dc31c0eae52613f263\"\u003e\u003ccode\u003eb136b7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/397\"\u003e#397\u003c/a\u003e from Watson1978/fix-recursive-ext-stack-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/cf586e97741195c303ed5402c7d2494ff67eaf16\"\u003e\u003ccode\u003ecf586e9\u003c/code\u003e\u003c/a\u003e Build deep recursive-extension spec payload without deep recursion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/752ad7f71789d6e210c160513d84dafb5a2c0a80\"\u003e\u003ccode\u003e752ad7f\u003c/code\u003e\u003c/a\u003e Skip recursive-extension StackError spec on JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/1b0cdf7bdcdb392c04ff9df5015f89530f45886d\"\u003e\u003ccode\u003e1b0cdf7\u003c/code\u003e\u003c/a\u003e Raise StackError instead of crashing on deeply nested recursive extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/d2e1c881c0f2305f3ac24645da3d6d1a3e80422f\"\u003e\u003ccode\u003ed2e1c88\u003c/code\u003e\u003c/a\u003e Fix build failure on mswin due to empty UNREACHABLE_RETURN()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/3efa8bd39fb886e2009e9f8307381b0aad88fc63\"\u003e\u003ccode\u003e3efa8bd\u003c/code\u003e\u003c/a\u003e Move dev dependencies in the Gemfile\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/msgpack/msgpack-ruby/compare/v1.8.3...v1.8.4\"\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 al...\n\n_Description has been truncated_","html_url":"https://github.com/Zetatango/porky_lib/pull/661","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zetatango%2Fporky_lib/issues/661","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/661/packages"},{"uuid":"5166719024","node_id":"PR_kwDOSmixLM7_0ilI","number":17,"state":"open","title":"chore(deps-dev): Bump the dev-dependencies group across 1 directory with 3 updates","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-08-16T22:42:55.000Z","updated_at":"2026-08-16T22:43:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Bump","group_name":"dev-dependencies","update_count":3,"packages":[{"name":"rbs","old_version":"4.1.1","new_version":"4.1.3","repository_url":"https://github.com/ruby/rbs"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"simplecov","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the dev-dependencies group with 3 updates in the / directory: [rbs](https://github.com/ruby/rbs), [rubocop](https://github.com/rubocop/rubocop) and [simplecov](https://github.com/simplecov-ruby/simplecov).\n\nUpdates `rbs` from 4.1.1 to 4.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rbs/releases\"\u003erbs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ruby/rbs/wiki/Release-Note-4.1\"\u003eRelease note\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't use Clang nullability qualifiers in strict ISO C mode (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3074\"\u003e#3074\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid eagerly inspecting call traces in type assertions (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3073\"\u003e#3073\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ruby/rbs/wiki/Release-Note-4.1\"\u003eRelease note\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep GC disabled during GC_test#test_stress_and_stress= (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix GC_test#test_enable leaving GC disabled for the rest of the suite (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3059\"\u003e#3059\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/ruby/rbs/blob/master/CHANGELOG.md\"\u003erbs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.3 (2026-08-10)\u003c/h2\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't use Clang nullability qualifiers in strict ISO C mode (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3074\"\u003e#3074\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid eagerly inspecting call traces in type assertions (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3073\"\u003e#3073\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2026-08-03)\u003c/h2\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep GC disabled during GC_test#test_stress_and_stress= (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix GC_test#test_enable leaving GC disabled for the rest of the suite (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3059\"\u003e#3059\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/ruby/rbs/commit/5c7f8a248a4cda9fd68a8f796238a5bda89f80f8\"\u003e\u003ccode\u003e5c7f8a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3077\"\u003e#3077\u003c/a\u003e from ruby/claude/release-4-1-3-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/8752e61ca8611bc46e6d008609b68182c0604236\"\u003e\u003ccode\u003e8752e61\u003c/code\u003e\u003c/a\u003e Version 4.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/0b57ea2d2f8e8523630599ab4d4cc2e9a23fb1f6\"\u003e\u003ccode\u003e0b57ea2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3076\"\u003e#3076\u003c/a\u003e from ruby/claude/rbs-3073-backport-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/7920265a93c995f2691220c097189f089c93e916\"\u003e\u003ccode\u003e7920265\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3075\"\u003e#3075\u003c/a\u003e from ruby/claude/rbs-3074-backport-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/bb496a6418fabdae8ebc21e19bcec9e611f5fdeb\"\u003e\u003ccode\u003ebb496a6\u003c/code\u003e\u003c/a\u003e Avoid eager call trace inspection in type assertions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/3515badae259f67c6d80fb4eb346295a08dfab77\"\u003e\u003ccode\u003e3515bad\u003c/code\u003e\u003c/a\u003e Don't use Clang nullability qualifiers in strict ISO C mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/2c394623014f41c37613ebc20586d407094d3883\"\u003e\u003ccode\u003e2c39462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3062\"\u003e#3062\u003c/a\u003e from ruby/claude/release-4-1-2-hurcyr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/d710ede47db9665447ceda557b2252669bfa9663\"\u003e\u003ccode\u003ed710ede\u003c/code\u003e\u003c/a\u003e Version 4.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/c95a7c9571cd44addc9c4846e4cf55cf9bf923b0\"\u003e\u003ccode\u003ec95a7c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3061\"\u003e#3061\u003c/a\u003e from ruby/claude/gc-stress-test-performance-424sfy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/1630d1f6c7a7a074b30497bc5b5e311806eb5e59\"\u003e\u003ccode\u003e1630d1f\u003c/code\u003e\u003c/a\u003e Keep GC disabled during GC_test#test_stress_and_stress=\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rbs/compare/v4.1.1...v4.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.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.0.3 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self-contained report remains usable even if its optional sidecar JSON was later removed or damaged.\u003c/li\u003e\n\u003cli\u003eCoverage JSON consumers now reject malformed syntax, invalid UTF-8, and non-object roots through one shared parser. \u003ccode\u003eHTMLFormatter#format_from_json\u003c/code\u003e also validates the viewer's required metadata, coverage flags, enabled totals, groups, and source arrays before creating or replacing its output.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/76a8e4e0f6616a16ad7a5b5870ec2fdb772534fb\"\u003e\u003ccode\u003e76a8e4e\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e1bf502e41f267ccdcde1ec9e1e296770890ea21\"\u003e\u003ccode\u003ee1bf502\u003c/code\u003e\u003c/a\u003e Refresh the report screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/f33e0bff11349d0f1334c4a85aa786c416d88e3c\"\u003e\u003ccode\u003ef33e0bf\u003c/code\u003e\u003c/a\u003e Drop the coverage glyphs from the source view and its legend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/2673f9a91d0128b8502e227eb97d986e5c849b29\"\u003e\u003ccode\u003e2673f9a\u003c/code\u003e\u003c/a\u003e Let the tab strip own the report's top bar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/c6ef10b39f925e9ce58c9d0c1d3cbb7b498ff165\"\u003e\u003ccode\u003ec6ef10b\u003c/code\u003e\u003c/a\u003e Report a sandbox command timeout instead of its teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/06759785ca8219886176b0c94fe2795795c98772\"\u003e\u003ccode\u003e0675978\u003c/code\u003e\u003c/a\u003e Keep the conductor's merged report from hinging on runner luck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/560fae5b39ddd04163010692df57e19422fb75f3\"\u003e\u003ccode\u003e560fae5\u003c/code\u003e\u003c/a\u003e Exercise Rails' built-in Minitest integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/ab66677bc09981fb7b7324581b38dcf93700e94f\"\u003e\u003ccode\u003eab66677\u003c/code\u003e\u003c/a\u003e Remember the file-list sort order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/6640c1e5a6a34c13f287d3ca732e1f9519559029\"\u003e\u003ccode\u003e6640c1e\u003c/code\u003e\u003c/a\u003e Polish the source file view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e9ba8c34086eddf4be4b28f9dbe985b6d30521b1\"\u003e\u003ccode\u003ee9ba8c3\u003c/code\u003e\u003c/a\u003e Build a Rails-style screenshot coverage fixture\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/poli-page/sdk-ruby/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli-page%2Fsdk-ruby/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"5120381308","node_id":"PR_kwDORXgSbc79hQSn","number":15,"state":"closed","title":"chore(deps): bump rubocop from 1.86.2 to 1.90.0 in the rubocop group across 1 directory","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-06T07:20:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-11T12:53:47.000Z","updated_at":"2026-09-06T07:20:53.000Z","time_to_close":2226424,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"rubocop","old_version":"1.86.2","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":"the rubocop group across 1 directory","ecosystem":"rubygems"},"body":"Bumps the rubocop group with 1 update in the / directory: [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `rubocop` from 1.86.2 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.90.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/skiftle/rubocop-canon/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skiftle%2Frubocop-canon/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"5092411377","node_id":"PR_kwDOLFamU878Jav2","number":715,"state":"open","title":"Bump the ruby-minor-and-patch group with 2 updates","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-08-07T17:14:16.000Z","updated_at":"2026-08-07T17:16:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-minor-and-patch","update_count":2,"packages":[{"name":"fastlane-plugin-wpmreleasetoolkit","old_version":"14.11.1","new_version":"14.11.2","repository_url":"https://github.com/wordpress-mobile/release-toolkit"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-minor-and-patch group with 2 updates: [fastlane-plugin-wpmreleasetoolkit](https://github.com/wordpress-mobile/release-toolkit) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `fastlane-plugin-wpmreleasetoolkit` from 14.11.1 to 14.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/releases\"\u003efastlane-plugin-wpmreleasetoolkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e14.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epublish_github_release\u003c/code\u003e now publishes the most recently created GitHub Release when several share the same name, instead of whichever one the GitHub API happened to list first. It also warns when it finds more than one match, or when the release it publishes turns out to have been published already. The tag-based release lookup used by \u003ccode\u003eupload_github_release_assets\u003c/code\u003e is deterministic too, preferring the published release that owns the tag, and falling back to the most recently created draft when no published release claims it. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the \u003ccode\u003eGitHelper\u003c/code\u003e git-lfs specs against a sandboxed \u003ccode\u003eGIT_CONFIG_GLOBAL\u003c/code\u003e so they no longer remove the \u003ccode\u003e[filter \u0026quot;lfs\u0026quot;]\u003c/code\u003e section from the developer's global git config. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\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/wordpress-mobile/release-toolkit/blob/trunk/CHANGELOG.md\"\u003efastlane-plugin-wpmreleasetoolkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e14.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epublish_github_release\u003c/code\u003e now publishes the most recently created GitHub Release when several share the same name, instead of whichever one the GitHub API happened to list first. It also warns when it finds more than one match, or when the release it publishes turns out to have been published already. The tag-based release lookup used by \u003ccode\u003eupload_github_release_assets\u003c/code\u003e is deterministic too, preferring the published release that owns the tag, and falling back to the most recently created draft when no published release claims it. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the \u003ccode\u003eGitHelper\u003c/code\u003e git-lfs specs against a sandboxed \u003ccode\u003eGIT_CONFIG_GLOBAL\u003c/code\u003e so they no longer remove the \u003ccode\u003e[filter \u0026quot;lfs\u0026quot;]\u003c/code\u003e section from the developer's global git config. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\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/wordpress-mobile/release-toolkit/commit/447f736791943002b63c5f0b250128b2f48c3dd2\"\u003e\u003ccode\u003e447f736\u003c/code\u003e\u003c/a\u003e Release 14.11.2 into trunk (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/768\"\u003e#768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/1eb17dd82c253a0462ba6360a7a58d020f83951d\"\u003e\u003ccode\u003e1eb17dd\u003c/code\u003e\u003c/a\u003e Bumped to version 14.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/0ddc10eafc83567b547e4dc5c31a94aba0a81e41\"\u003e\u003ccode\u003e0ddc10e\u003c/code\u003e\u003c/a\u003e Sandbox the global git config in git-lfs specs (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/3205f9ee16197b2f3caf212e77a385d6b27788e2\"\u003e\u003ccode\u003e3205f9e\u003c/code\u003e\u003c/a\u003e Publish the most recent GitHub Release when several share a name (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e \u0026amp; \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/eb10938a5e2769b020163bba68357190d050397a\"\u003e\u003ccode\u003eeb10938\u003c/code\u003e\u003c/a\u003e List the wrong release first in release lookup specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/3b81bb1b59752829560bcde7d281938056792e04\"\u003e\u003ccode\u003e3b81bb1\u003c/code\u003e\u003c/a\u003e Fix rubocop violation (trailing whitespace)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/26e2cc147569faf950b123bd3bba8476c3364471\"\u003e\u003ccode\u003e26e2cc1\u003c/code\u003e\u003c/a\u003e Remove stray interpolation of space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/c9cacaae82494af28d4cb579f82d26998e2a9910\"\u003e\u003ccode\u003ec9cacaa\u003c/code\u003e\u003c/a\u003e Prefer the release owning the tag over a more recent draft\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/dd43d630ad3309d6bc81a3f4d717ce282c426d59\"\u003e\u003ccode\u003edd43d63\u003c/code\u003e\u003c/a\u003e Fix lint and spec fallout from the review suggestions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/39d348e9ff4a277b137585637ddc19f34d13e9ce\"\u003e\u003ccode\u003e39d348e\u003c/code\u003e\u003c/a\u003e Apply suggestions from code review\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/compare/14.11.1...14.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.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/Automattic/Gravatar-SDK-Android/pull/715","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Automattic%2FGravatar-SDK-Android/issues/715","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/715/packages"}],"issue_packages":[{"old_version":"1.89.0","new_version":"1.91.0","update_type":"minor","path":null,"pr_created_at":"2026-09-14T02:32:37.000Z","version_change":"1.89.0 → 1.91.0","issue":{"uuid":"5444490543","node_id":"PR_kwDOABJuf88AAAABDYyOBA","number":1060,"state":"open","title":"Bump rubocop from 1.89.0 to 1.91.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":25,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-14T02:32:37.000Z","updated_at":"2026-09-14T02:36:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.91.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.91.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.91.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15639\"\u003e#15639\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstParameterIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ParameterAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.91.0 (2026-09-10)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6eee0afc5fc9d5ba09f2769c689d0e6769402a79\"\u003e\u003ccode\u003e6eee0af\u003c/code\u003e\u003c/a\u003e Cut 1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ed0572d29d0fd383ce6b47881259f8ec5ad3d5a3\"\u003e\u003ccode\u003eed0572d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/318127275d7fa1b935e4fcc0c6669fa95e651031\"\u003e\u003ccode\u003e3181272\u003c/code\u003e\u003c/a\u003e Fix an infinite loop for \u003ccode\u003eStyle/NumericLiteralPrefix\u003c/code\u003e with signed literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b87652adeee453a8d7d9501d0133bf9400f4db07\"\u003e\u003ccode\u003eb87652a\u003c/code\u003e\u003c/a\u003e Fix Layout/LineLength SplitStrings loop on trailing-space split point\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/fce7a33e4baaebcb4b39c51c10df37d827bd5cc4\"\u003e\u003ccode\u003efce7a33\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e] Fix first array indentation loop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/321bd65b90f1b947017c5649f83e5aa8c35d947d\"\u003e\u003ccode\u003e321bd65\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/a464cbadf067731a684c65555852a6ae03e1b2a5\"\u003e\u003ccode\u003ea464cba\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix incorrect autocorrects for \u003ccode\u003eStyle/NilComparison\u003c/code\u003e with precedence...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3192b704205551d5f6642c59235007e624c60f4b\"\u003e\u003ccode\u003e3192b70\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f747cabefc80aed1eb89c4dfe5847e72da5c64fa\"\u003e\u003ccode\u003ef747cab\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or ass...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3f52020aba27b4ccafc33619282204db8f6951bb\"\u003e\u003ccode\u003e3f52020\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for the preview fail level\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.91.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.91.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/Starkast/wikimum/pull/1060","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Starkast%2Fwikimum/issues/1060","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1060/packages"}},{"old_version":"1.90.0","new_version":"1.91.0","update_type":"minor","path":null,"pr_created_at":"2026-09-13T17:03:05.000Z","version_change":"1.90.0 → 1.91.0","issue":{"uuid":"5441464954","node_id":"PR_kwDOTZZH4c8AAAABDWb1MQ","number":174,"state":"open","title":"chore(deps-dev): update rubocop requirement from 1.90.0 to 1.91.0","user":"dependabot[bot]","labels":["area:infra"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-13T17:03:05.000Z","updated_at":"2026-09-13T17:03:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"rubocop","old_version":"1.90.0","new_version":"1.91.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.91.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15639\"\u003e#15639\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstParameterIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ParameterAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.91.0 (2026-09-10)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15631\"\u003e#15631\u003c/a\u003e: Add a preview channel for unstable behavior. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15627\"\u003e#15627\u003c/a\u003e: Add a SARIF formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15686\"\u003e#15686\u003c/a\u003e: Add \u003ccode\u003eAllCops: FailLevel\u003c/code\u003e, the configuration equivalent of \u003ccode\u003e--fail-level\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15650\"\u003e#15650\u003c/a\u003e: Add \u003ccode\u003eAllowedDirectives\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e, exempting directive kinds such as generated \u003ccode\u003erubocop:todo\u003c/code\u003e comments. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15629\"\u003e#15629\u003c/a\u003e: Add \u003ccode\u003e--changed\u003c/code\u003e to inspect only the files git says changed. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15628\"\u003e#15628\u003c/a\u003e: Add \u003ccode\u003e--diff\u003c/code\u003e to preview autocorrection without writing files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15615\"\u003e#15615\u003c/a\u003e: Add new \u003ccode\u003eLint/MisplacedMagicComment\u003c/code\u003e cop to flag magic comments in positions where Ruby ignores them. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:enable-next\u003c/code\u003e directive to re-enable cops for the next statement only. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15600\"\u003e#15600\u003c/a\u003e: Add the \u003ccode\u003erubocop:next\u003c/code\u003e directive, combining \u003ccode\u003epush\u003c/code\u003e-style \u003ccode\u003e+\u003c/code\u003e/\u003ccode\u003e-\u003c/code\u003e arguments with \u003ccode\u003edisable-next\u003c/code\u003e's statement scope. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15363\"\u003e#15363\u003c/a\u003e: Let a cop's entry in the default configuration carry a \u003ccode\u003ePreview\u003c/code\u003e section with the defaults it is expected to adopt in the next major release, applied under \u003ccode\u003ePreview\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantRegexpCharacterClass\u003c/code\u003e with \u003ccode\u003e\\8\u003c/code\u003e/\u003ccode\u003e\\9\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15646\"\u003e#15646\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/ElseAlignment\u003c/code\u003e when \u003ccode\u003eelse\u003c/code\u003e is used with \u003ccode\u003erescue\u003c/code\u003e in a \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003emodule\u003c/code\u003e, or singleton class body. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15613\"\u003e#15613\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when a hash value starts on the line below its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15623\"\u003e#15623\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15602\"\u003e#15602\u003c/a\u003e: Fix an error for \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e on under-indented code with tab indentation. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15672\"\u003e#15672\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e when a file contains more than one \u003ccode\u003erubocop:push\u003c/code\u003e/\u003ccode\u003erubocop:pop\u003c/code\u003e pair. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15625\"\u003e#15625\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e when a body repeats the same access modifier. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15603\"\u003e#15603\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e with \u003ccode\u003eEnforcedStyle: inline\u003c/code\u003e when an access modifier is the body of an \u003ccode\u003eif\u003c/code\u003e without an \u003ccode\u003eelse\u003c/code\u003e branch. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15604\"\u003e#15604\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ConstantVisibility\u003c/code\u003e when a visibility declaration splats anything other than an array literal, e.g. \u003ccode\u003eprivate_constant(*constants(false))\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15647\"\u003e#15647\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/DocumentationMethod\u003c/code\u003e when an inline \u003ccode\u003emodule_function\u003c/code\u003e/\u003ccode\u003eruby2_keywords\u003c/code\u003e \u003ccode\u003edef\u003c/code\u003e is preceded by another argument. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when a method definition is nested inside another method definition. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15674\"\u003e#15674\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and one operand of a float division is itself a parenthesized float division. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15624\"\u003e#15624\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when the looked-up key is itself a hash lookup. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15642\"\u003e#15642\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e when hash rockets are enforced and a hash value repeats its key. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15634\"\u003e#15634\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when the other operand is a parenthesized \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15648\"\u003e#15648\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the parentheses contain \u003ccode\u003eand\u003c/code\u003e, \u003ccode\u003eor\u003c/code\u003e, \u003ccode\u003enot\u003c/code\u003e, or a modifier expression. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15612\"\u003e#15612\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BlockForwarding\u003c/code\u003e with \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15680\"\u003e#15680\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: require_always\u003c/code\u003e and the method body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15669\"\u003e#15669\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FloatDivision\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: fdiv\u003c/code\u003e and the divisor is a method call with parenthesized arguments. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15678\"\u003e#15678\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e when using \u003ccode\u003eEnforcedStyle: for\u003c/code\u003e and the block body has a \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e clause. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15645\"\u003e#15645\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/GuardClause\u003c/code\u003e with \u003ccode\u003eStyle/MissingElse\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15668\"\u003e#15668\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: omit_parentheses\u003c/code\u003e is used together with \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15347\"\u003e#15347\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantDoubleSplatHashBraces\u003c/code\u003e with a braced \u003ccode\u003emerge\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e around \u003ccode\u003eand\u003c/code\u003e/\u003ccode\u003eor\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15349\"\u003e#15349\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantRegexpConstructor\u003c/code\u003e with \u003ccode\u003e%r{}\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15614\"\u003e#15614\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e with separator style. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15599\"\u003e#15599\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e when many comment blocks with the same indentation are separated by empty lines. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15597\"\u003e#15597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/EmptyLinesAfterModuleInclusion\u003c/code\u003e when a module inclusion is directly before \u003ccode\u003erescue\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15617\"\u003e#15617\u003c/a\u003e: Fix an infinite loop between \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e with \u003ccode\u003eForceEqualSignAlignment\u003c/code\u003e and \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArrayElementIndentation\u003c/code\u003e with \u003ccode\u003eLayout/ArrayAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is configured. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6eee0afc5fc9d5ba09f2769c689d0e6769402a79\"\u003e\u003ccode\u003e6eee0af\u003c/code\u003e\u003c/a\u003e Cut 1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ed0572d29d0fd383ce6b47881259f8ec5ad3d5a3\"\u003e\u003ccode\u003eed0572d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/318127275d7fa1b935e4fcc0c6669fa95e651031\"\u003e\u003ccode\u003e3181272\u003c/code\u003e\u003c/a\u003e Fix an infinite loop for \u003ccode\u003eStyle/NumericLiteralPrefix\u003c/code\u003e with signed literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b87652adeee453a8d7d9501d0133bf9400f4db07\"\u003e\u003ccode\u003eb87652a\u003c/code\u003e\u003c/a\u003e Fix Layout/LineLength SplitStrings loop on trailing-space split point\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/fce7a33e4baaebcb4b39c51c10df37d827bd5cc4\"\u003e\u003ccode\u003efce7a33\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15638\"\u003e#15638\u003c/a\u003e] Fix first array indentation loop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/321bd65b90f1b947017c5649f83e5aa8c35d947d\"\u003e\u003ccode\u003e321bd65\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NestedModifier\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/a464cbadf067731a684c65555852a6ae03e1b2a5\"\u003e\u003ccode\u003ea464cba\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix incorrect autocorrects for \u003ccode\u003eStyle/NilComparison\u003c/code\u003e with precedence...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3192b704205551d5f6642c59235007e624c60f4b\"\u003e\u003ccode\u003e3192b70\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/NonNilCheck\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f747cabefc80aed1eb89c4dfe5847e72da5c64fa\"\u003e\u003ccode\u003ef747cab\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15347\"\u003e#15347\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eStyle/Not\u003c/code\u003e with a flip-flop or ass...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3f52020aba27b4ccafc33619282204db8f6951bb\"\u003e\u003ccode\u003e3f52020\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for the preview fail level\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.90.0...v1.91.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 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/Arcflect/veltrunode/pull/174","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arcflect%2Fveltrunode/issues/174","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/174/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-09-08T02:06:13.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5381010068","node_id":"PR_kwDOJKv3g88AAAABCmVmtw","number":1349,"state":"closed","title":"Bump the bundler group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-11T02:04:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-08T02:06:13.000Z","updated_at":"2026-09-11T02:04:59.000Z","time_to_close":259124,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":4,"packages":[{"name":"laa_crime_forms_common","old_version":"`b5a7b05`","new_version":"`a0c7f3e`","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"webmock","old_version":"3.26.3","new_version":"3.26.4","repository_url":"https://github.com/bblimke/webmock"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 4 updates in the / directory: [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common), [rubocop](https://github.com/rubocop/rubocop), [selenium-webdriver](https://github.com/SeleniumHQ/selenium) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `laa_crime_forms_common` from `b5a7b05` to `a0c7f3e`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/a0c7f3e40c7f0af8457b0fb74df09cf632b59e87\"\u003e\u003ccode\u003ea0c7f3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/131\"\u003e#131\u003c/a\u003e from ministryofjustice/CRM457-3293-map-payment-basis-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/710814d783a79a36f76533034892c73dc82893f3\"\u003e\u003ccode\u003e710814d\u003c/code\u003e\u003c/a\u003e reduce duplication\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/72142a40e6a8d4782bc63d19bc36a2a45540b806\"\u003e\u003ccode\u003e72142a4\u003c/code\u003e\u003c/a\u003e change naming to avoid confusion  where there is a previous payment but that ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/eab6317da6b4de79ef7506005442dad59ed3da6a\"\u003e\u003ccode\u003eeab6317\u003c/code\u003e\u003c/a\u003e add linked_no_previous_payment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/8c33589711e7423ae5dd6e2815b98fd63979bf54\"\u003e\u003ccode\u003e8c33589\u003c/code\u003e\u003c/a\u003e add shared semantics for payment_basis\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/b5a7b05e38fa2d4472e3a1029f26917f28c87945...a0c7f3e40c7f0af8457b0fb74df09cf632b59e87\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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.47.0 to 4.48.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.48.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[js] Normalize empty custom locator results by \u003ca href=\"https://github.com/munawiki\"\u003e\u003ccode\u003e@​munawiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17851\"\u003eSeleniumHQ/selenium#17851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: fix W3C capabilities built from a list of options (create_matches) 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/17897\"\u003eSeleniumHQ/selenium#17897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] add low-level BiDi protocol integration 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/17878\"\u003eSeleniumHQ/selenium#17878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix badge for CI build on the default branch 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/17901\"\u003eSeleniumHQ/selenium#17901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Fix broken reStructuredText link in docs 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/17902\"\u003eSeleniumHQ/selenium#17902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] stop forwarding se:remoteUrl past the Node that consumes 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/17908\"\u003eSeleniumHQ/selenium#17908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Forward file upload/download for Kubernetes, Docker and relay sessions by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17914\"\u003eSeleniumHQ/selenium#17914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] reduce github cache churn and aggressively prune CodeQL caches 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/17909\"\u003eSeleniumHQ/selenium#17909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix two flaky BiDi tests that left timing-dependent state behind 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/17918\"\u003eSeleniumHQ/selenium#17918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add warn annotation for undeclared field while JSON coercion  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/17917\"\u003eSeleniumHQ/selenium#17917\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] temporarily disable nightly TestPyPI publishing 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/17920\"\u003eSeleniumHQ/selenium#17920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] fix Safari test failures 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/17922\"\u003eSeleniumHQ/selenium#17922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fix the issues that caused the release workflow to fail during last 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/17921\"\u003eSeleniumHQ/selenium#17921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[py] temporarily disable nightly TestPyPI publishing (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17920\"\u003e#17920\u003c/a\u003e)\u0026quot; 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/17924\"\u003eSeleniumHQ/selenium#17924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] fix silent hang on oversized WebSocket frames 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/17655\"\u003eSeleniumHQ/selenium#17655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Ensure BiDi is not exposed on Driver 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/17926\"\u003eSeleniumHQ/selenium#17926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] charter: link the accepted BiDi support boundary record 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/17928\"\u003eSeleniumHQ/selenium#17928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour the \u003ccode\u003eDO_NOT_TRACK\u003c/code\u003e env var by \u003ca href=\"https://github.com/shs96c\"\u003e\u003ccode\u003e@​shs96c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17931\"\u003eSeleniumHQ/selenium#17931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] record flaky tests on trunk and report weekly offenders to Slack 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/17930\"\u003eSeleniumHQ/selenium#17930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] ignore .bazelbsp/ IDE-generated directory 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/17932\"\u003eSeleniumHQ/selenium#17932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Install browser extensions from the driver directly 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/17817\"\u003eSeleniumHQ/selenium#17817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] generate the internal BiDi protocol layer from the shared binding-neutral 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/17761\"\u003eSeleniumHQ/selenium#17761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] always reject a missing required inbound BiDi field 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/17936\"\u003eSeleniumHQ/selenium#17936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] make Java and .NET release reruns pass when already published 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/17935\"\u003eSeleniumHQ/selenium#17935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Move dependency updates into a weekly workflow 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/17934\"\u003eSeleniumHQ/selenium#17934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] accept a whole-valued float for an integer BiDi field 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/17939\"\u003eSeleniumHQ/selenium#17939\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] unlock trunk once the release finishes writing to 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/17938\"\u003eSeleniumHQ/selenium#17938\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Add serialization and domain layer 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/17927\"\u003eSeleniumHQ/selenium#17927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] stop updating browsers and CDP during release preparation 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/17940\"\u003eSeleniumHQ/selenium#17940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] update new BiDi layer generation to conform to latest proposed ADR 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/17942\"\u003eSeleniumHQ/selenium#17942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Throw in case of unknown discriminator 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/17948\"\u003eSeleniumHQ/selenium#17948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] reject an inbound BiDi scalar outside its union's declared arms 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/17947\"\u003eSeleniumHQ/selenium#17947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] alert Slack when a CDP update lands on trunk 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/17950\"\u003eSeleniumHQ/selenium#17950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][bidi] Add BiDi connection-level event subscription 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/17946\"\u003eSeleniumHQ/selenium#17946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] SetMediaFeaturesOverride command in Emulation module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17953\"\u003eSeleniumHQ/selenium#17953\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/munawiki\"\u003e\u003ccode\u003e@​munawiki\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17851\"\u003eSeleniumHQ/selenium#17851\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.0\"\u003ehttps://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.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/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.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/27f5213055e28398a5105b7892b7a3bb2012a6ef\"\u003e\u003ccode\u003e27f5213\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.48.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17956\"\u003e#17956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/7bfaedb223f530da5b6e1e8e0038c50100bd6c4f\"\u003e\u003ccode\u003e7bfaedb\u003c/code\u003e\u003c/a\u003e [rb] reject 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\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6df57060dea30e91ab78b2e04130ceb208de3fae\"\u003e\u003ccode\u003e6df5706\u003c/code\u003e\u003c/a\u003e [rb] accept 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/1dd3004144ec48314bd5ba471f0dbc0fbd6b5b95\"\u003e\u003ccode\u003e1dd3004\u003c/code\u003e\u003c/a\u003e [rb] always 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/eb28a14f3833750c23b0325d578412a95ab306d2\"\u003e\u003ccode\u003eeb28a14\u003c/code\u003e\u003c/a\u003e [rb] fix 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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/194545f1f16080ce2cacc44be7a437df9a979bcb\"\u003e\u003ccode\u003e194545f\u003c/code\u003e\u003c/a\u003e [rb] fix Safari test failures (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17922\"\u003e#17922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/3e387119b8709dbde85e8bd4e8b79801523b9993\"\u003e\u003ccode\u003e3e38711\u003c/code\u003e\u003c/a\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\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/000328171278909d02545b761f8c39156e4d4332\"\u003e\u003ccode\u003e0003281\u003c/code\u003e\u003c/a\u003e [rb] add 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\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/b4b73af3ceaf1379ab9eef525307b56c7bc8c29d\"\u003e\u003ccode\u003eb4b73af\u003c/code\u003e\u003c/a\u003e [build] Update lockfiles for nightly versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/1ed71ed333b3c3ef37aac37c5da489d8b0474590\"\u003e\u003ccode\u003e1ed71ed\u003c/code\u003e\u003c/a\u003e [build] Reset versions to nightly after selenium-4.47.0 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.3 to 3.26.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.26.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests by \u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\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/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.26.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests by \u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\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/bblimke/webmock/commit/0fdbad0846d044af30f4b46f5e1f2be1a29ab8ec\"\u003e\u003ccode\u003e0fdbad0\u003c/code\u003e\u003c/a\u003e Version 3.26.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/b187df8827e1f08a1684a8ddc0a5050dbd449c16\"\u003e\u003ccode\u003eb187df8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1131\"\u003e#1131\u003c/a\u003e from koic/fix_race_condition_in_httpclient_adapter_a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/f275724131a74f781e517ce83ff9efe20023687e\"\u003e\u003ccode\u003ef275724\u003c/code\u003e\u003c/a\u003e Fix race condition in \u003ccode\u003eHTTPClient\u003c/code\u003e adapter async requests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.3...v3.26.4\"\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/ministryofjustice/laa-assess-crime-forms/pull/1349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1349/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":"/examples/ruby in the dependencies group","pr_created_at":"2026-09-06T17:02:26.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5366398961","node_id":"PR_kwDONC8Qws8AAAABCayB0w","number":654,"state":"open","title":":arrow_up: Bump rubocop from 1.89.0 to 1.90.0 in /examples/ruby in the dependencies group","user":"dependabot[bot]","labels":["dependencies","ruby","dependency:patch"],"assignees":[],"locked":false,"comments_count":15,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-06T17:02:26.000Z","updated_at":"2026-09-06T17:05:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":":arrow_up: Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":"/examples/ruby in the dependencies group","ecosystem":"rubygems"},"body":"Bumps the dependencies group in /examples/ruby with 1 update: [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.90.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 \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/7rikazhexde/json2vars-setter/pull/654","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/654","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/654/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-09-05T02:07:07.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5354904305","node_id":"PR_kwDOJc6_X88AAAABCSHMrw","number":34,"state":"closed","title":"chore(deps): bump the ruby group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-12T02:08:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-05T02:07:07.000Z","updated_at":"2026-09-12T02:08:09.000Z","time_to_close":604860,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ruby","update_count":12,"packages":[{"name":"redis","old_version":"5.4.1","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"image_processing","old_version":"2.0.3","new_version":"2.1.0","repository_url":"https://github.com/janko/image_processing"},{"name":"sidekiq","old_version":"8.1.6","new_version":"8.1.7","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"rails_cloudflare_turnstile","old_version":"0.5.0","new_version":"0.5.1","repository_url":"https://github.com/instrumentl/rails-cloudflare-turnstile"},{"name":"sentry-rails","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"6.7.0","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"meta-tags","old_version":"2.23.0","new_version":"2.24.0","repository_url":"https://github.com/kpumuk/meta-tags"},{"name":"pagy","old_version":"43.6.1","new_version":"43.6.2","repository_url":"https://github.com/ddnexus/pagy"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rack-mini-profiler","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/MiniProfiler/rack-mini-profiler"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [redis](https://github.com/redis/redis-rb) | `5.4.1` | `6.0.0` |\n| [image_processing](https://github.com/janko/image_processing) | `2.0.3` | `2.1.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.6` | `8.1.7` |\n| [rails_cloudflare_turnstile](https://github.com/instrumentl/rails-cloudflare-turnstile) | `0.5.0` | `0.5.1` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `6.7.0` | `7.0.0` |\n| [meta-tags](https://github.com/kpumuk/meta-tags) | `2.23.0` | `2.24.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.6.1` | `43.6.2` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.89.0` | `1.90.0` |\n| [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) | `4.0.1` | `5.0.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.48.0` |\n\n\nUpdates `redis` from 5.4.1 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-rb/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003cp\u003eThis is a major release of the \u003ccode\u003eredis\u003c/code\u003e and \u003ccode\u003eredis-clustering\u003c/code\u003e gems. The headline change is that the client now speaks \u003cstrong\u003eRESP3 by default\u003c/strong\u003e, alongside first-class support for the \u003cstrong\u003eRedis Query Engine\u003c/strong\u003e and the \u003cstrong\u003eJSON module\u003c/strong\u003e, a batch of new Redis 6.2–8.10 commands, and experimental support for the Redis 8.10 \u003ccode\u003eHIMPORT\u003c/code\u003e bulk-ingestion command family.\u003c/p\u003e\n\u003cp\u003eCommand return values are unchanged from 5.x with one exception (GEO coordinates, see below), so for most applications this upgrade is a \u003ccode\u003eGemfile\u003c/code\u003e bump.\u003c/p\u003e\n\u003cp\u003eRequires \u003cstrong\u003eRuby 3.2+\u003c/strong\u003e and works with \u003cstrong\u003eRedis server 6.0+\u003c/strong\u003e (older servers are handled via automatic RESP2 fallback).\u003c/p\u003e\n\u003ch3\u003eRESP3 by default\u003c/h3\u003e\n\u003cp\u003eRESP3's richer wire types (native maps, doubles, booleans) let the parser deliver replies already in their final Ruby shape. Under RESP2, structured replies arrive as flat arrays of bulk strings that the client must re-shape in Ruby — e.g. \u003ccode\u003eHGETALL\u003c/code\u003e builds a \u003ccode\u003eHash\u003c/code\u003e from a flat \u003ccode\u003e[field, value, ...]\u003c/code\u003e array, and sorted-set scores are converted \u003ccode\u003eString\u003c/code\u003e → \u003ccode\u003eFloat\u003c/code\u003e pair by pair. Under RESP3 that re-shaping pass disappears.\u003c/p\u003e\n\u003cp\u003eMeasured with \u003ca href=\"https://github.com/redis/redis-rb/blob/master/bench/resp_comparison.rb\"\u003ebench/resp_comparison.rb\u003c/a\u003e (redis-rb 6.0.0, Ruby 3.4.1, Redis 8.8, localhost, 100-element replies):\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePure-Ruby driver (default):\u003c/strong\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eWorkload\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 RPS (8 threads)\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 µs CPU/op\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eGET (50B string)\u003c/td\u003e\n\u003ctd\u003e4251 → 4436 (+4%)\u003c/td\u003e\n\u003ctd\u003e23.4 → 22.9 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHGETALL (100 fields)\u003c/td\u003e\n\u003ctd\u003e2361 → 2560 (+8%)\u003c/td\u003e\n\u003ctd\u003e164 → 129 (\u003cstrong\u003e−22%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eZRANGE WITHSCORES (100)\u003c/td\u003e\n\u003ctd\u003e2597 → 2459 (−5%)\u003c/td\u003e\n\u003ctd\u003e130 → 147 (~0, noise)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXRANGE (100 entries)\u003c/td\u003e\n\u003ctd\u003e1544 → 1570 (+2%)\u003c/td\u003e\n\u003ctd\u003e346 → 328 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u003cstrong\u003ehiredis driver (C parser):\u003c/strong\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eWorkload\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 RPS (8 threads)\u003c/th\u003e\n\u003cth\u003eRESP2 → RESP3 µs CPU/op\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eGET\u003c/td\u003e\n\u003ctd\u003e12756 → 12620 (~0)\u003c/td\u003e\n\u003ctd\u003e69 → 70 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHGETALL\u003c/td\u003e\n\u003ctd\u003e10175 → 10592 (+4%)\u003c/td\u003e\n\u003ctd\u003e97 → 89 (−8%; 1 thread: 88 → 63, \u003cstrong\u003e−28%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eZRANGE WITHSCORES\u003c/td\u003e\n\u003ctd\u003e10036 → 11629 (\u003cstrong\u003e+16%\u003c/strong\u003e)\u003c/td\u003e\n\u003ctd\u003e108 → 85 (\u003cstrong\u003e−22%\u003c/strong\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXRANGE\u003c/td\u003e\n\u003ctd\u003e7053 → 6999 (~0)\u003c/td\u003e\n\u003ctd\u003e152 → 152 (~0)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eIn short: hash reads use ~10–25% less client CPU per call on both drivers; sorted-set reads with scores gain up to 16% throughput and ~20% less CPU with hiredis (unchanged on the pure-Ruby driver, where parsing RESP3 doubles costs roughly what the re-shaping pass did); simple string and stream commands are unaffected — their reply shapes are the same in both protocols. RESP3 pairs best with the hiredis driver, which moves all reply construction out of Ruby and into C.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMethodology note: figures are per-reply CPU measurements against a localhost server; wall-clock throughput gains in production depend on how network-bound your workload is.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eBeyond performance, RESP3 also lays the groundwork for push-based features — such as server-assisted client-side caching (\u003ccode\u003eCLIENT TRACKING\u003c/code\u003e invalidation events) — in future 6.x releases, without another protocol migration.\u003c/p\u003e\n\u003ch3\u003e🔥 Breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRESP3 by default\u003c/strong\u003e (see above); pass \u003ccode\u003eprotocol: 2\u003c/code\u003e to keep RESP2. The only return-value change is GEO coordinates as \u003ccode\u003eFloat\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequires Ruby 3.2+\u003c/strong\u003e (previously 2.7/2.6). Bundler will keep older Rubies on the 5.4.x series automatically. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1353\"\u003e#1353\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCluster gem (\u003ccode\u003eredis-clustering\u003c/code\u003e) only\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCommands are now routed by their server-declared command tips (redis-cluster-client 0.16.6+): \u003ccode\u003eSLOWLOG GET\u003c/code\u003e returns one entry list per master; \u003ccode\u003eSLOWLOG LEN\u003c/code\u003e and \u003ccode\u003eLATENCY RESET\u003c/code\u003e return the sum across all masters; \u003ccode\u003eFUNCTION LOAD\u003c/code\u003e/\u003ccode\u003eDELETE\u003c/code\u003e/\u003ccode\u003eFLUSH\u003c/code\u003e/\u003ccode\u003eRESTORE\u003c/code\u003e now execute on all masters (previously a single arbitrary node — this also fixes \u003ccode\u003eFCALL\u003c/code\u003e failing for keys on other masters); commands with keys in subcommands (e.g. \u003ccode\u003eXINFO STREAM\u003c/code\u003e) route to the key's slot owner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🚀 New features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRedis Query Engine\u003c/strong\u003e (RediSearch, \u003ccode\u003eFT.*\u003c/code\u003e): \u003ccode\u003eft_create\u003c/code\u003e, \u003ccode\u003eft_alter\u003c/code\u003e, \u003ccode\u003eft_dropindex\u003c/code\u003e, \u003ccode\u003eft_info\u003c/code\u003e, \u003ccode\u003eft_search\u003c/code\u003e, \u003ccode\u003eft_aggregate\u003c/code\u003e, vector and hybrid search, suggestions, dictionaries, synonyms, aliases, and spellcheck. Not supported by \u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1356\"\u003e#1356\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1359\"\u003e#1359\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1360\"\u003e#1360\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJSON module\u003c/strong\u003e: \u003ccode\u003ejson_set\u003c/code\u003e, \u003ccode\u003ejson_get\u003c/code\u003e, \u003ccode\u003ejson_mset\u003c/code\u003e, \u003ccode\u003ejson_mget\u003c/code\u003e, \u003ccode\u003ejson_del\u003c/code\u003e, \u003ccode\u003ejson_forget\u003c/code\u003e, \u003ccode\u003ejson_clear\u003c/code\u003e, \u003ccode\u003ejson_merge\u003c/code\u003e, \u003ccode\u003ejson_arr*\u003c/code\u003e, \u003ccode\u003ejson_obj*\u003c/code\u003e, \u003ccode\u003ejson_str*\u003c/code\u003e, \u003ccode\u003ejson_numincrby\u003c/code\u003e, \u003ccode\u003ejson_toggle\u003c/code\u003e, \u003ccode\u003ejson_type\u003c/code\u003e, \u003ccode\u003ejson_debug_memory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1346\"\u003e#1346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1347\"\u003e#1347\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1348\"\u003e#1348\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1349\"\u003e#1349\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/redis/redis-rb/blob/master/CHANGELOG.md\"\u003eredis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.0\u003c/h1\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse RESP3 (\u003ccode\u003eHELLO 3\u003c/code\u003e) by default; pass \u003ccode\u003eprotocol: 2\u003c/code\u003e to keep RESP2. \u003ccode\u003eGEOPOS\u003c/code\u003e and\n\u003ccode\u003eGEOSEARCH\u003c/code\u003e/\u003ccode\u003eGEORADIUS\u003c/code\u003e with \u003ccode\u003eWITHCOORD\u003c/code\u003e now return coordinates as \u003ccode\u003eFloat\u003c/code\u003e instead of \u003ccode\u003eString\u003c/code\u003e.\nSee \u003ca href=\"https://github.com/redis/redis-rb/blob/master/specs/migration-resp3.md\"\u003ehttps://github.com/redis/redis-rb/blob/master/specs/migration-resp3.md\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1351\"\u003e#1351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Ruby 3.2+. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1353\"\u003e#1353\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the Redis Query Engine (RediSearch, \u003ccode\u003eFT.*\u003c/code\u003e): \u003ccode\u003eft_create\u003c/code\u003e, \u003ccode\u003eft_alter\u003c/code\u003e,\n\u003ccode\u003eft_dropindex\u003c/code\u003e, \u003ccode\u003eft_info\u003c/code\u003e, \u003ccode\u003eft_search\u003c/code\u003e, \u003ccode\u003eft_aggregate\u003c/code\u003e, vector and hybrid search, suggestions,\ndictionaries, synonyms, aliases, and spellcheck. Not supported by \u003ccode\u003eRedis::Distributed\u003c/code\u003e.\n(\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1356\"\u003e#1356\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1359\"\u003e#1359\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1360\"\u003e#1360\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1361\"\u003e#1361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the JSON module: \u003ccode\u003ejson_set\u003c/code\u003e, \u003ccode\u003ejson_get\u003c/code\u003e, \u003ccode\u003ejson_mset\u003c/code\u003e, \u003ccode\u003ejson_mget\u003c/code\u003e, \u003ccode\u003ejson_del\u003c/code\u003e,\n\u003ccode\u003ejson_forget\u003c/code\u003e, \u003ccode\u003ejson_clear\u003c/code\u003e, \u003ccode\u003ejson_merge\u003c/code\u003e, \u003ccode\u003ejson_arr*\u003c/code\u003e, \u003ccode\u003ejson_obj*\u003c/code\u003e, \u003ccode\u003ejson_str*\u003c/code\u003e,\n\u003ccode\u003ejson_numincrby\u003c/code\u003e, \u003ccode\u003ejson_toggle\u003c/code\u003e, \u003ccode\u003ejson_type\u003c/code\u003e, \u003ccode\u003ejson_debug_memory\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1346\"\u003e#1346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1347\"\u003e#1347\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1348\"\u003e#1348\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1349\"\u003e#1349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd keyspace notification support: channel builders and a binary-safe parser for the classic\n\u003ccode\u003e__keyspace@*\u003c/code\u003e/\u003ccode\u003e__keyevent@*\u003c/code\u003e channels and the Redis 8.8 subkey notification families\n(\u003ccode\u003eRedis::KeyspaceNotifications\u003c/code\u003e), plus a manager (\u003ccode\u003eRedis#keyspace_notifications\u003c/code\u003e) that owns a\ndedicated connection, dispatches typed \u003ccode\u003eNotification\u003c/code\u003e objects to handlers, and automatically\nre-subscribes after connection loss (\u003ccode\u003eon_reconnect\u003c/code\u003e signals the lossy gap). Enabling\n\u003ccode\u003enotify-keyspace-events\u003c/code\u003e on the server remains the operator's responsibility. Not supported by\n\u003ccode\u003eRedis::Distributed\u003c/code\u003e. See specs/keyspace-notifications/user-guide.md.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elmovem\u003c/code\u003e and \u003ccode\u003eblmovem\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1363\"\u003e#1363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esunioncard\u003c/code\u003e and \u003ccode\u003esdiffcard\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003exread\u003c/code\u003e and \u003ccode\u003exreadgroup\u003c/code\u003e now accept \u003ccode\u003emax_count:\u003c/code\u003e and \u003ccode\u003emax_size:\u003c/code\u003e (Redis 8.10). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1358\"\u003e#1358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ehexpire\u003c/code\u003e, \u003ccode\u003ehpexpire\u003c/code\u003e, \u003ccode\u003ehttl\u003c/code\u003e and \u003ccode\u003ehpttl\u003c/code\u003e (Redis 7.4). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1324\"\u003e#1324\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1325\"\u003e#1325\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ehexpireat\u003c/code\u003e, \u003ccode\u003ehpexpireat\u003c/code\u003e, \u003ccode\u003ehexpiretime\u003c/code\u003e, \u003ccode\u003ehpexpiretime\u003c/code\u003e and \u003ccode\u003ehpersist\u003c/code\u003e; \u003ccode\u003ehexpire\u003c/code\u003e and\n\u003ccode\u003ehpexpire\u003c/code\u003e now accept the \u003ccode\u003enx:\u003c/code\u003e/\u003ccode\u003exx:\u003c/code\u003e/\u003ccode\u003egt:\u003c/code\u003e/\u003ccode\u003elt:\u003c/code\u003e condition options (Redis 7.4). All are\navailable on \u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1374\"\u003e#1374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehscan\u003c/code\u003e and \u003ccode\u003ehscan_each\u003c/code\u003e now accept \u003ccode\u003enovalues: true\u003c/code\u003e (Redis 7.4). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egeosearch\u003c/code\u003e and \u003ccode\u003egeosearchstore\u003c/code\u003e (Redis 6.2); geo commands are now available on\n\u003ccode\u003eRedis::Distributed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1342\"\u003e#1342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egeoadd\u003c/code\u003e now accepts \u003ccode\u003enx:\u003c/code\u003e, \u003ccode\u003exx:\u003c/code\u003e and \u003ccode\u003ech:\u003c/code\u003e; geo radius searches accept \u003ccode\u003ecount_any:\u003c/code\u003e; \u003ccode\u003exadd\u003c/code\u003e\naccepts \u003ccode\u003elimit:\u003c/code\u003e (Redis 6.2). (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1345\"\u003e#1345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRedis::Distributed\u003c/code\u003e now implements \u003ccode\u003ehscan\u003c/code\u003e, \u003ccode\u003ehscan_each\u003c/code\u003e and \u003ccode\u003ehstrlen\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1319\"\u003e#1319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIdentify the client to the server via \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e (\u003ccode\u003elib-name=redis-rb\u003c/code\u003e,\n\u003ccode\u003elib-ver=\u0026lt;version\u0026gt;\u003c/code\u003e). Extend the reported name with \u003ccode\u003edriver_info:\u003c/code\u003e, or disable with\n\u003ccode\u003edriver_info: false\u003c/code\u003e. See the README \u0026quot;Client identification\u0026quot; section. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehimport_prepare\u003c/code\u003e, \u003ccode\u003ehimport_set\u003c/code\u003e, \u003ccode\u003ehimport_discard\u003c/code\u003e and \u003ccode\u003ehimport_discard_all\u003c/code\u003e\n(Redis 8.10 \u003ccode\u003eHIMPORT\u003c/code\u003e). Lost fieldsets are re-prepared and retried automatically; disable with\n\u003ccode\u003ehimport_auto_prepare: false\u003c/code\u003e. The API may change in a future minor release. See the README\n\u0026quot;Bulk hash ingestion (HIMPORT)\u0026quot; section. (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/0fa108aed7255ea20a9c236d690153abcf81762d\"\u003e\u003ccode\u003e0fa108a\u003c/code\u003e\u003c/a\u003e Fixed merge conflicts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/4dca97de5d6128259df93aa728b78e917fad47ef\"\u003e\u003ccode\u003e4dca97d\u003c/code\u003e\u003c/a\u003e Sync with master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/32d781b3d0564e7f339a771f9bf13e57b9623077\"\u003e\u003ccode\u003e32d781b\u003c/code\u003e\u003c/a\u003e Identify redis-rb to the server via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/e5d6b0a027448ec17b93ded756f8dc74f6fb652b\"\u003e\u003ccode\u003ee5d6b0a\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/19f8a639026ca4964f73764046959e4acfff6b42\"\u003e\u003ccode\u003e19f8a63\u003c/code\u003e\u003c/a\u003e Testing with 8.10 GA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/60c4aadd5610d760fd43af40dfd2aba094411746\"\u003e\u003ccode\u003e60c4aad\u003c/code\u003e\u003c/a\u003e Prepare 6.0.0 release (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1366\"\u003e#1366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/89407d4d7877612c10c4f5d0db20fe3e4b84f249\"\u003e\u003ccode\u003e89407d4\u003c/code\u003e\u003c/a\u003e Fixed unstable test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/eba7fdca8c9c730799d35c1e333d325e9b2b41a0\"\u003e\u003ccode\u003eeba7fdc\u003c/code\u003e\u003c/a\u003e Fixed rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/56fc0b95bc4353d76e3dde7f81835be6d00d8965\"\u003e\u003ccode\u003e56fc0b9\u003c/code\u003e\u003c/a\u003e Prepare 6.0.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/dd2d1585c44e5a8d8b3c866dad579b7fb803f6c7\"\u003e\u003ccode\u003edd2d158\u003c/code\u003e\u003c/a\u003e Added support for Ruby 3.2+ (\u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-rb/compare/v5.4.1...v6.0.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.0.3 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\u003c/blockquote\u003e\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\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.0.3...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.6 to 8.1.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eForward compatibililty with Active Job 8.1 \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7019\"\u003e#7019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMany minor fixes and test improvements [hammadxcm]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/1bb4aa06e5aa178a114a5e855f9f3d5c24f6c61b\"\u003e\u003ccode\u003e1bb4aa0\u003c/code\u003e\u003c/a\u003e prep for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f7d4e43724b0816764f16cd617c27f9edb213eb2\"\u003e\u003ccode\u003ef7d4e43\u003c/code\u003e\u003c/a\u003e Disable happy eyeballs to minimize thread noise in profiler output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/8cd683ee81c4ff8f64daaa6b07181f39d31e44a0\"\u003e\u003ccode\u003e8cd683e\u003c/code\u003e\u003c/a\u003e re-fmt with latest standard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/e1f808a08645f9b8a194852a171b5667f5f877bd\"\u003e\u003ccode\u003ee1f808a\u003c/code\u003e\u003c/a\u003e Updated Hindi locale wrt latest en.yml (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7059\"\u003e#7059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0679cb45fed6febd86a18e39854d142961ecc37f\"\u003e\u003ccode\u003e0679cb4\u003c/code\u003e\u003c/a\u003e Update documentation with forum (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7058\"\u003e#7058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/27ec98218bfcf6a90080e1852a0bee16ff4e3c80\"\u003e\u003ccode\u003e27ec982\u003c/code\u003e\u003c/a\u003e updated locale to the latest (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7057\"\u003e#7057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3ab01da03a71b3c94a36f3a2f84976cbc36b6d0d\"\u003e\u003ccode\u003e3ab01da\u003c/code\u003e\u003c/a\u003e Metrics: draw deploy marks from every day the queried window spans (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7056\"\u003e#7056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/e3753389e5a71c2dd26ec0691fae175d6e1e4c9a\"\u003e\u003ccode\u003ee375338\u003c/code\u003e\u003c/a\u003e TUI: Render controls dynamically based on terminal width (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7052\"\u003e#7052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c809c57ca233d81a80bd8dbe05d8a876945540e2\"\u003e\u003ccode\u003ec809c57\u003c/code\u003e\u003c/a\u003e Convert help screen hotkeys to table (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7051\"\u003e#7051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6ced4c2a00a3f5770c36cb93337ffba5e798c745\"\u003e\u003ccode\u003e6ced4c2\u003c/code\u003e\u003c/a\u003e changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.6...v8.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails_cloudflare_turnstile` from 0.5.0 to 0.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/releases\"\u003erails_cloudflare_turnstile's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump nokogiri from 1.18.10 to 1.19.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/246\"\u003einstrumentl/rails-cloudflare-turnstile#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.7.4 to 2.9.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/248\"\u003einstrumentl/rails-cloudflare-turnstile#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump bundler-audit from 0.9.2 to 0.9.3 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/instrumentl/rails-cloudflare-turnstile/pull/253\"\u003einstrumentl/rails-cloudflare-turnstile#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump pry from 0.15.2 to 0.16.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/250\"\u003einstrumentl/rails-cloudflare-turnstile#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.3.0 to 13.3.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/247\"\u003einstrumentl/rails-cloudflare-turnstile#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rails from 8.1.0 to 8.1.2 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/instrumentl/rails-cloudflare-turnstile/pull/251\"\u003einstrumentl/rails-cloudflare-turnstile#251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump rspec-rails from 7.1.1 to 8.0.4 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/instrumentl/rails-cloudflare-turnstile/pull/252\"\u003einstrumentl/rails-cloudflare-turnstile#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.0 to 2.9.2 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/instrumentl/rails-cloudflare-turnstile/pull/254\"\u003einstrumentl/rails-cloudflare-turnstile#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ruby 4.0 to the testing matrix by \u003ca href=\"https://github.com/gsinkin-instrumentl\"\u003e\u003ccode\u003e@​gsinkin-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/256\"\u003einstrumentl/rails-cloudflare-turnstile#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rails from 8.1.2 to 8.1.3 by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/257\"\u003einstrumentl/rails-cloudflare-turnstile#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade action_text-trix from 2.1.17 to 2.1.18 by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/261\"\u003einstrumentl/rails-cloudflare-turnstile#261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.51.1 to 1.54.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/259\"\u003einstrumentl/rails-cloudflare-turnstile#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump webmock from 3.25.1 to 3.26.2 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/instrumentl/rails-cloudflare-turnstile/pull/258\"\u003einstrumentl/rails-cloudflare-turnstile#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rack-session from 2.1.1 to 2.1.2 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/instrumentl/rails-cloudflare-turnstile/pull/260\"\u003einstrumentl/rails-cloudflare-turnstile#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump addressable from 2.8.9 to 2.9.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/262\"\u003einstrumentl/rails-cloudflare-turnstile#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.2 to 2.9.3 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/instrumentl/rails-cloudflare-turnstile/pull/263\"\u003einstrumentl/rails-cloudflare-turnstile#263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.3.1 to 13.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/264\"\u003einstrumentl/rails-cloudflare-turnstile#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump rake from 13.4.1 to 13.4.2 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/instrumentl/rails-cloudflare-turnstile/pull/265\"\u003einstrumentl/rails-cloudflare-turnstile#265\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump erb from 6.0.2 to 6.0.4 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/instrumentl/rails-cloudflare-turnstile/pull/266\"\u003einstrumentl/rails-cloudflare-turnstile#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.3 to 2.9.4 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/instrumentl/rails-cloudflare-turnstile/pull/268\"\u003einstrumentl/rails-cloudflare-turnstile#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump net-imap from 0.6.3 to 0.6.4 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/instrumentl/rails-cloudflare-turnstile/pull/267\"\u003einstrumentl/rails-cloudflare-turnstile#267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): upgrade nokogiri and faraday to eliminate CVEs by \u003ca href=\"https://github.com/patricklewis\"\u003e\u003ccode\u003e@​patricklewis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/271\"\u003einstrumentl/rails-cloudflare-turnstile#271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.4 to 2.9.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/272\"\u003einstrumentl/rails-cloudflare-turnstile#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: resolve net-imap CVEs by \u003ca href=\"https://github.com/gsinkin-instrumentl\"\u003e\u003ccode\u003e@​gsinkin-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/273\"\u003einstrumentl/rails-cloudflare-turnstile#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add **html_options (e.g. CSP nonce) support to cloudflare_turnstile_script_tag by \u003ca href=\"https://github.com/kwent\"\u003e\u003ccode\u003e@​kwent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/269\"\u003einstrumentl/rails-cloudflare-turnstile#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.54.0 to 1.55.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/274\"\u003einstrumentl/rails-cloudflare-turnstile#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump 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/instrumentl/rails-cloudflare-turnstile/pull/275\"\u003einstrumentl/rails-cloudflare-turnstile#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update loofah, rails-html-sanitizer, websocket-driver by \u003ca href=\"https://github.com/senthil-instrumentl\"\u003e\u003ccode\u003e@​senthil-instrumentl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/278\"\u003einstrumentl/rails-cloudflare-turnstile#278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump standard from 1.55.0 to 1.56.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/276\"\u003einstrumentl/rails-cloudflare-turnstile#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-python 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/instrumentl/rails-cloudflare-turnstile/pull/277\"\u003einstrumentl/rails-cloudflare-turnstile#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: bump rails to 8.1.3.1 to address cve-2026-66066 by \u003ca href=\"https://github.com/celinefb\"\u003e\u003ccode\u003e@​celinefb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/279\"\u003einstrumentl/rails-cloudflare-turnstile#279\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump sqlite3 from 2.9.5 to 2.9.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/280\"\u003einstrumentl/rails-cloudflare-turnstile#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ruby 4.0 support and release 0.5.1 by \u003ca href=\"https://github.com/celinefb\"\u003e\u003ccode\u003e@​celinefb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/281\"\u003einstrumentl/rails-cloudflare-turnstile#281\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/kwent\"\u003e\u003ccode\u003e@​kwent\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/269\"\u003einstrumentl/rails-cloudflare-turnstile#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senthil-instrumentl\"\u003e\u003ccode\u003e@​senthil-instrumentl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/pull/278\"\u003einstrumentl/rails-cloudflare-turnstile#278\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.1\"\u003ehttps://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.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/instrumentl/rails-cloudflare-turnstile/blob/main/CHANGELOG.md\"\u003erails_cloudflare_turnstile's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support added.\u003c/li\u003e\n\u003cli\u003eDependencies updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/35bd12ed3c99c49f45bb135fa9ecda16e96a4494\"\u003e\u003ccode\u003e35bd12e\u003c/code\u003e\u003c/a\u003e feat: add ruby 4.0 support and release 0.5.1 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/bf25fa5669ac1d144d4afd7f3cca26bff6bcee28\"\u003e\u003ccode\u003ebf25fa5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump sqlite3 from 2.9.5 to 2.9.6 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/a448a38d33e1d0fd2045a05464cb1a207c04a82f\"\u003e\u003ccode\u003ea448a38\u003c/code\u003e\u003c/a\u003e fix: bump rails to 8.1.3.1 to address cve-2026-66066 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/55f3ae02cb8aa2a321140cc7ea447b129fd4f9e2\"\u003e\u003ccode\u003e55f3ae0\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-python from 6 to 7 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/08443bf0ae475697ce3c53b2a21359fb8c36c8e7\"\u003e\u003ccode\u003e08443bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump standard from 1.55.0 to 1.56.0 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/b2328806ea292dd527c1798983dac4fb2f1f0fcf\"\u003e\u003ccode\u003eb232880\u003c/code\u003e\u003c/a\u003e chore: update loofah, rails-html-sanitizer, websocket-driver (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/b894a11a94ef26aac011ac2aed1c2ccb06ce8691\"\u003e\u003ccode\u003eb894a11\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/6f971629379c2d82a4c6b4c208f5454d4c671782\"\u003e\u003ccode\u003e6f97162\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump standard from 1.54.0 to 1.55.0 (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/ce3d116397df42fc793c2f40b4b18599f7b495be\"\u003e\u003ccode\u003ece3d116\u003c/code\u003e\u003c/a\u003e feat: add **html_options (e.g. CSP nonce) support to cloudflare_turnstile_scr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/commit/55216e07faccdc1c3263f922d3e7f14c4391aed4\"\u003e\u003ccode\u003e55216e0\u003c/code\u003e\u003c/a\u003e chore: resolve net-imap CVEs (\u003ca href=\"https://redirect.github.com/instrumentl/rails-cloudflare-turnstile/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/instrumentl/rails-cloudflare-turnstile/compare/v0.5.0...v0.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/b6c4ddd7b8dc304ec85b468e64fa899f9e530032\"\u003e\u003ccode\u003eb6c4ddd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Make rails breadcrumbs respect data collection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3068\"\u003e#3068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/040fb0da92c2d94342d636fbe464f46718529c84\"\u003e\u003ccode\u003e040fb0d\u003c/code\u003e\u003c/a\u003e fix(rails): set dummy rails app before calling initializers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2f8328f33e458dd38c278cf9e4d17b11066812b1\"\u003e\u003ccode\u003e2f8328f\u003c/code\u003e\u003c/a\u003e feat(data-collection): Allow booleans as shorthand for KeyValueCollection fie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d3f1ff40665704c08fc83c07d8815fa44e8a7925\"\u003e\u003ccode\u003ed3f1ff4\u003c/code\u003e\u003c/a\u003e feat! Remove enable_metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/4842d951cfbc400c4476b5ebd9e74f89b152c8d0\"\u003e\u003ccode\u003e4842d95\u003c/code\u003e\u003c/a\u003e feat(data-collection): configure and filter collected data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3028\"\u003e#3028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d11f357c7bc3278fda96b52995827ffd39326f9c\"\u003e\u003ccode\u003ed11f357\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/baf8c9add168f8e96ee6ca356a12a1479448b22d\"\u003e\u003ccode\u003ebaf8c9a\u003c/code\u003e\u003c/a\u003e README.md: Drop broken Dependabot version compatibility badge (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3042\"\u003e#3042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/924f0677fd21465e8a653fca66fb3c8487450bbd\"\u003e\u003ccode\u003e924f067\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3bf6552c5cc3bd351e6e4439ab2e60d7f23d6796\"\u003e\u003ccode\u003e3bf6552\u003c/code\u003e\u003c/a\u003e feat(data-collection): Change stack_frame_variables to KeyValueCollection (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2f8328f33e458dd38c278cf9e4d17b11066812b1\"\u003e\u003ccode\u003e2f8328f\u003c/code\u003e\u003c/a\u003e feat(data-collection): Allow booleans as shorthand for KeyValueCollection fie...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/caa1b0c028fcadd7e3ef9b9c32f043375b8298c5\"\u003e\u003ccode\u003ecaa1b0c\u003c/code\u003e\u003c/a\u003e feat(data-collection): Gate ActiveJob arguments and ExecutionContext inclusio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d3f1ff40665704c08fc83c07d8815fa44e8a7925\"\u003e\u003ccode\u003ed3f1ff4\u003c/code\u003e\u003c/a\u003e feat! Remove enable_metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/100cdc9b52869596fcef8d38840c87fe278935fa\"\u003e\u003ccode\u003e100cdc9\u003c/code\u003e\u003c/a\u003e feat!: Remove enable_logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/c071bcdc36f124a3912186a471c79b9bb6f048e4\"\u003e\u003ccode\u003ec071bcd\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails log subscribers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/5a2f1edd519e79f9774e11527edb14f078bb23d2\"\u003e\u003ccode\u003e5a2f1ed\u003c/code\u003e\u003c/a\u003e feat(data-collection): Port Rails controller and ActiveStorage (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3033\"\u003e#3033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.7.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/logs/\"\u003eLogs\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_logs\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3053\"\u003e#3053\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUsing \u003ccode\u003esentry-rails\u003c/code\u003e will automatically turn on automatic structured logging from Rails. if you want to turn it off, use:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config\n  # ...\n  config.rails.structured_logging.enabled = false\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.sentry.io/product/metrics/\"\u003eMetrics\u003c/a\u003e are now enabled by default and \u003ccode\u003eenable_metrics\u003c/code\u003e is removed. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3061\"\u003e#3061\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econfig.otlp.setup_otlp_traces_exporter\u003c/code\u003e and \u003ccode\u003econfig.otlp.setup_propagator\u003c/code\u003e now default to false. by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/3063\"\u003e#3063\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eData Collection\u003c/h4\u003e\n\u003cp\u003eWe are moving away from \u003ccode\u003esend_default_pii\u003c/code\u003e to a more granular configuration called \u003ca href=\"https://docs.sentry.io/platforms/ruby/configuration/options/#data_collection\"\u003e\u003ccode\u003edata_collection\u003c/code\u003e\u003c/a\u003e.\u003cbr /\u003e\nIt allows you to precisely control the data that Sentry collects from your app.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.data_collection.user_info = false\n  config.data_collection.http_bodies = []\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esend_default_pii\u003c/code\u003e is deprecated but will continue to default to \u003ccode\u003efalse\u003c/code\u003e.\u003cbr /\u003e\n\u003ccode\u003edata_collection\u003c/code\u003e will be backfilled when \u003ccode\u003esend_default_pii = false\u003c/code\u003e with the following values in 7.0.0:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003edata_collection.user_info = false\ndata_collection.cookies.mode = :off\ndata_collection.http_headers.request.mode = :deny_list\ndata_collection.http_headers.request.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_headers.response.mode = :deny_list\ndata_collection.http_headers.response.terms = %w[forwarded -ip _ip remote via _user -user]\ndata_collection.http_bodies = []\ndata_collection.url_query_params.mode = :off\ndata_collection.graphql.document = false\ndata_collection.graphql.variables = false\ndata_collection.database_query_data = false\ndata_collection.queues = false\ndata_collection.frame_context_lines = 3\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/28e4246add0b076fa23ffb416c3b7a3f1772ae31\"\u003e\u003ccode\u003e28e4246\u003c/code\u003e\u003c/a\u003e release: 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/685e82a25ec9b5824401d6740cb608d084e17eab\"\u003e\u003ccode\u003e685e82a\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f34bffb38d9a388f0cac86465ad47db84da0f053\"\u003e\u003ccode\u003ef34bffb\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/4842d951cfbc400c4476b5ebd9e74f89b152c8d0\"\u003e\u003ccode\u003e4842d95\u003c/code\u003e\u003c/a\u003e feat(data-collection): configure and filter collected data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3028\"\u003e#3028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d11f357c7bc3278fda96b52995827ffd39326f9c\"\u003e\u003ccode\u003ed11f357\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/baf8c9add168f8e96ee6ca356a12a1479448b22d\"\u003e\u003ccode\u003ebaf8c9a\u003c/code\u003e\u003c/a\u003e README.md: Drop broken Dependabot version compatibility badge (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3042\"\u003e#3042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/924f0677fd21465e8a653fca66fb3c8487450bbd\"\u003e\u003ccode\u003e924f067\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update pinned CI lockfiles (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.7.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meta-tags` from 2.23.0 to 2.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kpumuk/meta-tags/releases\"\u003emeta-tags's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to stop truncating arrays mid-item by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/354\"\u003ekpumuk/meta-tags#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.293.0 to 1.294.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/355\"\u003ekpumuk/meta-tags#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.294.0 to 1.295.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/356\"\u003ekpumuk/meta-tags#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden Dependabot push workflow against untrusted checkouts by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/357\"\u003ekpumuk/meta-tags#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenSSF Scorecards workflow by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/358\"\u003ekpumuk/meta-tags#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden GitHub workflow security by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/359\"\u003ekpumuk/meta-tags#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTighten workflow permission declarations by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/360\"\u003ekpumuk/meta-tags#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport custom robots directives by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/361\"\u003ekpumuk/meta-tags#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CodeQL CSRF warning in test controller by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/362\"\u003ekpumuk/meta-tags#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.295.0 to 1.297.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/363\"\u003ekpumuk/meta-tags#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.297.0 to 1.299.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/364\"\u003ekpumuk/meta-tags#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubygems/release-gem from 1.1.4 to 1.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/365\"\u003ekpumuk/meta-tags#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.299.0 to 1.300.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/366\"\u003ekpumuk/meta-tags#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.300.0 to 1.301.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/369\"\u003ekpumuk/meta-tags#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 3.0.0 to 3.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/368\"\u003ekpumuk/meta-tags#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/367\"\u003ekpumuk/meta-tags#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.301.0 to 1.302.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/370\"\u003ekpumuk/meta-tags#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.302.0 to 1.306.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/372\"\u003ekpumuk/meta-tags#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pedantic zizmor workflow and fix GitHub Actions findings by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/374\"\u003ekpumuk/meta-tags#374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.306.0 to 1.307.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/375\"\u003ekpumuk/meta-tags#375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 3.1.1 to 3.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/376\"\u003ekpumuk/meta-tags#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump zizmorcore/zizmor-action from 0.5.3 to 0.5.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/377\"\u003ekpumuk/meta-tags#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump zizmorcore/zizmor-action from 0.5.5 to 0.5.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/379\"\u003ekpumuk/meta-tags#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.307.0 to 1.308.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/378\"\u003ekpumuk/meta-tags#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.308.0 to 1.310.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/380\"\u003ekpumuk/meta-tags#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/XIVAuth/XIVAuth/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/XIVAuth%2FXIVAuth/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-09-02T23:04:55.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5330174966","node_id":"PR_kwDORpu9T88AAAABB-XLqw","number":70,"state":"closed","title":"build(deps): Bump the bundler group across 2 directories with 2 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T04:43:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-02T23:04:55.000Z","updated_at":"2026-09-04T04:43:17.000Z","time_to_close":106700,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"bundler","update_count":2,"packages":[{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"google-protobuf","old_version":"4.35.1","new_version":"4.36.0","repository_url":"https://github.com/protocolbuffers/protobuf"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 1 update in the /proto-clients/spicedb-ruby-proto directory: [google-protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the bundler group with 2 updates in the /spicedb-ruby directory: [google-protobuf](https://github.com/protocolbuffers/protobuf) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-protobuf` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/authzed/spicedb-clients-prototype/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/authzed%2Fspicedb-clients-prototype/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-09-01T12:48:47.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5312017592","node_id":"PR_kwDOD_yjk88AAAABBv3tsQ","number":293,"state":"closed","title":"Bump the all-minor-patch group with 2 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T23:15:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-01T12:48:47.000Z","updated_at":"2026-09-04T23:15:10.000Z","time_to_close":296780,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-minor-patch","update_count":2,"packages":[{"name":"mdl","old_version":"0.18.0","new_version":"0.18.1","repository_url":"https://github.com/mivok/markdownlint"},{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-minor-patch group with 2 updates: [mdl](https://github.com/mivok/markdownlint) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `mdl` from 0.18.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/markdownlint/markdownlint/blob/main/CHANGELOG.md\"\u003emdl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v0.18.1] (2026-08-09)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed crash on startup when using old versions of the uri gem.\n\u003ca href=\"https://redirect.github.com/markdownlint/markdownlint/pull/606/\"\u003e#606\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/markdownlint/markdownlint/commit/7810020e1bf3cb3eef0733cd754bc5bc00a5de5a\"\u003e\u003ccode\u003e7810020\u003c/code\u003e\u003c/a\u003e Make releasing docker properly easier (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markdownlint/markdownlint/commit/22ef36763e4fcfe8ea172716df5d0d66fe8a0aac\"\u003e\u003ccode\u003e22ef367\u003c/code\u003e\u003c/a\u003e Prep 0.18.1 (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/markdownlint/markdownlint/commit/80e27d166a96eae2fe7be9eab2e84feb6d0f5991\"\u003e\u003ccode\u003e80e27d1\u003c/code\u003e\u003c/a\u003e Fix default ruleset loading with older URI versions (\u003ca href=\"https://redirect.github.com/mivok/markdownlint/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mivok/markdownlint/compare/v0.18.0...v0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.89.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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/jaymzh/sugarjar/pull/293","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fsugarjar/issues/293","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/293/packages"}},{"old_version":"1.87.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-09-01T11:07:24.000Z","version_change":"1.87.0 → 1.90.0","issue":{"uuid":"5311049224","node_id":"PR_kwDOFJy-N88AAAABBvFrgw","number":257,"state":"open","title":"Bump the rubocop group across 1 directory with 5 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-09-01T11:07:24.000Z","updated_at":"2026-09-12T21:54:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"rubocop","update_count":5,"packages":[{"name":"rubocop","old_version":"1.87.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-rails","old_version":"2.35.3","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.9.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-capybara","old_version":"2.23.0","new_version":"3.0.0","repository_url":"https://github.com/rubocop/rubocop-capybara"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the rubocop group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.87.0` | `1.90.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.3` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.23.0` | `3.0.0` |\n\n\nUpdates `rubocop` from 1.87.0 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.87.0...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.35.3 to 2.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.37.0\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1649\"\u003e#1649\u003c/a\u003e: Allow frozen array/hash literal (e.g. \u003ccode\u003e[].freeze\u003c/code\u003e, \u003ccode\u003e{}.freeze\u003c/code\u003e) as \u003ccode\u003e:default\u003c/code\u003e value in \u003ccode\u003eRails/AttributeDefaultBlockValue\u003c/code\u003e. (\u003ca href=\"https://github.com/kuboon\"\u003e\u003ccode\u003e@​kuboon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1652\"\u003e#1652\u003c/a\u003e: Improve \u003ccode\u003eRails/HttpPositionalArguments\u003c/code\u003e performance by checking for \u003ccode\u003einclude Rack::Test::Methods\u003c/code\u003e once per file instead of once per HTTP call. (\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1650\"\u003e#1650\u003c/a\u003e: Speed up loading rubocop-rails by lazily loading only the cops and mixins needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.36.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1647\"\u003e#1647\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/EagerEvaluationLogMessage\u003c/code\u003e when the interpolated string is passed to \u003ccode\u003eRails.logger.debug\u003c/code\u003e as the sole body of an enclosing block such as \u003ccode\u003eeach\u003c/code\u003e or \u003ccode\u003etap\u003c/code\u003e. (\u003ca href=\"https://github.com/conwayje\"\u003e\u003ccode\u003e@​conwayje\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1646\"\u003e#1646\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/ReversibleMigration\u003c/code\u003e when using \u003ccode\u003eremove_index\u003c/code\u003e without a column inside a \u003ccode\u003echange_table\u003c/code\u003e block. (\u003ca href=\"https://github.com/ilianah\"\u003e\u003ccode\u003e@​ilianah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1642\"\u003e#1642\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with a symbol to proc such as \u003ccode\u003efoo.try(\u0026amp;:bar)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1599\"\u003e#1599\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eRails/LinkToBlank\u003c/code\u003e when \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e with \u003ccode\u003eEnforcedStyleForMultiline: consistent_comma\u003c/code\u003e adds a trailing comma, which produced a duplicate comma. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1619\"\u003e#1619\u003c/a\u003e: Fix \u003ccode\u003eMigratedSchemaVersion\u003c/code\u003e setting so it works for all cops. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1641\"\u003e#1641\u003c/a\u003e: Fix false negatives in \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with operator methods such as \u003ccode\u003e[]\u003c/code\u003e, \u003ccode\u003e[]=\u003c/code\u003e, and \u003ccode\u003e==\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.5\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. (\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. (\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. (\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.37.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1649\"\u003e#1649\u003c/a\u003e: Allow frozen array/hash literal (e.g. \u003ccode\u003e[].freeze\u003c/code\u003e, \u003ccode\u003e{}.freeze\u003c/code\u003e) as \u003ccode\u003e:default\u003c/code\u003e value in \u003ccode\u003eRails/AttributeDefaultBlockValue\u003c/code\u003e. ([\u003ca href=\"https://github.com/kuboon\"\u003e\u003ccode\u003e@​kuboon\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1652\"\u003e#1652\u003c/a\u003e: Improve \u003ccode\u003eRails/HttpPositionalArguments\u003c/code\u003e performance by checking for \u003ccode\u003einclude Rack::Test::Methods\u003c/code\u003e once per file instead of once per HTTP call. ([\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1650\"\u003e#1650\u003c/a\u003e: Speed up loading rubocop-rails by lazily loading only the cops and mixins needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-07-11)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1647\"\u003e#1647\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/EagerEvaluationLogMessage\u003c/code\u003e when the interpolated string is passed to \u003ccode\u003eRails.logger.debug\u003c/code\u003e as the sole body of an enclosing block such as \u003ccode\u003eeach\u003c/code\u003e or \u003ccode\u003etap\u003c/code\u003e. ([\u003ca href=\"https://github.com/conwayje\"\u003e\u003ccode\u003e@​conwayje\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1646\"\u003e#1646\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/ReversibleMigration\u003c/code\u003e when using \u003ccode\u003eremove_index\u003c/code\u003e without a column inside a \u003ccode\u003echange_table\u003c/code\u003e block. ([\u003ca href=\"https://github.com/ilianah\"\u003e\u003ccode\u003e@​ilianah\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1642\"\u003e#1642\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with a symbol to proc such as \u003ccode\u003efoo.try(\u0026amp;:bar)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1599\"\u003e#1599\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eRails/LinkToBlank\u003c/code\u003e when \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e with \u003ccode\u003eEnforcedStyleForMultiline: consistent_comma\u003c/code\u003e adds a trailing comma, which produced a duplicate comma. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1619\"\u003e#1619\u003c/a\u003e: Fix \u003ccode\u003eMigratedSchemaVersion\u003c/code\u003e setting so it works for all cops. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1641\"\u003e#1641\u003c/a\u003e: Fix false negatives in \u003ccode\u003eRails/SafeNavigation\u003c/code\u003e when using \u003ccode\u003etry\u003c/code\u003e/\u003ccode\u003etry!\u003c/code\u003e with operator methods such as \u003ccode\u003e[]\u003c/code\u003e, \u003ccode\u003e[]=\u003c/code\u003e, and \u003ccode\u003e==\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.5 (2026-06-21)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. ([\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.4 (2026-06-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. ([\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2ccba590ec4732e13dd4b5dfc8609874372d8f43\"\u003e\u003ccode\u003e2ccba59\u003c/code\u003e\u003c/a\u003e Cut 2.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/597f35228c30a30112d315c1b7450f603c8a034d\"\u003e\u003ccode\u003e597f352\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/a4004945c27bd62a7b8a4d0b1a0a54158bd177e5\"\u003e\u003ccode\u003ea400494\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1652\"\u003e#1652\u003c/a\u003e from moberegger/moberegger/optimize-HttpPositionalAr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cbc61579fde667271c3db91b90bbf3688b056a43\"\u003e\u003ccode\u003ecbc6157\u003c/code\u003e\u003c/a\u003e Optimize HttpPositionalArguments cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cb023b962c0880ccc081094695ea1ae78fe28c1f\"\u003e\u003ccode\u003ecb023b9\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/166cfc6b8f1cf08862cb97d7858d1d07128cb7dc\"\u003e\u003ccode\u003e166cfc6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1650\"\u003e#1650\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/3dd63780cd897ad65faed05bf732c748af44df82\"\u003e\u003ccode\u003e3dd6378\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/0b20dad75d274a222eb1d8d357007b0a646f3fd3\"\u003e\u003ccode\u003e0b20dad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1649\"\u003e#1649\u003c/a\u003e from kuboon/copilot/attribute-default-block-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/7c766962387a0d6eb15971be560dde75f2e6eb85\"\u003e\u003ccode\u003e7c76696\u003c/code\u003e\u003c/a\u003e Allow frozen literal defaults in AttributeDefaultBlockValue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/84fef55a2c21c326e15fed7f47d965280114dfd5\"\u003e\u003ccode\u003e84fef55\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.3...v2.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.9.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. (\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). (\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). (\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2 (2026-06-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. ([\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.1 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). ([\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2488441eb70a9dd40843492d4ce76d491ee98a8f\"\u003e\u003ccode\u003e2488441\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2189\"\u003e#2189\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/c9e53cf7e52f01baf54d9f9e1cb76f8788a3f2b7\"\u003e\u003ccode\u003ec9e53cf\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/7ae0a42f6e2510b910959b3457164ea87fa15635\"\u003e\u003ccode\u003e7ae0a42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2186\"\u003e#2186\u003c/a\u003e from sakuro/fix/spec-file-path-format-empty-custom-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/8b0b5e9dd4035dfa8d51a7d42fad35b363f700d2\"\u003e\u003ccode\u003e8b0b5e9\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into fix/spec-file-path-format-empty-custom-transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/dc4465cb76cf0b8a6c088cb8ed983ab63e0e7740\"\u003e\u003ccode\u003edc4465c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2188\"\u003e#2188\u003c/a\u003e from rubocop/fix-2185\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/d5de6b244e5992e6b0487e6c5f31e85cb48bc88c\"\u003e\u003ccode\u003ed5de6b2\u003c/code\u003e\u003c/a\u003e Consider regexp with options a non-simple regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/bad0cb3d8a6703f10a620b0c91dbb8e32db273bb\"\u003e\u003ccode\u003ebad0cb3\u003c/code\u003e\u003c/a\u003e :bug: Fix RSpec/SpecFilePathFormat false positives when CustomTransform maps ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ec3eeab2e7041d1891b0355c5516b7b161b811a2\"\u003e\u003ccode\u003eec3eeab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2183\"\u003e#2183\u003c/a\u003e from rubocop/fix-match-with-simple-regex-with-interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/16bbf497ec1af234fc8ecbdacabfb519469af2c0\"\u003e\u003ccode\u003e16bbf49\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2a78abd918ea7ebeea829318b05eee358885ae7a\"\u003e\u003ccode\u003e2a78abd\u003c/code\u003e\u003c/a\u003e Ignore interpolation in MatchWithSimpleRegex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.9.0...v3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-capybara` from 2.23.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/releases\"\u003erubocop-capybara's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Capybara v3.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable pending cops by default for the 3.0 release. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove the deprecated \u003ccode\u003eCapybara/ClickLinkOrButtonStyle\u003c/code\u003e cop. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove obsolete cop name migration config for the 2.x to 3.0 transition. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md\"\u003erubocop-capybara's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0 (2026-06-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable pending cops by default for the 3.0 release. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eRemove the deprecated \u003ccode\u003eCapybara/ClickLinkOrButtonStyle\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eRemove obsolete cop name migration config for the 2.x to 3.0 transition. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/a9b8f9aae8d960a0139960728785d760afc921aa\"\u003e\u003ccode\u003ea9b8f9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/177\"\u003e#177\u003c/a\u003e from rubocop/v3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/6a4579d93be9d23c261ccf06143c0c8d4fefddd3\"\u003e\u003ccode\u003e6a4579d\u003c/code\u003e\u003c/a\u003e release v3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/75e7cdaf542df18841284bb11bb10326db545a02\"\u003e\u003ccode\u003e75e7cda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/176\"\u003e#176\u003c/a\u003e from rubocop/docs/update-specific-matcher-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/f02ff72536c524b21c6ac7668912d7df7f5e895f\"\u003e\u003ccode\u003ef02ff72\u003c/code\u003e\u003c/a\u003e Update SpecificMatcher README example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ebe10e8b9056f37ad42da8d346fb1986f053ef72\"\u003e\u003ccode\u003eebe10e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/174\"\u003e#174\u003c/a\u003e from rubocop/enable-pending-capybara-cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/20a572111c2795e3f9f9544e923c88a007159dc9\"\u003e\u003ccode\u003e20a5721\u003c/code\u003e\u003c/a\u003e Enable pending Capybara cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/fee37740560e4ce64b75ea907a1607110e77c129\"\u003e\u003ccode\u003efee3774\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/173\"\u003e#173\u003c/a\u003e from rubocop/remove-obsolete-cop-name-migration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ea818bd7457ff96b7ea08d6dbce4936d1844d1d0\"\u003e\u003ccode\u003eea818bd\u003c/code\u003e\u003c/a\u003e Remove obsolete cop name migration config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/989fe3cc5826d4a75b8e0882f9607962e55904d6\"\u003e\u003ccode\u003e989fe3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/172\"\u003e#172\u003c/a\u003e from rubocop/remove-click-link-or-button-style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/5d5a5b8540f85b0907525b0d94060adc585e37b5\"\u003e\u003ccode\u003e5d5a5b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/175\"\u003e#175\u003c/a\u003e from rubocop/dependabot/github_actions/actions/checko...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-capybara/compare/v2.23.0...v3.0.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/danielabar/hello-visitor/pull/257","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielabar%2Fhello-visitor/issues/257","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/257/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-31T21:06:50.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5304885326","node_id":"PR_kwDOSUivxM8AAAABBqKhNQ","number":43,"state":"open","title":"Bump rubocop from 1.89.0 to 1.90.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-08-31T21:06:50.000Z","updated_at":"2026-09-03T23:32:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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/fuentesjr/metz-scan/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuentesjr%2Fmetz-scan/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"1.88.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-31T18:06:22.000Z","version_change":"1.88.0 → 1.90.0","issue":{"uuid":"5303341902","node_id":"PR_kwDOTIf3NM8AAAABBo6zEA","number":19,"state":"closed","title":"Bump rubocop from 1.88.0 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-14T18:07:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T18:06:22.000Z","updated_at":"2026-09-14T18:07:44.000Z","time_to_close":1209679,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"rubocop","old_version":"1.88.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.88.0\u0026new-version=1.90.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/georgedouzas/mathpix-mcp/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgedouzas%2Fmathpix-mcp/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"}},{"old_version":"1.88.2","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-31T17:24:39.000Z","version_change":"1.88.2 → 1.90.0","issue":{"uuid":"5302984447","node_id":"PR_kwDOQozE1c8AAAABBooasA","number":93,"state":"closed","title":"build(deps-dev): bump rubocop from 1.88.2 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-08T23:58:09.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T17:24:39.000Z","updated_at":"2026-09-08T23:58:17.000Z","time_to_close":714810,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"rubocop","old_version":"1.88.2","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.88.2 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.88.2\u0026new-version=1.90.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/romkey/pdxhackerspace-geowiki/pull/93","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/romkey%2Fpdxhackerspace-geowiki/issues/93","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/93/packages"}},{"old_version":"1.88.1","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-31T14:36:22.000Z","version_change":"1.88.1 → 1.90.0","issue":{"uuid":"5301400109","node_id":"PR_kwDOGe0_Us8AAAABBnXNjw","number":307,"state":"closed","title":"Bump the bundler-patch-and-minor group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-04T02:32:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-31T14:36:22.000Z","updated_at":"2026-09-04T02:32:39.000Z","time_to_close":302176,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler-patch-and-minor","update_count":3,"packages":[{"name":"rubocop","old_version":"1.88.1","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"webmock","old_version":"3.26.2","new_version":"3.26.3","repository_url":"https://github.com/bblimke/webmock"},{"name":"yard","old_version":"0.9.44","new_version":"0.9.45","repository_url":"https://github.com/lsegal/yard"},{"name":"rubocop","old_version":"1.88.1","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-patch-and-minor group with 3 updates in the /toggly-ruby/toggly directory: [rubocop](https://github.com/rubocop/rubocop), [webmock](https://github.com/bblimke/webmock) and [yard](https://github.com/lsegal/yard).\nBumps the bundler-patch-and-minor group with 2 updates in the /toggly-ruby/toggly-cache directory: [rubocop](https://github.com/rubocop/rubocop) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `rubocop` from 1.88.1 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.1...v1.90.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.2 to 3.26.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.26.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eConfirm to work with curb 1.3.7\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jbockler\"\u003eJosch Bockler\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/lesleh\"\u003eLeslie Hoare\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.26.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eConfirm to work with curb 1.3.7\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jbockler\"\u003eJosch Bockler\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/lesleh\"\u003eLeslie Hoare\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/ee409ac0a5f0c06cf6b88bd16a12f20e4ca3c178\"\u003e\u003ccode\u003eee409ac\u003c/code\u003e\u003c/a\u003e Version 3.26.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/2c976d5134fd4c43b504c21c5259e4459fa35db4\"\u003e\u003ccode\u003e2c976d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1127\"\u003e#1127\u003c/a\u003e from jbockler/curb-1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5b4015514eb0c4ff07c1591b971535d131f6a93c\"\u003e\u003ccode\u003e5b40155\u003c/code\u003e\u003c/a\u003e Confirm to work with curb 1.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/f685e7e8c514531653c47884a1effe92f478c82a\"\u003e\u003ccode\u003ef685e7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1130\"\u003e#1130\u003c/a\u003e from lesleh/fix-async-http-status-description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/a50557eb7f899a9008964d20ce653457527f0fa0\"\u003e\u003ccode\u003ea50557e\u003c/code\u003e\u003c/a\u003e Fix NameError in async-http adapter on protocol-http1 \u0026gt;= 0.40\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.2...v3.26.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yard` from 0.9.44 to 0.9.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lsegal/yard/releases\"\u003eyard's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.9.45\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e@param\u003c/code\u003e types to document generated \u003ccode\u003eStruct.new\u003c/code\u003e and \u003ccode\u003eData.define\u003c/code\u003e members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1684\"\u003e#1684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd compatibility with RDoc 8\u003c/li\u003e\n\u003cli\u003eFix TypesExplainer parsing of types following Hash collections (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1688\"\u003e#1688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix HTML generation for RBS constants without source values (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix method redefinition warnings when loading YARD with Ruby warnings enabled (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove sanitization of \u003ccode\u003eyard server\u003c/code\u003e request paths\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/lsegal/yard/blob/main/CHANGELOG.md\"\u003eyard's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/lsegal/yard/compare/v0.9.44...v0.9.45\"\u003e0.9.45\u003c/a\u003e - July 14th, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e@param\u003c/code\u003e types to document generated \u003ccode\u003eStruct.new\u003c/code\u003e and \u003ccode\u003eData.define\u003c/code\u003e members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1684\"\u003e#1684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd compatibility with RDoc 8\u003c/li\u003e\n\u003cli\u003eFix TypesExplainer parsing of types following Hash collections (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1688\"\u003e#1688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix HTML generation for RBS constants without source values (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1686\"\u003e#1686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix method redefinition warnings when loading YARD with Ruby warnings enabled (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove sanitization of \u003ccode\u003eyard server\u003c/code\u003e request paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2659ecd7e721920db98a2e034405ad234e1846b8\"\u003e\u003ccode\u003e2659ecd\u003c/code\u003e\u003c/a\u003e Release: v0.9.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2b467e08167d898b6e4bbe0a8603339c89b90705\"\u003e\u003ccode\u003e2b467e0\u003c/code\u003e\u003c/a\u003e Create a gh-fix skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/2842ba72b9dc7ed6f2a3843a55784866eaa97ef5\"\u003e\u003ccode\u003e2842ba7\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/00fe9b159eb19bf676499eca46d753cf1079b47a\"\u003e\u003ccode\u003e00fe9b1\u003c/code\u003e\u003c/a\u003e Refactor server sanitization logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/c6fd371438a5d53955e84e6093523b65bc7c96c9\"\u003e\u003ccode\u003ec6fd371\u003c/code\u003e\u003c/a\u003e Use \u003ca href=\"https://github.com/param\"\u003e\u003ccode\u003e@​param\u003c/code\u003e\u003c/a\u003e types for Struct and Data members (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/d2a88839e5de58f198af1d13f9a6f35269809349\"\u003e\u003ccode\u003ed2a8883\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/main' into fix/issue-1684-struct-data-pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/674d0cf08c6e4a99b8275c67e6d664565d69123a\"\u003e\u003ccode\u003e674d0cf\u003c/code\u003e\u003c/a\u003e Fix parser method redefinition warnings (\u003ca href=\"https://redirect.github.com/lsegal/yard/issues/1694\"\u003e#1694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/9483cd376f0cd51b4c3bc061a2996f33cae54395\"\u003e\u003ccode\u003e9483cd3\u003c/code\u003e\u003c/a\u003e Use param types for Struct and Data members\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/12ed8b717f40cb62e5f812eee07350b883539668\"\u003e\u003ccode\u003e12ed8b7\u003c/code\u003e\u003c/a\u003e Merge main into fix/issue-1687-method-redefined-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lsegal/yard/commit/9b874e2015a842d05821a2af816bc1ca163de0da\"\u003e\u003ccode\u003e9b874e2\u003c/code\u003e\u003c/a\u003e Fix HTML generation for RBS constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lsegal/yard/compare/v0.9.44...v0.9.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.1 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c428...\n\n_Description has been truncated_","html_url":"https://github.com/ops-ai/Toggly.FeatureManagement/pull/307","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ops-ai%2FToggly.FeatureManagement/issues/307","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/307/packages"}},{"old_version":"1.88.2","new_version":"1.89.0","update_type":"minor","path":null,"pr_created_at":"2026-08-28T08:09:21.000Z","version_change":"1.88.2 → 1.89.0","issue":{"uuid":"5276145403","node_id":"PR_kwDOPp5uw88AAAABBT6Dww","number":88,"state":"closed","title":"build(deps): bump the bundler group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-04T08:08:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T08:09:21.000Z","updated_at":"2026-09-04T08:08:48.000Z","time_to_close":604762,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":19,"packages":[{"name":"vernier","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/jhawthorn/vernier"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-sorbet","old_version":"0.13.2","new_version":"0.14.0","repository_url":"https://github.com/shopify/rubocop-sorbet"},{"name":"simplecov","old_version":"1.0.2","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"sorbet-static-and-runtime","old_version":"0.6.13359","new_version":"0.6.13433","repository_url":"https://github.com/sorbet/sorbet"},{"name":"spoom","old_version":"1.8.6","new_version":"1.8.7","repository_url":"https://github.com/Shopify/spoom"},{"name":"ruby-lsp","old_version":"0.26.10","new_version":"0.26.11","repository_url":"https://github.com/Shopify/ruby-lsp"},{"name":"csv","old_version":"3.3.5","new_version":"3.3.6","repository_url":"https://github.com/ruby/csv"},{"name":"patchelf","old_version":"1.5.2","new_version":"1.6.2","repository_url":"https://github.com/Homebrew/patchelf.rb"},{"name":"rubydex","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Shopify/rubydex"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 11 updates in the /Library/Homebrew directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [vernier](https://github.com/jhawthorn/vernier) | `1.10.1` | `1.11.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.88.2` | `1.89.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [rubocop-sorbet](https://github.com/shopify/rubocop-sorbet) | `0.13.2` | `0.14.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.0.2` | `1.1.1` |\n| [sorbet-static-and-runtime](https://github.com/sorbet/sorbet) | `0.6.13359` | `0.6.13433` |\n| [spoom](https://github.com/Shopify/spoom) | `1.8.6` | `1.8.7` |\n| [ruby-lsp](https://github.com/Shopify/ruby-lsp) | `0.26.10` | `0.26.11` |\n| [csv](https://github.com/ruby/csv) | `3.3.5` | `3.3.6` |\n| [patchelf](https://github.com/Homebrew/patchelf.rb) | `1.5.2` | `1.6.2` |\n| [rubydex](https://github.com/Shopify/rubydex) | `0.3.0` | `0.4.0` |\n\n\nUpdates `vernier` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/d56bc846db395a14405b66b45839bf630f0e9333\"\u003e\u003ccode\u003ed56bc84\u003c/code\u003e\u003c/a\u003e v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/6b59c36aab9b63532222cc4f9479d12bda52c197\"\u003e\u003ccode\u003e6b59c36\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/180\"\u003e#180\u003c/a\u003e from rwstauner/view-speed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/6b1dcad79a5edff2a21fb377afc47fc67c408b15\"\u003e\u003ccode\u003e6b1dcad\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into view-speed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/fe4dcc04b85ab0cbe005d76639bcfbcaaf502122\"\u003e\u003ccode\u003efe4dcc0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/182\"\u003e#182\u003c/a\u003e from rwstauner/zlib-min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/e7ba227fd9cc47335e8699c62575c8a404416696\"\u003e\u003ccode\u003ee7ba227\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/181\"\u003e#181\u003c/a\u003e from rwstauner/head-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/14f82b838f7961a2a7f5840f513d3d69df52ee53\"\u003e\u003ccode\u003e14f82b8\u003c/code\u003e\u003c/a\u003e Pin zlib to \u0026gt;= 3.2.1 in Gemfile to fix CI flakes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/8807edacc2ff1bde32974dd7cfcce1bfa7a3a154\"\u003e\u003ccode\u003e8807eda\u003c/code\u003e\u003c/a\u003e Use object memsize to calculate retained object test range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/ce4c3eb361e618e999b098655f14ed97d17a7cc1\"\u003e\u003ccode\u003ece4c3eb\u003c/code\u003e\u003c/a\u003e Speed up file_listing output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/cbd271dcdf36013230aa329bdad8c4b7ce897ec4\"\u003e\u003ccode\u003ecbd271d\u003c/code\u003e\u003c/a\u003e Extract string sanitization for reuse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/cfe3528174ce47bd87e3a11b6317b5474b48bd57\"\u003e\u003ccode\u003ecfe3528\u003c/code\u003e\u003c/a\u003e Add tests for file_listing/top output\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.1...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-sorbet` from 0.13.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shopify/rubocop-sorbet/releases\"\u003erubocop-sorbet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eSorbet/SetterReturnType\u003c/code\u003e cop and extract RBSParser helper by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/389\"\u003eShopify/rubocop-sorbet#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TLetCorrection corrupting files with interior heredocs by \u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/387\"\u003eShopify/rubocop-sorbet#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch Lint/Void to be RBS \u003ccode\u003e#: absurd\u003c/code\u003e aware by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/390\"\u003eShopify/rubocop-sorbet#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1 and 3.2 by \u003ca href=\"https://github.com/Morriar\"\u003e\u003ccode\u003e@​Morriar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/rubocop-sorbet/pull/392\"\u003eShopify/rubocop-sorbet#392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Shopify/rubocop-sorbet/compare/v0.13.2...v0.14.0\"\u003ehttps://github.com/Shopify/rubocop-sorbet/compare/v0.13.2...v0.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/0c73cb13bafce68598265360c3b6058aad4c655e\"\u003e\u003ccode\u003e0c73cb1\u003c/code\u003e\u003c/a\u003e Release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/19dde04b00807ec5f270d42e7e7e8c0cbf1b102e\"\u003e\u003ccode\u003e19dde04\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/394\"\u003e#394\u003c/a\u003e from Shopify/dependabot/github_actions/actions/stale-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/48db43249eb72081b44ea02ace87c291a69a3ca5\"\u003e\u003ccode\u003e48db432\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10.4.0 to 11.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/1ac9184889da701a52b9bc33d0e1bda3b840aa28\"\u003e\u003ccode\u003e1ac9184\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/392\"\u003e#392\u003c/a\u003e from Shopify/drop-ruby-3-1-3-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/8b872bebce2af75f8d24b8de393ed6fd755ea3b8\"\u003e\u003ccode\u003e8b872be\u003c/code\u003e\u003c/a\u003e Test against Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/191035819455b01e7ef6f34c8b006df818720b3b\"\u003e\u003ccode\u003e1910358\u003c/code\u003e\u003c/a\u003e Drop support for Ruby 3.1 and 3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/88c551208ef838855d9edd70dda07e401f123391\"\u003e\u003ccode\u003e88c5512\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/390\"\u003e#390\u003c/a\u003e from Shopify/rm-Lint/Void\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/38d21fc9ca3fecd769c440de4ad2dd9e6c171c50\"\u003e\u003ccode\u003e38d21fc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/387\"\u003e#387\u003c/a\u003e from dduugg/fix-t-let-interior-heredoc-corruption\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/cac0d1ab2105d51074f048000cd0b860a7ceaa2e\"\u003e\u003ccode\u003ecac0d1a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shopify/rubocop-sorbet/issues/389\"\u003e#389\u003c/a\u003e from Shopify/attr-writer-void\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/rubocop-sorbet/commit/fc608980e03d976b36ba644687b26d58fecf197d\"\u003e\u003ccode\u003efc60898\u003c/code\u003e\u003c/a\u003e Add on_itblock alias to cops with on_block\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shopify/rubocop-sorbet/compare/v0.13.2...v0.14.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.0.2 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.316.0 to 1.318.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1238\"\u003esimplecov-ruby/simplecov#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: memoise key parsing in RubyDataParser to fix combiner performance regression by \u003ca href=\"https://github.com/oleksii-leonov\"\u003e\u003ccode\u003e@​oleksii-leonov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1239\"\u003esimplecov-ruby/simplecov#1239\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/oleksii-leonov\"\u003e\u003ccode\u003e@​oleksii-leonov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1239\"\u003esimplecov-ruby/simplecov#1239\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.2...v1.0.3\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.2...v1.0.3\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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self...\n\n_Description has been truncated_","html_url":"https://github.com/Fats768/brew/pull/88","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fats768%2Fbrew/issues/88","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/88/packages"}},{"old_version":"1.89.0","new_version":"1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-28T03:03:31.000Z","version_change":"1.89.0 → 1.90.0","issue":{"uuid":"5274281069","node_id":"PR_kwDOAvES1c8AAAABBScJ3w","number":1079,"state":"closed","title":"chore(deps): bump rubocop from 1.89.0 to 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-12T02:57:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-28T03:03:31.000Z","updated_at":"2026-09-12T02:57:32.000Z","time_to_close":1295636,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"rubocop","old_version":"1.89.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.89.0 to 1.90.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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=rubocop\u0026package-manager=bundler\u0026previous-version=1.89.0\u0026new-version=1.90.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/circleci-tools/circleci-cli/pull/1079","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/circleci-tools%2Fcircleci-cli/issues/1079","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1079/packages"}},{"old_version":"~\u003e 1.89.0","new_version":"~\u003e 1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-25T02:12:43.000Z","version_change":"~\u003e 1.89.0 → ~\u003e 1.90.0","issue":{"uuid":"5241317551","node_id":"PR_kwDOC2qI-M8AAAABA4O-Iw","number":179,"state":"closed","title":"Update rubocop requirement from ~\u003e 1.89.0 to ~\u003e 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-11T02:13:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-25T02:12:43.000Z","updated_at":"2026-09-11T02:13:22.000Z","time_to_close":1468837,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"rubocop","old_version":"~\u003e 1.89.0","new_version":"~\u003e 1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.89.0...v1.90.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 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/site-prism/site_prism-all_there/pull/179","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/site-prism%2Fsite_prism-all_there/issues/179","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/179/packages"}},{"old_version":"~\u003e 1.88.0","new_version":"~\u003e 1.90.0","update_type":"minor","path":null,"pr_created_at":"2026-08-24T19:42:51.000Z","version_change":"~\u003e 1.88.0 → ~\u003e 1.90.0","issue":{"uuid":"5238746308","node_id":"PR_kwDOGS9fhc8AAAABA2NH9g","number":204,"state":"closed","title":"Update rubocop requirement from ~\u003e 1.88.0 to ~\u003e 1.90.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-10T19:43:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-24T19:42:51.000Z","updated_at":"2026-09-10T19:43:42.000Z","time_to_close":1468848,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"rubocop","old_version":"~\u003e 1.88.0","new_version":"~\u003e 1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.0...v1.90.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 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/site-prism/automation_helpers/pull/204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/site-prism%2Fautomation_helpers/issues/204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/204/packages"}},{"old_version":"1.88.2","new_version":"1.89.0","update_type":"minor","path":null,"pr_created_at":"2026-08-19T16:22:54.000Z","version_change":"1.88.2 → 1.89.0","issue":{"uuid":"5194838358","node_id":"PR_kwDOCFQMCs8AAAABATrz5w","number":661,"state":"closed","title":"chore(deps): Bump the minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":["TC-SJ-Yoon"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-09-14T16:21:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-19T16:22:54.000Z","updated_at":"2026-09-14T16:21:45.000Z","time_to_close":2246329,"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":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"simplecov","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"aws-sdk-s3","old_version":"1.228.1","new_version":"1.229.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"msgpack","old_version":"1.8.3","new_version":"1.8.4","repository_url":"https://github.com/msgpack/msgpack-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.88.2` | `1.89.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.1` | `1.27.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.0.3` | `1.1.1` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.228.1` | `1.229.0` |\n| [msgpack](https://github.com/msgpack/msgpack-ruby) | `1.8.3` | `1.8.4` |\n\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-performance` from 1.26.1 to 1.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/releases\"\u003erubocop-performance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Performance v1.27.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md\"\u003erubocop-performance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.27.0 (2026-08-16)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e: Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e when using \u003ccode\u003eflat_map\u003c/code\u003e, \u003ccode\u003efilter_map\u003c/code\u003e, and \u003ccode\u003ecollect_concat\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/pull/530\"\u003e#530\u003c/a\u003e: Speed up loading rubocop-performance by lazily loading only the cops needed for a run. This requires RuboCop 1.89.0+. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c07064ddee3fbac9e18f0e22727813cab6522043\"\u003e\u003ccode\u003ec07064d\u003c/code\u003e\u003c/a\u003e Cut 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0e7abe8a5e403f8e83aff9028329256a868a0426\"\u003e\u003ccode\u003e0e7abe8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/0d43a61ed8b3975834bb774e48dc1b0b601a5f7f\"\u003e\u003ccode\u003e0d43a61\u003c/code\u003e\u003c/a\u003e Suppress RuboCop offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/72eb77d19b66cdcac4748e8f5e237d1f946d8d01\"\u003e\u003ccode\u003e72eb77d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/533\"\u003e#533\u003c/a\u003e from koic/fix_chain_array_allocation_false_negatives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c6024444bffd1daf5d0af7a0e4172e0ccfff6e0\"\u003e\u003ccode\u003e9c60244\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/528\"\u003e#528\u003c/a\u003e from koic/fix_regexp_match_offense_message_for_bang_t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/c3515cbd91f6ff0ecfd842600b1e1d0d2fcdae03\"\u003e\u003ccode\u003ec3515cb\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/532\"\u003e#532\u003c/a\u003e] Fix false negatives for \u003ccode\u003ePerformance/ChainArrayAllocation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dba3d75c67564365d086cd937cbd93762fb6dbf2\"\u003e\u003ccode\u003edba3d75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/530\"\u003e#530\u003c/a\u003e from koic/lazy_load_cops\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/dd5f99218720cb8add4dcc7ae138b71fb9410cf1\"\u003e\u003ccode\u003edd5f992\u003c/code\u003e\u003c/a\u003e Load cops lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/f1763dd2b62e46d59e218dd9f8a9f1fed1dbe851\"\u003e\u003ccode\u003ef1763dd\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-performance/issues/510\"\u003e#510\u003c/a\u003e] Clarify \u003ccode\u003ePerformance/RegexpMatch\u003c/code\u003e message for \u003ccode\u003e!~\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-performance/commit/9c969a6f94bc3081467db35c4bcb4edc890351e5\"\u003e\u003ccode\u003e9c969a6\u003c/code\u003e\u003c/a\u003e Fix JRuby CI failure caused by rbs native extension build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-performance/compare/v1.26.1...v1.27.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.0.3 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self-contained report remains usable even if its optional sidecar JSON was later removed or damaged.\u003c/li\u003e\n\u003cli\u003eCoverage JSON consumers now reject malformed syntax, invalid UTF-8, and non-object roots through one shared parser. \u003ccode\u003eHTMLFormatter#format_from_json\u003c/code\u003e also validates the viewer's required metadata, coverage flags, enabled totals, groups, and source arrays before creating or replacing its output.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/76a8e4e0f6616a16ad7a5b5870ec2fdb772534fb\"\u003e\u003ccode\u003e76a8e4e\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e1bf502e41f267ccdcde1ec9e1e296770890ea21\"\u003e\u003ccode\u003ee1bf502\u003c/code\u003e\u003c/a\u003e Refresh the report screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/f33e0bff11349d0f1334c4a85aa786c416d88e3c\"\u003e\u003ccode\u003ef33e0bf\u003c/code\u003e\u003c/a\u003e Drop the coverage glyphs from the source view and its legend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/2673f9a91d0128b8502e227eb97d986e5c849b29\"\u003e\u003ccode\u003e2673f9a\u003c/code\u003e\u003c/a\u003e Let the tab strip own the report's top bar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/c6ef10b39f925e9ce58c9d0c1d3cbb7b498ff165\"\u003e\u003ccode\u003ec6ef10b\u003c/code\u003e\u003c/a\u003e Report a sandbox command timeout instead of its teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/06759785ca8219886176b0c94fe2795795c98772\"\u003e\u003ccode\u003e0675978\u003c/code\u003e\u003c/a\u003e Keep the conductor's merged report from hinging on runner luck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/560fae5b39ddd04163010692df57e19422fb75f3\"\u003e\u003ccode\u003e560fae5\u003c/code\u003e\u003c/a\u003e Exercise Rails' built-in Minitest integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/ab66677bc09981fb7b7324581b38dcf93700e94f\"\u003e\u003ccode\u003eab66677\u003c/code\u003e\u003c/a\u003e Remember the file-list sort order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/6640c1e5a6a34c13f287d3ca732e1f9519559029\"\u003e\u003ccode\u003e6640c1e\u003c/code\u003e\u003c/a\u003e Polish the source file view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e9ba8c34086eddf4be4b28f9dbe985b6d30521b1\"\u003e\u003ccode\u003ee9ba8c3\u003c/code\u003e\u003c/a\u003e Build a Rails-style screenshot coverage fixture\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.228.1 to 1.229.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.229.0 (2026-08-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - AWS Backup now lets you create read-only access points for Amazon S3 recovery points, enabling you to access backup data using S3 APIs without initiating a restore.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.228.2 (2026-07-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - S3 Encryption Client, encryptionV2 and encryptionV3, returns a decryption error for a malformed material description.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msgpack` from 1.8.3 to 1.8.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog\"\u003emsgpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e2026-07-28 1.8.4\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eMessagePack::Buffer\u003c/code\u003e to stop using already released memory page.\nThis could have caused data to leak across buffers when using the MessagePack::Buffer API\ndirectly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/42378b091b0936d27bc9649da366e90798345fe6\"\u003e\u003ccode\u003e42378b0\u003c/code\u003e\u003c/a\u003e Release 1.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/7cb88d4cf1b87d60c41d28b378922a7d63a7b6fe\"\u003e\u003ccode\u003e7cb88d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/399\"\u003e#399\u003c/a\u003e from Watson1978/fix-rmem-page-ownership\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/ce44d0ee7fc616754005ec511ffcaae1de841cae\"\u003e\u003ccode\u003ece44d0e\u003c/code\u003e\u003c/a\u003e Fix rmem page released while a later chunk still points into it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/8ab8a5a4f6ac85a26028c7c34c2b1f6c888f7790\"\u003e\u003ccode\u003e8ab8a5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/398\"\u003e#398\u003c/a\u003e from hsbt/claude/vigilant-chebyshev-63ce11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/b136b7fc114ed5935f0492dc31c0eae52613f263\"\u003e\u003ccode\u003eb136b7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/msgpack/msgpack-ruby/issues/397\"\u003e#397\u003c/a\u003e from Watson1978/fix-recursive-ext-stack-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/cf586e97741195c303ed5402c7d2494ff67eaf16\"\u003e\u003ccode\u003ecf586e9\u003c/code\u003e\u003c/a\u003e Build deep recursive-extension spec payload without deep recursion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/752ad7f71789d6e210c160513d84dafb5a2c0a80\"\u003e\u003ccode\u003e752ad7f\u003c/code\u003e\u003c/a\u003e Skip recursive-extension StackError spec on JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/1b0cdf7bdcdb392c04ff9df5015f89530f45886d\"\u003e\u003ccode\u003e1b0cdf7\u003c/code\u003e\u003c/a\u003e Raise StackError instead of crashing on deeply nested recursive extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/d2e1c881c0f2305f3ac24645da3d6d1a3e80422f\"\u003e\u003ccode\u003ed2e1c88\u003c/code\u003e\u003c/a\u003e Fix build failure on mswin due to empty UNREACHABLE_RETURN()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msgpack/msgpack-ruby/commit/3efa8bd39fb886e2009e9f8307381b0aad88fc63\"\u003e\u003ccode\u003e3efa8bd\u003c/code\u003e\u003c/a\u003e Move dev dependencies in the Gemfile\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/msgpack/msgpack-ruby/compare/v1.8.3...v1.8.4\"\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 al...\n\n_Description has been truncated_","html_url":"https://github.com/Zetatango/porky_lib/pull/661","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zetatango%2Fporky_lib/issues/661","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/661/packages"}},{"old_version":"1.88.2","new_version":"1.89.0","update_type":"minor","path":null,"pr_created_at":"2026-08-16T22:42:55.000Z","version_change":"1.88.2 → 1.89.0","issue":{"uuid":"5166719024","node_id":"PR_kwDOSmixLM7_0ilI","number":17,"state":"open","title":"chore(deps-dev): Bump the dev-dependencies group across 1 directory with 3 updates","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-08-16T22:42:55.000Z","updated_at":"2026-08-16T22:43:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): Bump","group_name":"dev-dependencies","update_count":3,"packages":[{"name":"rbs","old_version":"4.1.1","new_version":"4.1.3","repository_url":"https://github.com/ruby/rbs"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"simplecov","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/simplecov-ruby/simplecov"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the dev-dependencies group with 3 updates in the / directory: [rbs](https://github.com/ruby/rbs), [rubocop](https://github.com/rubocop/rubocop) and [simplecov](https://github.com/simplecov-ruby/simplecov).\n\nUpdates `rbs` from 4.1.1 to 4.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rbs/releases\"\u003erbs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ruby/rbs/wiki/Release-Note-4.1\"\u003eRelease note\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't use Clang nullability qualifiers in strict ISO C mode (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3074\"\u003e#3074\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid eagerly inspecting call traces in type assertions (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3073\"\u003e#3073\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ruby/rbs/wiki/Release-Note-4.1\"\u003eRelease note\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep GC disabled during GC_test#test_stress_and_stress= (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix GC_test#test_enable leaving GC disabled for the rest of the suite (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3059\"\u003e#3059\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/ruby/rbs/blob/master/CHANGELOG.md\"\u003erbs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.3 (2026-08-10)\u003c/h2\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't use Clang nullability qualifiers in strict ISO C mode (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3074\"\u003e#3074\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid eagerly inspecting call traces in type assertions (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3073\"\u003e#3073\u003c/a\u003e, Backported in \u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3076\"\u003e#3076\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2026-08-03)\u003c/h2\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep GC disabled during GC_test#test_stress_and_stress= (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix GC_test#test_enable leaving GC disabled for the rest of the suite (\u003ca href=\"https://redirect.github.com/ruby/rbs/pull/3059\"\u003e#3059\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/ruby/rbs/commit/5c7f8a248a4cda9fd68a8f796238a5bda89f80f8\"\u003e\u003ccode\u003e5c7f8a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3077\"\u003e#3077\u003c/a\u003e from ruby/claude/release-4-1-3-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/8752e61ca8611bc46e6d008609b68182c0604236\"\u003e\u003ccode\u003e8752e61\u003c/code\u003e\u003c/a\u003e Version 4.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/0b57ea2d2f8e8523630599ab4d4cc2e9a23fb1f6\"\u003e\u003ccode\u003e0b57ea2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3076\"\u003e#3076\u003c/a\u003e from ruby/claude/rbs-3073-backport-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/7920265a93c995f2691220c097189f089c93e916\"\u003e\u003ccode\u003e7920265\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3075\"\u003e#3075\u003c/a\u003e from ruby/claude/rbs-3074-backport-dh5jwk\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/bb496a6418fabdae8ebc21e19bcec9e611f5fdeb\"\u003e\u003ccode\u003ebb496a6\u003c/code\u003e\u003c/a\u003e Avoid eager call trace inspection in type assertions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/3515badae259f67c6d80fb4eb346295a08dfab77\"\u003e\u003ccode\u003e3515bad\u003c/code\u003e\u003c/a\u003e Don't use Clang nullability qualifiers in strict ISO C mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/2c394623014f41c37613ebc20586d407094d3883\"\u003e\u003ccode\u003e2c39462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3062\"\u003e#3062\u003c/a\u003e from ruby/claude/release-4-1-2-hurcyr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/d710ede47db9665447ceda557b2252669bfa9663\"\u003e\u003ccode\u003ed710ede\u003c/code\u003e\u003c/a\u003e Version 4.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/c95a7c9571cd44addc9c4846e4cf55cf9bf923b0\"\u003e\u003ccode\u003ec95a7c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rbs/issues/3061\"\u003e#3061\u003c/a\u003e from ruby/claude/gc-stress-test-performance-424sfy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rbs/commit/1630d1f6c7a7a074b30497bc5b5e311806eb5e59\"\u003e\u003ccode\u003e1630d1f\u003c/code\u003e\u003c/a\u003e Keep GC disabled during GC_test#test_stress_and_stress=\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rbs/compare/v4.1.1...v4.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.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.0.3 to 1.1.1\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.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.20.0 to 2.20.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1258\"\u003esimplecov-ruby/simplecov#1258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erspec-conductor Support by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1259\"\u003esimplecov-ruby/simplecov#1259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1243\"\u003esimplecov-ruby/simplecov#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.318.0 to 1.320.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1242\"\u003esimplecov-ruby/simplecov#1242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove collate performance by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruby/setup-ruby from 1.320.0 to 1.321.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1247\"\u003esimplecov-ruby/simplecov#1247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the HTML report a single self-contained index.html by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1245\"\u003esimplecov-ruby/simplecov#1245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCut unloaded-file injection cost, fix 100% coverage in merged reports by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1252\"\u003esimplecov-ruby/simplecov#1252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop matching the :nocov: regex twice on every classified line by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAbsorb resultsets into one accumulator instead of folding pairwise by \u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1254\"\u003esimplecov-ruby/simplecov#1254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInject unloaded files once at the merge point, not once per process by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1255\"\u003esimplecov-ruby/simplecov#1255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CommandGuesser mislabelling suites from incidental path substrings by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1251\"\u003esimplecov-ruby/simplecov#1251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up SimpleCov.collate with optional multi-process merge by \u003ca href=\"https://github.com/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1246\"\u003esimplecov-ruby/simplecov#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep branch and method data the resultsets carried by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1256\"\u003esimplecov-ruby/simplecov#1256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eColorblind mode by \u003ca href=\"https://github.com/sferik\"\u003e\u003ccode\u003e@​sferik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1257\"\u003esimplecov-ruby/simplecov#1257\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/danielwestendorf\"\u003e\u003ccode\u003e@​danielwestendorf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1244\"\u003esimplecov-ruby/simplecov#1244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andriytyurnikov\"\u003e\u003ccode\u003e@​andriytyurnikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/pull/1253\"\u003esimplecov-ruby/simplecov#1253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.0\"\u003ehttps://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/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.1.1 (2026-08-12)\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report remembers how a file list was sorted. The selected column and direction persist in localStorage across the All Files and group tables, so reloading a report restores the order it was left in. The preference stores semantic column keys rather than numeric positions, so a report whose enabled criteria differ from the report that stored it falls back to the primary coverage sort instead of sorting by whatever column now happens to sit in that position. Equal values break by filename so the restored order matches the clicked order exactly, and the covered and total columns now sort by their numeric value rather than their comma-grouped digits, which used to rank 1,250 below 999.\u003c/li\u003e\n\u003cli\u003eThe report's top bar is now a proper tab strip. Every group tab is outlined, so an unselected group reads as a tab rather than as loose text floating above the panel, while the selected one fills with the panel's own colour and drops its bottom border to merge into it. The colorblind and theme toggles stay unfilled, which keeps the filled shapes in the bar meaningful: the selected tab, and a toggle that is switched on. With more groups than fit, the strip scrolls and both ends fade instead of guillotining whichever tab straddles an edge.\u003c/li\u003e\n\u003cli\u003eThe source file view was polished to match. The colorblind and theme controls sit at the same viewport coordinates as the index toolbar, with the scrollbar gutter reserved so opening the dialog cannot slide them sideways. Each legend key shares a row with its line, branch, or method summary, and the generated-at footer is repeated at the bottom of the source dialog. On paper the header returns to document flow, where the toggles and close button are hidden and the legend reads better at full width.\u003c/li\u003e\n\u003cli\u003eThe source view no longer prints a coverage glyph in a left gutter on every line, and the legend swatches are plain chips of the colours the source view paints rather than a key to a symbol set. The glyphs stated each line's status without relying on colour, but they read as noise down the left edge of every file. Line numbers keep their per-status background, and the Colorblind toggle does the accessibility work on its own by swapping covered and missed for blue versus orange, the pairing red/green vision cannot separate.\u003c/li\u003e\n\u003cli\u003eThe packaged gem no longer ships the \u003ccode\u003eschemas/\u003c/code\u003e directory, dropping 32 KB unpacked from every install. Nothing read it at runtime: the JSON formatter points consumers at the canonical schema URL on GitHub, and the schema specs read from the repository.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCoverage checks no longer get skipped under runners that close a worker's output streams before its \u003ccode\u003eat_exit\u003c/code\u003e hooks run. rspec-conductor closes each worker's pipes as soon as the worker has sent its run summary, and emitting SimpleCov's status line probes \u003ccode\u003eColor.enabled?\u003c/code\u003e, whose \u003ccode\u003eIO#tty?\u003c/code\u003e call raised \u003ccode\u003eIOError\u003c/code\u003e on the closed stream. That exception aborted the remaining exit tasks, so the HTML and JSON reports were written but the minimum and maximum coverage checks silently never ran, and neither \u003ccode\u003e.last_run.json\u003c/code\u003e nor the \u003ccode\u003e.report_stamp\u003c/code\u003e deferral marker was written. A closed stream now counts as not a tty, and the status line and the violation report are dropped rather than cancelling the checks that follow. rspec-conductor is also named in the parallel adapter documentation and covered end to end now, since it follows the \u003ccode\u003eTEST_ENV_NUMBER\u003c/code\u003e and \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e convention the generic adapter already recognizes. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1156\"\u003e#1156\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e no longer depends on load order for \u003ccode\u003eCoverage.line_stub\u003c/code\u003e. \u003ccode\u003eSimulateCoverage\u003c/code\u003e and \u003ccode\u003eResultAdapter\u003c/code\u003e both call it without requiring the coverage library. A normal run loads that library while starting tracking, but a collate-only process never starts tracking, so the constant resolved only by luck through a criterion-support check that happened to run first. Any reordering of that path would have turned into a \u003ccode\u003eNameError\u003c/code\u003e out of \u003ccode\u003eSimpleCov.collate\u003c/code\u003e, so each file now requires what it uses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.0 (2026-08-10)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esimplecov report --json\u003c/code\u003e now emits \u003ccode\u003e{\u0026quot;total\u0026quot;: {...}, \u0026quot;groups\u0026quot;: {...}}\u003c/code\u003e instead of flattening the overall \u003ccode\u003e\u0026quot;All Files\u0026quot;\u003c/code\u003e entry and configured groups into one object. The old shape silently overwrote the overall totals when a user group was also named \u003ccode\u003eAll Files\u003c/code\u003e; the text report now labels that user section \u003ccode\u003eAll Files (group)\u003c/code\u003e as well.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUngrouped\u003c/code\u003e is now reserved for the implicit group of files that match no configured group. Defining an explicit group with that name previously caused SimpleCov to overwrite it during result processing and silently discard its matched files; rename such a group to \u003ccode\u003eOther\u003c/code\u003e or another distinct label. Group names are also normalized when configured: a \u003ccode\u003eSymbol\u003c/code\u003e name (\u003ccode\u003egroup :Models\u003c/code\u003e) now means the same group as its \u003ccode\u003eString\u003c/code\u003e spelling (so \u003ccode\u003egroup :Ungrouped\u003c/code\u003e is rejected like the string form, and a symbol-named group can no longer produce a duplicate JSON key next to a string-named one), and a name that is neither a \u003ccode\u003eString\u003c/code\u003e nor a \u003ccode\u003eSymbol\u003c/code\u003e raises \u003ccode\u003eSimpleCov::ConfigurationError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe HTML report is now a single self-contained \u003ccode\u003eindex.html\u003c/code\u003e. The viewer's JavaScript and CSS are inlined into the compiled template at build time, and the coverage data is embedded at report time (with \u003ccode\u003e\u0026lt;\u003c/code\u003e escaped in the payload so embedded source text cannot terminate the surrounding \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e element), so \u003ccode\u003ecoverage/\u003c/code\u003e contains just \u003ccode\u003eindex.html\u003c/code\u003e and \u003ccode\u003ecoverage.json\u003c/code\u003e. A single file can be mailed, uploaded as a non-zipped GitHub Actions run artifact (\u003ccode\u003eactions/upload-artifact\u003c/code\u003e with \u003ccode\u003earchive: false\u003c/code\u003e, viewable directly from the run page), or copied anywhere without sibling files, and the report can no longer be read mid-write in a torn state where \u003ccode\u003eindex.html\u003c/code\u003e, \u003ccode\u003ecoverage_data.js\u003c/code\u003e, and \u003ccode\u003eapplication.js\u003c/code\u003e come from different runs — the whole report updates in one atomic rename. The sibling files the formatter previously wrote (\u003ccode\u003ecoverage_data.js\u003c/code\u003e, \u003ccode\u003eapplication.js\u003c/code\u003e, \u003ccode\u003eapplication.css\u003c/code\u003e, and the three favicon PNGs) are gone; anything scripted against that layout should read \u003ccode\u003ecoverage.json\u003c/code\u003e (the sanctioned data artifact, unchanged) instead of \u003ccode\u003ecoverage_data.js\u003c/code\u003e. Formatting also deletes those six names from the output directory when an earlier version left them there, so an upgraded project's \u003ccode\u003ecoverage/\u003c/code\u003e doesn't keep a stale \u003ccode\u003ecoverage_data.js\u003c/code\u003e around for \u003ccode\u003esimplecov serve\u003c/code\u003e to serve. This restores single-file reports to the 1.0 line — the pre-1.0 \u003ccode\u003esimplecov-html\u003c/code\u003e formatter offered them via the \u003ccode\u003eSIMPLECOV_INLINE_ASSETS\u003c/code\u003e environment variable, which the 1.0 client-side rendering rewrite dropped — and makes them the default and only mode, with no environment variable or configuration flag. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1241\"\u003e#1241\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report gains a colorblind-friendly mode. A Colorblind toggle next to the Dark toggle swaps the covered/missed pairing (and the coverage bands) for blue versus orange, the standard colorblind-safe pairing, in both themes; the choice persists in localStorage and is applied before first paint. Both toggles report state via \u003ccode\u003earia-pressed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now handles each connection on its own thread with a read timeout, so a stalled connection (browsers routinely open speculative sockets that send no bytes) no longer blocks every other request. It also works on JRuby and TruffleRuby, answers malformed request lines with a 400 instead of an empty response, and prints a bracketed URL for IPv6 hosts.\u003c/li\u003e\n\u003cli\u003eThe README was trimmed from 1,617 lines to under 180, with the full documentation moved into topic guides under a new \u003ccode\u003edocs/\u003c/code\u003e directory (Configuration, Parallelism, Formatters, CLI, Troubleshooting) alongside the changelogs, contributing guide, and code of conduct, with the issue template tucked into \u003ccode\u003e.github/\u003c/code\u003e. This changelog now lives at \u003ccode\u003edocs/Changelog.md\u003c/code\u003e and the gem's \u003ccode\u003echangelog_uri\u003c/code\u003e metadata follows it. Nothing under \u003ccode\u003edocs/\u003c/code\u003e ships in the gem, which also stops packaging the old \u003ccode\u003edoc/*\u003c/code\u003e link lists. The alternate formatters catalog was rebuilt against RubyGems: twenty formatters join the twelve that were listed, organized by output type.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.resultset.json\u003c/code\u003e is now written as compact JSON instead of pretty-printed. It is a machine-read cache that every parallel worker rewrites wholesale, and pretty printing nearly doubled the bytes written, read back, and parsed on each store-merge round trip — on a 100,000-file project the file shrinks from 89MB to 51MB and serialization halves. Any JSON parser reads the compact form; pipe it through \u003ccode\u003ejq\u003c/code\u003e if you need to inspect it by eye.\u003c/li\u003e\n\u003cli\u003eThe favicon (a solid square in the overall coverage band's colour) is now drawn by the viewer from the report's own palette instead of shipping as fixed PNGs, so it matches the report's green/yellow/red exactly and follows the light/dark theme, including the in-page toggle.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSimpleCov.collate\u003c/code\u003e takes a new \u003ccode\u003eprocesses:\u003c/code\u003e argument that fans the resultset merge out across that many forked worker processes. This addresses the wall clock of a large CI matrix's collate step, where the collating process reads, parses and folds hundreds of resultsets in sequence and nearly all the time goes into that fold: merging 160 resultsets covering 1,836 files on a 14-core machine took 4.53s at the default \u003ccode\u003eprocesses: 1\u003c/code\u003e and 1.35s across 8 workers. The report is identical either way, not merely equivalent — each worker folds a contiguous slice of the file list and the collating process folds the slices back in order, so the resultsets are visited in the same order a single-process merge visits them. The fan-out lives in a new \u003ccode\u003eSimpleCov::ParallelResultMerger\u003c/code\u003e, whose \u003ccode\u003eabsorb_results\u003c/code\u003e mirrors \u003ccode\u003eResultMerger.absorb_results\u003c/code\u003e, splitting that fold across workers and unioning the tracked paths each one saw. \u003ccode\u003eprocesses\u003c/code\u003e defaults to the \u003ccode\u003eSIMPLECOV_CONCURRENCY\u003c/code\u003e environment variable (1 when unset), so one rake task can serve CI runners of different sizes without being edited, and an explicit argument wins over the variable. It never forks at 1, so existing \u003ccode\u003ecollate\u003c/code\u003e calls are unaffected; it is deliberately not clamped to the core count nor gated on a minimum number of resultsets — only the caller knows what a collate job is allowed to use — asking for more processes than there are result files just gives one file per process, and anything below 1 is taken as 1. Merging falls back to the collating process, with the same report and no error, when the runtime cannot fork (JRuby, TruffleRuby, Windows), when there is only one resultset, or when a worker dies. A \u003ccode\u003ebenchmarks/collate.rb\u003c/code\u003e harness (\u003ccode\u003ePROCESSES=N\u003c/code\u003e) measures the phases against a saved baseline.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTwo concurrent runners sharing a command name no longer lose the later writer's coverage for files both carried. A live result serializes its criterion tables under Ruby's Symbol keys while entries parsed back from \u003ccode\u003e.resultset.json\u003c/code\u003e carry Strings, and the combiners read only Strings, so the merge that exists to prevent an empty parent process from clobbering a subprocess's data (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/581\"\u003e#581\u003c/a\u003e) silently contributed nothing from the incoming side. Criterion keys are now stringified at serialization time so the stored and live shapes always match.\u003c/li\u003e\n\u003cli\u003eMerging or collating stored resultsets with method coverage enabled no longer crashes on singleton methods defined on instances. \u003ccode\u003edef obj.greet\u003c/code\u003e records its receiver as the nested inspect form \u003ccode\u003e#\u0026lt;Class:#\u0026lt;Object:0x...\u0026gt;\u0026gt;\u003c/code\u003e, and the parser that turns JSON-stringified method keys back into tuples stopped at the first closing angle bracket, raising \u003ccode\u003eArgumentError\u003c/code\u003e out of the merge. The quoting now handles nested segments.\u003c/li\u003e\n\u003cli\u003eThat same clobber-prevention backstop now stands down for failed child runs too. It keyed its freshness check on \u003ccode\u003e.last_run.json\u003c/code\u003e, which only fully successful runs write, so a Rakefile parent overwrote the child's report exactly when the child's tests or coverage checks had failed and the report mattered most. Formatting now touches a \u003ccode\u003ecoverage/.report_stamp\u003c/code\u003e marker no matter how the run ends, and the backstop accepts either file as evidence of a fresher report.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003e# simplecov:disable line\u003c/code\u003e block around a method no longer silently removes that method from method-coverage totals. The method skip fell back to asking whether all of the method's lines were skipped, so the line-only directive (the README's own example) leaked into the method criterion. Deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e chunks still exclude methods, now routed explicitly like every other criterion.\u003c/li\u003e\n\u003cli\u003eA directive reason that merely starts with a category name no longer narrows the directive. \u003ccode\u003e# simplecov:disable linear algebra reasons\u003c/code\u003e parsed as category \u003ccode\u003eline\u003c/code\u003e with the rest as reason, disabling only line coverage where the documented behavior for unrecognised text is to over-disable everything. The category list now requires a word boundary.\u003c/li\u003e\n\u003cli\u003ePer-group minimums configured with a Symbol group name are enforced again. \u003ccode\u003egroup :Models\u003c/code\u003e normalizes the name to a String but \u003ccode\u003eminimum_per_group 95, only: :Models\u003c/code\u003e (and the deprecated \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e) stored the Symbol untouched, so the check-time lookup missed and warned that group \u0026quot;Models\u0026quot; doesn't exist while listing that very name as available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov diff\u003c/code\u003e matches its documentation: \u003ccode\u003e--threshold N\u003c/code\u003e is inclusive (a file that moved exactly N% is listed), removed files no longer trip \u003ccode\u003e--fail-on-drop\u003c/code\u003e (deleting a covered file is not a regression), and sub-epsilon float noise no longer fails the gate on a row shown only for its gains.\u003c/li\u003e\n\u003cli\u003eTracked-but-unloaded files with multi-statement parenthesized conditions no longer synthesize phantom branches. CRuby folds \u003ccode\u003eif (1; 2)\u003c/code\u003e by its last expression when the compiler can eliminate every leading statement, and the rules differ per version (parse.y eliminates only pure literals, 3.3 also eliminates side-effect-free reads and containers of them, 3.4+ narrows containers to fully static literals). The static extractor now mirrors each compiler exactly, verified against real \u003ccode\u003eCoverage\u003c/code\u003e output on every supported Ruby.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e no longer raises when \u003ccode\u003eHOME\u003c/code\u003e is set but empty, as some container and CI images do. The global-config loader treats an empty \u003ccode\u003eHOME\u003c/code\u003e like an unset one.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov merge\u003c/code\u003e, \u003ccode\u003ereport\u003c/code\u003e, and \u003ccode\u003ecoverage\u003c/code\u003e print one-line errors instead of backtraces on more bad inputs: a directory or unreadable file passed to \u003ccode\u003emerge\u003c/code\u003e, valid JSON whose \u003ccode\u003etotal\u003c/code\u003e or \u003ccode\u003egroups\u003c/code\u003e has the wrong type, and a per-file entry that is not an object.\u003c/li\u003e\n\u003cli\u003eAn empty or non-numeric \u003ccode\u003ePARALLEL_TEST_GROUPS\u003c/code\u003e no longer makes the reporting worker expect zero siblings and skip the wait for their results; unusable values now mean one worker, and non-positive values are rejected too.\u003c/li\u003e\n\u003cli\u003eSimulating tracked files became tolerant of unreadable paths: a \u003ccode\u003etrack_files\u003c/code\u003e glob that sweeps up a directory named like a Ruby file or a permission-denied entry now treats it as empty instead of crashing the merge or report step. Resultset files truncated to a single byte now warn like other corruption instead of reading as quietly empty, a hand-edited \u003ccode\u003e.last_run.json\u003c/code\u003e with a non-numeric percentage no longer raises out of the at_exit hook, and the missing-group notice respects \u003ccode\u003eprint_errors\u003c/code\u003e and survives \u003ccode\u003e-W0\u003c/code\u003e like every other enforcement message.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage :eval, minimum: 100\u003c/code\u003e now explains that thresholds are unsupported for \u003ccode\u003e:eval\u003c/code\u003e instead of claiming the criterion itself is invalid, and \u003ccode\u003esimplecov clean --dry-run\u003c/code\u003e counts dotfiles such as \u003ccode\u003e.resultset.json\u003c/code\u003e in its entry count.\u003c/li\u003e\n\u003cli\u003eSource files containing invalid UTF-8 bytes no longer crash report generation. A file with no encoding magic comment is read as UTF-8, and a stray high-bit byte (a Latin-1 comment, say) previously raised \u003ccode\u003eArgumentError: invalid byte sequence in UTF-8\u003c/code\u003e from the first regex that touched the line — the shebang check or the lines classifier — taking the whole report down. Invalid bytes are now replaced with the Unicode replacement character at load time, so every line leaves the source loader as valid UTF-8 and the rest of the pipeline (classification, JSON embedding, the HTML viewer payload) works from sanitized text.\u003c/li\u003e\n\u003cli\u003eGenerated coverage artifacts now share one collision-safe atomic writer. Concurrent threads no longer reuse the same process-ID temporary name, and the JSON formatter and \u003ccode\u003esimplecov merge\u003c/code\u003e no longer expose partially written documents to readers; existing Unix permission bits and each artifact's historical byte format are preserved.\u003c/li\u003e\n\u003cli\u003eConfiguration blocks no longer install temporary \u003ccode\u003emethod_missing\u003c/code\u003e hooks on their caller or copy caller instance variables into SimpleCov. Those hooks leaked DSL commands across threads, broke overlapping and nested evaluations, rejected frozen or immediate-value owners, changed \u003ccode\u003erequire_relative\u003c/code\u003e and binding behavior, and could mask an original exception during cleanup. See the parameterized-block migration under Breaking Changes.\u003c/li\u003e\n\u003cli\u003eNon-final parallel workers now stop after storing their own result instead of reading and caching a partial merge. A single ownership predicate selects the adapter's final process for merging, formatting, threshold checks, and \u003ccode\u003e.last_run.json\u003c/code\u003e; explicit \u003ccode\u003eSimpleCov.collate\u003c/code\u003e remains authoritative regardless of worker identity.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e now builds a missing \u003ccode\u003eindex.html\u003c/code\u003e from \u003ccode\u003ecoverage.json\u003c/code\u003e and fails before binding when neither artifact exists or the JSON is invalid. An existing self-contained report remains usable even if its optional sidecar JSON was later removed or damaged.\u003c/li\u003e\n\u003cli\u003eCoverage JSON consumers now reject malformed syntax, invalid UTF-8, and non-object roots through one shared parser. \u003ccode\u003eHTMLFormatter#format_from_json\u003c/code\u003e also validates the viewer's required metadata, coverage flags, enabled totals, groups, and source arrays before creating or replacing its output.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/76a8e4e0f6616a16ad7a5b5870ec2fdb772534fb\"\u003e\u003ccode\u003e76a8e4e\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e1bf502e41f267ccdcde1ec9e1e296770890ea21\"\u003e\u003ccode\u003ee1bf502\u003c/code\u003e\u003c/a\u003e Refresh the report screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/f33e0bff11349d0f1334c4a85aa786c416d88e3c\"\u003e\u003ccode\u003ef33e0bf\u003c/code\u003e\u003c/a\u003e Drop the coverage glyphs from the source view and its legend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/2673f9a91d0128b8502e227eb97d986e5c849b29\"\u003e\u003ccode\u003e2673f9a\u003c/code\u003e\u003c/a\u003e Let the tab strip own the report's top bar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/c6ef10b39f925e9ce58c9d0c1d3cbb7b498ff165\"\u003e\u003ccode\u003ec6ef10b\u003c/code\u003e\u003c/a\u003e Report a sandbox command timeout instead of its teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/06759785ca8219886176b0c94fe2795795c98772\"\u003e\u003ccode\u003e0675978\u003c/code\u003e\u003c/a\u003e Keep the conductor's merged report from hinging on runner luck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/560fae5b39ddd04163010692df57e19422fb75f3\"\u003e\u003ccode\u003e560fae5\u003c/code\u003e\u003c/a\u003e Exercise Rails' built-in Minitest integration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/ab66677bc09981fb7b7324581b38dcf93700e94f\"\u003e\u003ccode\u003eab66677\u003c/code\u003e\u003c/a\u003e Remember the file-list sort order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/6640c1e5a6a34c13f287d3ca732e1f9519559029\"\u003e\u003ccode\u003e6640c1e\u003c/code\u003e\u003c/a\u003e Polish the source file view\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e9ba8c34086eddf4be4b28f9dbe985b6d30521b1\"\u003e\u003ccode\u003ee9ba8c3\u003c/code\u003e\u003c/a\u003e Build a Rails-style screenshot coverage fixture\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.0.3...v1.1.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/poli-page/sdk-ruby/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/poli-page%2Fsdk-ruby/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"1.86.2","new_version":"1.90.0","update_type":"minor","path":"the rubocop group across 1 directory","pr_created_at":"2026-08-11T12:53:47.000Z","version_change":"1.86.2 → 1.90.0","issue":{"uuid":"5120381308","node_id":"PR_kwDORXgSbc79hQSn","number":15,"state":"closed","title":"chore(deps): bump rubocop from 1.86.2 to 1.90.0 in the rubocop group across 1 directory","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-06T07:20:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-08-11T12:53:47.000Z","updated_at":"2026-09-06T07:20:53.000Z","time_to_close":2226424,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"rubocop","old_version":"1.86.2","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":"the rubocop group across 1 directory","ecosystem":"rubygems"},"body":"Bumps the rubocop group with 1 update in the / directory: [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `rubocop` from 1.86.2 to 1.90.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.90.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14379\"\u003e#14379\u003c/a\u003e: Suppress multi-line offenses with a directive on any of their lines. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.90.0 (2026-08-24)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15073\"\u003e#15073\u003c/a\u003e: Add \u003ccode\u003eAllowTrailingComment\u003c/code\u003e option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9505\"\u003e#9505\u003c/a\u003e: Add \u003ccode\u003edisable-next\u003c/code\u003e directives scoped to the following statement. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15550\"\u003e#15550\u003c/a\u003e: Add \u003ccode\u003e--display-suppressed\u003c/code\u003e option to also report offenses suppressed by directive comments, including their \u003ccode\u003e--\u003c/code\u003e justification in the JSON formatter. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15523\"\u003e#15523\u003c/a\u003e: Add new \u003ccode\u003eLint/ArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15594\"\u003e#15594\u003c/a\u003e: Add new \u003ccode\u003eLint/SuperArgumentMismatch\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15581\"\u003e#15581\u003c/a\u003e: Add new \u003ccode\u003eStyle/TimeNow\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e: Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e to configure the minimum number of empty lines required after magic comments. ([\u003ca href=\"https://github.com/alejofraga\"\u003e\u003ccode\u003e@​alejofraga\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13037\"\u003e#13037\u003c/a\u003e: Add \u003ccode\u003e--report-unused-todo-entries\u003c/code\u003e to catch rotting todo files. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15559\"\u003e#15559\u003c/a\u003e: Add new \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e cop to flag \u003ccode\u003edisable\u003c/code\u003e/\u003ccode\u003eenable\u003c/code\u003e pairs and disable-only \u003ccode\u003epush\u003c/code\u003e/\u003ccode\u003epop\u003c/code\u003e scopes that wrap a single statement and can use \u003ccode\u003edisable-next\u003c/code\u003e instead. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e flag \u003ccode\u003e# rubocop:pop\u003c/code\u003e directives without a matching \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15584\"\u003e#15584\u003c/a\u003e: Fix a crash in \u003ccode\u003eLint/NameTypo\u003c/code\u003e and \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e on string literals with invalid encoding. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15541\"\u003e#15541\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/OutOfRangeRegexpRef\u003c/code\u003e when a preceding element access with a non-string literal argument (e.g. \u003ccode\u003ehash[:key]\u003c/code\u003e) discarded the tracked capture count. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7958\"\u003e#7958\u003c/a\u003e: Add todo comments for skipped unsafe corrections with \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15569\"\u003e#15569\u003c/a\u003e: Fix an error for the built-in language server when a \u003ccode\u003eworkspace/executeCommand\u003c/code\u003e request has no document URI in its arguments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15410\"\u003e#15410\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15576\"\u003e#15576\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/Sample\u003c/code\u003e when \u003ccode\u003eshuffle\u003c/code\u003e is given a \u003ccode\u003erandom:\u003c/code\u003e argument; the offense is still reported but no longer autocorrected, since \u003ccode\u003eshuffle\u003c/code\u003e and \u003ccode\u003esample\u003c/code\u003e consume a seeded generator differently and would select different elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15590\"\u003e#15590\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/FirstArgumentIndentation\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e and \u003ccode\u003eLayout/FirstMethodArgumentLineBreak\u003c/code\u003e is enabled with \u003ccode\u003eAllowMultilineFinalElement: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15588\"\u003e#15588\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::IgnoredMethods\u003c/code\u003e and \u003ccode\u003eRuboCop::Cop::IgnoredPattern\u003c/code\u003e being unreachable after \u003ccode\u003erequire 'rubocop'\u003c/code\u003e. ([\u003ca href=\"https://github.com/SeanLF\"\u003e\u003ccode\u003e@​SeanLF\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/8349\"\u003e#8349\u003c/a\u003e: Don't autocorrect away directives for unknown cops. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/7894\"\u003e#7894\u003c/a\u003e: Don't flag disables of pending cops as redundant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9963\"\u003e#9963\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/ExtraSpacing\u003c/code\u003e. ([\u003ca href=\"https://github.com/Starlexxx\"\u003e\u003ccode\u003e@​Starlexxx\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15525\"\u003e#15525\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when a constant path like \u003ccode\u003eHttp::UploadedFile\u003c/code\u003e matches \u003ccode\u003eURISchemes\u003c/code\u003e case-insensitively. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13941\"\u003e#13941\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UselessConstantScoping\u003c/code\u003e when assigning with \u003ccode\u003eClass.new\u003c/code\u003e, \u003ccode\u003eModule.new\u003c/code\u003e, \u003ccode\u003eStruct.new\u003c/code\u003e, or \u003ccode\u003eData.define\u003c/code\u003e after \u003ccode\u003eprivate\u003c/code\u003e. ([\u003ca href=\"https://github.com/pdobb\"\u003e\u003ccode\u003e@​pdobb\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15526\"\u003e#15526\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a line has multiple single-line blocks before a multiline block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15538\"\u003e#15538\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a constant is assigned in compact-style namespaces (e.g. \u003ccode\u003emodule A::B\u003c/code\u003e). ([\u003ca href=\"https://github.com/alex-tan\"\u003e\u003ccode\u003e@​alex-tan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15517\"\u003e#15517\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e is enabled and the receiver name is rebound by a nested block (\u003ccode\u003eit\u003c/code\u003e or a shadowed block parameter). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15572\"\u003e#15572\u003c/a\u003e: Fix \u003ccode\u003eRuboCop::Cop::Registry#freeze\u003c/code\u003e to freeze its internal collections, so that registering a lazily loaded cop after the freeze fails fast at the registration site instead of corrupting the registry. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15585\"\u003e#15585\u003c/a\u003e: Make \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e honor \u003ccode\u003esilence_redefinition_of_method\u003c/code\u003e and \u003ccode\u003eredefine_method\u003c/code\u003e as intentional redefinitions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15558\"\u003e#15558\u003c/a\u003e: Fix \u003ccode\u003e--display-suppressed\u003c/code\u003e reporting a \u003ccode\u003enil\u003c/code\u003e \u003ccode\u003ejustification\u003c/code\u003e when the offense is loaded from the result cache. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10449\"\u003e#10449\u003c/a\u003e: Fix \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e autocorrection producing a wrong order when an element cannot be moved, and make offenses report the category that actually blocks the expected order. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15568\"\u003e#15568\u003c/a\u003e: Fix \u003ccode\u003eLint/NameTypo\u003c/code\u003e registering false positives for names provided by a gem whose namespace the project reopens, and for constants read from a namespace with an unresolved ancestor. ([\u003ca href=\"https://github.com/HoneyryderChuck\"\u003e\u003ccode\u003e@​HoneyryderChuck\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15556\"\u003e#15556\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e retaining every past \u003ccode\u003eproject_index\u003c/code\u003e object it has seen (and the index graph reachable from each), rather than only the most recent one. This caused unbounded memory growth in long-lived processes such as \u003ccode\u003erubocop --server\u003c/code\u003e. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e: Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods with \u003ccode\u003e**kwargs\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15589\"\u003e#15589\u003c/a\u003e: Fix \u003ccode\u003e--lsp\u003c/code\u003e and \u003ccode\u003e--mcp\u003c/code\u003e being silently ignored when the RuboCop server is running: they now start the protocol server in the current process instead of being forwarded to the server as a lint request. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11148\"\u003e#11148\u003c/a\u003e: Merge department and cop-level \u003ccode\u003eExclude\u003c/code\u003e settings. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15531\"\u003e#15531\u003c/a\u003e: Fix a regression in RuboCop 1.89 where the modifier cops could produce lines longer than \u003ccode\u003eLayout/LineLength\u003c/code\u003e \u003ccode\u003eMax\u003c/code\u003e when exemptions like \u003ccode\u003eAllowedPatterns\u003c/code\u003e matched the result. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15574\"\u003e#15574\u003c/a\u003e: Fix an incorrect warning such as \u003ccode\u003eAllCops does not support TargetRailsVersion parameter\u003c/code\u003e when a plugin declares a custom \u003ccode\u003eAllCops\u003c/code\u003e key with a nil value and another plugin is loaded after it. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e: Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11119\"\u003e#11119\u003c/a\u003e: Preserve persistent cop instances across files. ([\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13022\"\u003e#13022\u003c/a\u003e: Fix \u003ccode\u003erubocop .\u003c/code\u003e (and other relative directory arguments) needlessly traversing directories excluded by the configuration, which made it much slower than \u003ccode\u003erubocop\u003c/code\u003e in projects with large ignored trees. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15561\"\u003e#15561\u003c/a\u003e: Fix \u003ccode\u003eLint/RedundantCopDisableDirective\u003c/code\u003e and \u003ccode\u003eLint/RedundantCopEnableDirective\u003c/code\u003e leaving a directive's \u003ccode\u003e--\u003c/code\u003e reason behind when removing the directive. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15593\"\u003e#15593\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e for private definitions of Ruby runtime hooks like \u003ccode\u003einherited\u003c/code\u003e and \u003ccode\u003econst_missing\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15547\"\u003e#15547\u003c/a\u003e: Make \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e suggest \u003ccode\u003e# rubocop:pop\u003c/code\u003e instead of \u003ccode\u003e# rubocop:enable\u003c/code\u003e for an unclosed \u003ccode\u003e# rubocop:push\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f1b25e1040416a1c4599273eeb6544679c3d68a0\"\u003e\u003ccode\u003ef1b25e1\u003c/code\u003e\u003c/a\u003e Cut 1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/72895f6d1409fb6221377cb0f0f6b1e4818f00ab\"\u003e\u003ccode\u003e72895f6\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7042de6350525017c78dd871db7d13d3dd31e94c\"\u003e\u003ccode\u003e7042de6\u003c/code\u003e\u003c/a\u003e Move op_method? before the shadowing helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4b14dd2088a6d0a3a7d7213e044dbf9c9132bd48\"\u003e\u003ccode\u003e4b14dd2\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eNaming/BinaryOperatorParameterName\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5d221acb275bc8481367f7ec0e3745a0f5002a97\"\u003e\u003ccode\u003e5d221ac\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10046\"\u003e#10046\u003c/a\u003e] Fix \u003ccode\u003eLint/UselessMethodDefinition\u003c/code\u003e false positive for methods wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5070fc3afbe002ef35b5c944f0df86ff6b9bdd44\"\u003e\u003ccode\u003e5070fc3\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15111\"\u003e#15111\u003c/a\u003e] Add \u003ccode\u003eNumberOfEmptyLines\u003c/code\u003e option to `Layout/EmptyLineAfterMagicCo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/496eb658a511bc288da273ca7df0aedc79ca2e36\"\u003e\u003ccode\u003e496eb65\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9543\"\u003e#9543\u003c/a\u003e] Preserve escape notation in \u003ccode\u003eStyle/StringConcatenation\u003c/code\u003e autocorrect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/75b36226a8ec23501319ea434734ede69f8c2952\"\u003e\u003ccode\u003e75b3622\u003c/code\u003e\u003c/a\u003e Remove a directive's \u003ccode\u003e--\u003c/code\u003e reason along with the directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/858d8a8a3c8de7bdc603b14c4284b4c750268c0b\"\u003e\u003ccode\u003e858d8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15596\"\u003e#15596\u003c/a\u003e from koic/add_real_last_column_to_offense\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/15557b052c51c4d8b64e38ac13723a55904aff98\"\u003e\u003ccode\u003e15557b0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eOffense#real_last_column\u003c/code\u003e and use it in \u003ccode\u003eJSONFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.90.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/skiftle/rubocop-canon/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skiftle%2Frubocop-canon/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"1.88.2","new_version":"1.89.0","update_type":"minor","path":null,"pr_created_at":"2026-08-07T17:14:16.000Z","version_change":"1.88.2 → 1.89.0","issue":{"uuid":"5092411377","node_id":"PR_kwDOLFamU878Jav2","number":715,"state":"open","title":"Bump the ruby-minor-and-patch group with 2 updates","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-08-07T17:14:16.000Z","updated_at":"2026-08-07T17:16:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-minor-and-patch","update_count":2,"packages":[{"name":"fastlane-plugin-wpmreleasetoolkit","old_version":"14.11.1","new_version":"14.11.2","repository_url":"https://github.com/wordpress-mobile/release-toolkit"},{"name":"rubocop","old_version":"1.88.2","new_version":"1.89.0","repository_url":"https://github.com/rubocop/rubocop"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-minor-and-patch group with 2 updates: [fastlane-plugin-wpmreleasetoolkit](https://github.com/wordpress-mobile/release-toolkit) and [rubocop](https://github.com/rubocop/rubocop).\n\nUpdates `fastlane-plugin-wpmreleasetoolkit` from 14.11.1 to 14.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/releases\"\u003efastlane-plugin-wpmreleasetoolkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e14.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epublish_github_release\u003c/code\u003e now publishes the most recently created GitHub Release when several share the same name, instead of whichever one the GitHub API happened to list first. It also warns when it finds more than one match, or when the release it publishes turns out to have been published already. The tag-based release lookup used by \u003ccode\u003eupload_github_release_assets\u003c/code\u003e is deterministic too, preferring the published release that owns the tag, and falling back to the most recently created draft when no published release claims it. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the \u003ccode\u003eGitHelper\u003c/code\u003e git-lfs specs against a sandboxed \u003ccode\u003eGIT_CONFIG_GLOBAL\u003c/code\u003e so they no longer remove the \u003ccode\u003e[filter \u0026quot;lfs\u0026quot;]\u003c/code\u003e section from the developer's global git config. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\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/wordpress-mobile/release-toolkit/blob/trunk/CHANGELOG.md\"\u003efastlane-plugin-wpmreleasetoolkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e14.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epublish_github_release\u003c/code\u003e now publishes the most recently created GitHub Release when several share the same name, instead of whichever one the GitHub API happened to list first. It also warns when it finds more than one match, or when the release it publishes turns out to have been published already. The tag-based release lookup used by \u003ccode\u003eupload_github_release_assets\u003c/code\u003e is deterministic too, preferring the published release that owns the tag, and falling back to the most recently created draft when no published release claims it. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun the \u003ccode\u003eGitHelper\u003c/code\u003e git-lfs specs against a sandboxed \u003ccode\u003eGIT_CONFIG_GLOBAL\u003c/code\u003e so they no longer remove the \u003ccode\u003e[filter \u0026quot;lfs\u0026quot;]\u003c/code\u003e section from the developer's global git config. \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\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/wordpress-mobile/release-toolkit/commit/447f736791943002b63c5f0b250128b2f48c3dd2\"\u003e\u003ccode\u003e447f736\u003c/code\u003e\u003c/a\u003e Release 14.11.2 into trunk (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/768\"\u003e#768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/1eb17dd82c253a0462ba6360a7a58d020f83951d\"\u003e\u003ccode\u003e1eb17dd\u003c/code\u003e\u003c/a\u003e Bumped to version 14.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/0ddc10eafc83567b547e4dc5c31a94aba0a81e41\"\u003e\u003ccode\u003e0ddc10e\u003c/code\u003e\u003c/a\u003e Sandbox the global git config in git-lfs specs (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/3205f9ee16197b2f3caf212e77a385d6b27788e2\"\u003e\u003ccode\u003e3205f9e\u003c/code\u003e\u003c/a\u003e Publish the most recent GitHub Release when several share a name (\u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/763\"\u003e#763\u003c/a\u003e \u0026amp; \u003ca href=\"https://redirect.github.com/wordpress-mobile/release-toolkit/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/eb10938a5e2769b020163bba68357190d050397a\"\u003e\u003ccode\u003eeb10938\u003c/code\u003e\u003c/a\u003e List the wrong release first in release lookup specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/3b81bb1b59752829560bcde7d281938056792e04\"\u003e\u003ccode\u003e3b81bb1\u003c/code\u003e\u003c/a\u003e Fix rubocop violation (trailing whitespace)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/26e2cc147569faf950b123bd3bba8476c3364471\"\u003e\u003ccode\u003e26e2cc1\u003c/code\u003e\u003c/a\u003e Remove stray interpolation of space\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/c9cacaae82494af28d4cb579f82d26998e2a9910\"\u003e\u003ccode\u003ec9cacaa\u003c/code\u003e\u003c/a\u003e Prefer the release owning the tag over a more recent draft\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/dd43d630ad3309d6bc81a3f4d717ce282c426d59\"\u003e\u003ccode\u003edd43d63\u003c/code\u003e\u003c/a\u003e Fix lint and spec fallout from the review suggestions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/commit/39d348e9ff4a277b137585637ddc19f34d13e9ce\"\u003e\u003ccode\u003e39d348e\u003c/code\u003e\u003c/a\u003e Apply suggestions from code review\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wordpress-mobile/release-toolkit/compare/14.11.1...14.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.88.2 to 1.89.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.89.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15321\"\u003e#15321\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e ignoring \u003ccode\u003eEnforcedStyleForClasses\u003c/code\u003e and \u003ccode\u003eEnforcedStyleForModules\u003c/code\u003e, and skip autocorrection when mixed per-type styles make the result ambiguous. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.89.0 (2026-08-04)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15492\"\u003e#15492\u003c/a\u003e: Add AllCops/ProjectIndexIncludesGems for bundle-wide indexing. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15498\"\u003e#15498\u003c/a\u003e: Add \u003ccode\u003eDelegatingMethods\u003c/code\u003e option to \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e to register custom \u003ccode\u003edelegate\u003c/code\u003e-shaped methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15042\"\u003e#15042\u003c/a\u003e: Add \u003ccode\u003eDisallowedCops\u003c/code\u003e configuration option to \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15441\"\u003e#15441\u003c/a\u003e: Add new \u003ccode\u003eAllowYARDCommentBlockSeparator\u003c/code\u003e option to \u003ccode\u003eLayout/LeadingCommentSpace\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15466\"\u003e#15466\u003c/a\u003e: Add new \u003ccode\u003eLint/DeprecatedReference\u003c/code\u003e cop to detect references to methods and constants documented as \u003ccode\u003e@deprecated\u003c/code\u003e, powered by the project index. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15491\"\u003e#15491\u003c/a\u003e: Add new \u003ccode\u003eLint/NameTypo\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15468\"\u003e#15468\u003c/a\u003e: Add new \u003ccode\u003eLint/UnusedPrivateMethod\u003c/code\u003e cop for project-wide dead-code detection via the project index (disabled by default). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14598\"\u003e#14598\u003c/a\u003e: Make \u003ccode\u003eStyle/DisableCopsWithinSourceCodeDirective\u003c/code\u003e impossible to disable via directive comments when explicitly enabled with \u003ccode\u003eEnabled: true\u003c/code\u003e. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15511\"\u003e#15511\u003c/a\u003e: Support \u003ccode\u003etextDocument/codeAction\u003c/code\u003e requests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/8565\"\u003e#8565\u003c/a\u003e: Support \u003ccode\u003eNewCops\u003c/code\u003e in department configuration to enable pending cops per department, including cops added up to a specific version (e.g. \u003ccode\u003eStyle: NewCops: '1.19'\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9373\"\u003e#9373\u003c/a\u003e: Support autocorrection for tab indentation in \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e and \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e. ([\u003ca href=\"https://github.com/ioquatix\"\u003e\u003ccode\u003e@​ioquatix\u003c/code\u003e\u003c/a\u003e][], [\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15257\"\u003e#15257\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when explicit extra keyword arguments are passed (e.g. \u003ccode\u003edef m(x:); to_enum(:m, x: x, y: 1); end\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15452\"\u003e#15452\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when using \u003ccode\u003eEnforcedHashRocketStyle: table\u003c/code\u003e and a hash key spans multiple lines. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12269\"\u003e#12269\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/UselessAssignment\u003c/code\u003e with modifier conditions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13786\"\u003e#13786\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/Void\u003c/code\u003e with setter methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15507\"\u003e#15507\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/VariableNumber\u003c/code\u003e when using an empty symbol hash key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15284\"\u003e#15284\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MutableConstant\u003c/code\u003e with \u003ccode\u003eData.define\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15483\"\u003e#15483\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MissingRespondToMissing\u003c/code\u003e when \u003ccode\u003erespond_to_missing?\u003c/code\u003e is defined in a reopening of the class and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15500\"\u003e#15500\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when a literal condition has an empty branch. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15499\"\u003e#15499\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/UselessRuby2Keywords\u003c/code\u003e when \u003ccode\u003eruby2_keywords\u003c/code\u003e is used with a symbol but no method definition is found. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15453\"\u003e#15453\u003c/a\u003e: Fix an error for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e when a method contains a heredoc and \u003ccode\u003e__ENCODING__\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15442\"\u003e#15442\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e cop when the block-based check calls \u003ccode\u003emember?\u003c/code\u003e/\u003ccode\u003einclude?\u003c/code\u003e without an explicit receiver. ([\u003ca href=\"https://github.com/dduugg\"\u003e\u003ccode\u003e@​dduugg\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15434\"\u003e#15434\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/NegativeArrayIndex\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15469\"\u003e#15469\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when a format string uses a positional argument number beyond the 64-bit range. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15454\"\u003e#15454\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e when the argument for a positional variable width is missing. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15298\"\u003e#15298\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLint/LiteralInInterpolation\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15515\"\u003e#15515\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when using safe navigation \u003ccode\u003enone?\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15364\"\u003e#15364\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/MultipleComparison\u003c/code\u003e that dropped an allowed method comparison appearing between the compared values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15367\"\u003e#15367\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/RedundantFileExtensionInRequire\u003c/code\u003e that produced invalid Ruby when a backslash preceded the \u003ccode\u003e.rb\u003c/code\u003e extension. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/12017\"\u003e#12017\u003c/a\u003e: Fix \u003ccode\u003eLint/Void\u003c/code\u003e to no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14797\"\u003e#14797\u003c/a\u003e: Avoid cache writes during server checks. ([\u003ca href=\"https://github.com/sjh9714\"\u003e\u003ccode\u003e@​sjh9714\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15484\"\u003e#15484\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/InheritException\u003c/code\u003e when \u003ccode\u003eException\u003c/code\u003e is inherited indirectly through a project class (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15357\"\u003e#15357\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/AmbiguousAssignment\u003c/code\u003e when using attribute or index assignment. ([\u003ca href=\"https://github.com/sngsmz\"\u003e\u003ccode\u003e@​sngsmz\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when class body elements are wrapped in \u003ccode\u003ebegin\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9570\"\u003e#9570\u003c/a\u003e: Fix false negatives in \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when using \u003ccode\u003eprivate_class_method\u003c/code\u003e or \u003ccode\u003epublic_class_method\u003c/code\u003e def modifiers. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15438\"\u003e#15438\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/ArrayIntersect\u003c/code\u003e when the receiver of \u003ccode\u003einclude?\u003c/code\u003e in a block is not an array literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15445\"\u003e#15445\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e when using the Prism parser engine and an \u003ccode\u003eelsif\u003c/code\u003e without \u003ccode\u003ethen\u003c/code\u003e follows a branch using \u003ccode\u003ethen\u003c/code\u003e with a body on the same line. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15058\"\u003e#15058\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e for anonymous classes (\u003ccode\u003eClass.new\u003c/code\u003e) passed as arguments to the same named-receiver method call (e.g. \u003ccode\u003eT.cast\u003c/code\u003e). Each \u003ccode\u003eClass.new\u003c/code\u003e block is an independent class, so methods defined in different blocks should not be treated as duplicates. ([\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15486\"\u003e#15486\u003c/a\u003e: Fix false negatives for \u003ccode\u003eStyle/RedundantConstantBase\u003c/code\u003e inside namespaces when the constant provably resolves identically without \u003ccode\u003e::\u003c/code\u003e (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15505\"\u003e#15505\u003c/a\u003e: Fix incompatible autocorrect between \u003ccode\u003eStyle/Lambda\u003c/code\u003e and \u003ccode\u003eStyle/SymbolProc\u003c/code\u003e producing a syntax error like \u003ccode\u003e-\u0026gt;(x)(\u0026amp;:method)\u003c/code\u003e when both cops run on \u003ccode\u003elambda { |x| x.method }\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15481\"\u003e#15481\u003c/a\u003e: Fix cross-file offenses depending on which files are inspected: the project index now always covers the whole project (\u003ccode\u003eUseProjectIndex\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13794\"\u003e#13794\u003c/a\u003e: Fix \u003ccode\u003eLayout/LineLength\u003c/code\u003e autocorrection for endless methods with block bodies. ([\u003ca href=\"https://github.com/hervetatche\"\u003e\u003ccode\u003e@​hervetatche\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15462\"\u003e#15462\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e when a built-in constant name is assigned and \u003ccode\u003eUseProjectIndex\u003c/code\u003e is enabled. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65854e6bbfe45f2f0c7f1cf33ca922a0ce82fb55\"\u003e\u003ccode\u003e65854e6\u003c/code\u003e\u003c/a\u003e Cut 1.89\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f5dbd7424f63a53e48928871d47d32211c4ef446\"\u003e\u003ccode\u003ef5dbd74\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2f96cd7afbd3a337dfdfa8371a7740c936d1043b\"\u003e\u003ccode\u003e2f96cd7\u003c/code\u003e\u003c/a\u003e Add new Lint/NameTypo cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9a91e2bfdff2a58401aaba60e373871bd513a1e0\"\u003e\u003ccode\u003e9a91e2b\u003c/code\u003e\u003c/a\u003e Promote the resolved-ancestry guard to ProjectIndexHelp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e917b65dd3b4fbbcd97a59e7ba2e5773bf037ca0\"\u003e\u003ccode\u003ee917b65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15522\"\u003e#15522\u003c/a\u003e from joklek-vinted/fix/mise-toml-with-single-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/619e3d2b4bfa9b4db5d636842b594dbc6033100b\"\u003e\u003ccode\u003e619e3d2\u003c/code\u003e\u003c/a\u003e Fix Ruby version detection from mise.toml with single quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7999d1adf6d51e5d08015f4f15b4ca8ccb0955c8\"\u003e\u003ccode\u003e7999d1a\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15501\"\u003e#15501\u003c/a\u003e] Improve \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e performance on adjacen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/63d936157714d38cbcf09058d1a8212e8f72427f\"\u003e\u003ccode\u003e63d9361\u003c/code\u003e\u003c/a\u003e Advertise executeCommandProvider in the language server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/893a02f681e0ad75f555001f45c9ef42d52ad6c1\"\u003e\u003ccode\u003e893a02f\u003c/code\u003e\u003c/a\u003e Cache the LSP project index across requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3b9755f3dc50d81b28ed00fc343872ca218eb2de\"\u003e\u003ccode\u003e3b9755f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15516\"\u003e#15516\u003c/a\u003e from koic/fix_a_flaky_line_length_spec_timeout_on_j...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.88.2...v1.89.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/Automattic/Gravatar-SDK-Android/pull/715","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Automattic%2FGravatar-SDK-Android/issues/715","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/715/packages"}}]}