{"id":1081,"name":"solid_queue","ecosystem":"rubygems","repository_url":"https://github.com/rails/solid_queue","issues_count":19835,"created_at":"2025-06-06T15:01:40.216Z","updated_at":"2025-06-06T15:01:40.216Z","purl":"pkg:gem/solid_queue","metadata":{"id":8130464,"name":"solid_queue","ecosystem":"rubygems","description":"Database-backed Active Job backend.","homepage":"https://github.com/rails/solid_queue","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rails/solid_queue","keywords_array":[],"namespace":null,"versions_count":31,"first_release_published_at":"2023-08-22T18:04:52.967Z","latest_release_published_at":"2025-04-20T18:52:00.779Z","latest_release_number":"1.1.5","last_synced_at":"2025-06-02T05:13:11.742Z","created_at":"2023-08-22T18:13:40.036Z","updated_at":"2025-06-02T05:13:11.743Z","registry_url":"https://rubygems.org/gems/solid_queue","install_command":"gem install solid_queue -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/solid_queue/","metadata":{"funding":null},"repo_metadata":{"id":213174434,"uuid":"588508856","full_name":"rails/solid_queue","owner":"rails","description":"Database-backed Active Job backend","archived":false,"fork":false,"pushed_at":"2024-09-06T07:44:31.000Z","size":615,"stargazers_count":1738,"open_issues_count":36,"forks_count":95,"subscribers_count":32,"default_branch":"main","last_synced_at":"2024-09-07T02:49:55.213Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-13T09:41:21.000Z","updated_at":"2024-09-06T17:15:34.000Z","dependencies_parsed_at":"2023-12-19T04:40:24.065Z","dependency_job_id":"ca86d450-f3fb-4220-b4f5-32ccc861d951","html_url":"https://github.com/rails/solid_queue","commit_stats":null,"previous_names":["basecamp/solid_queue"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217919387,"owners_count":16250884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v0.6.0","sha":"9992f7672a49c0b72b7e8117cc7c74e5183207fa","kind":"tag","published_at":"2024-08-21T16:07:14.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.6.0","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"978a1fdf6400e9fae31e8a685814b6187123568f","kind":"tag","published_at":"2024-08-14T16:50:07.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.5.0","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.5.0/manifests"},{"name":"v0.4.1","sha":"b7d4e1c03a405498630a0f68b3a8cf34db4384d8","kind":"tag","published_at":"2024-08-05T17:50:24.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.4.1","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"c3d86eacbdd78b152c65a60526e56eab9b5b9f0b","kind":"tag","published_at":"2024-08-05T11:13:19.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.4.0","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.4.0/manifests"},{"name":"v0.3.4","sha":"ac477d7b45f530026f36456ee114f223d86fd4ef","kind":"tag","published_at":"2024-07-19T11:03:35.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.3.4","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"6d10767f6f6f1678a026961221c2c72879dc7402","kind":"tag","published_at":"2024-06-11T11:08:40.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.3.3","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"afb5fe23b283c60cfe70b85558726ba0187f5609","kind":"tag","published_at":"2024-05-30T20:48:41.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.3.2","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"74627bdfabc3bcdade2bf60afce1c4fd41683b86","kind":"tag","published_at":"2024-05-20T20:52:33.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.3.1","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"50b29d4dd69a8b89db97ac55ee66609147bc47d3","kind":"tag","published_at":"2024-03-20T20:12:18.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.3.0","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"bf6bcf2b63a4f82164dd121a312c6eb3b576fda7","kind":"tag","published_at":"2024-03-05T19:02:00.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.2.1","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.2.1/manifests"},{"name":"v0.2.2","sha":"a3a845f557c1c6a76f6fc1b2150ab3527577bf8d","kind":"tag","published_at":"2024-03-05T18:57:04.000Z","download_url":"https://codeload.github.com/rails/solid_queue/tar.gz/v0.2.2","html_url":"https://github.com/rails/solid_queue/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_queue/tags/v0.2.2/manifests"}]},"repo_metadata_updated_at":"2024-09-07T03:40:37.154Z","dependent_packages_count":6,"downloads":4159388,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":99.43306872768628,"dependent_repos_count":48.84885451263742,"dependent_packages_count":15.618740451536242,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":54.63355456395331},"purl":"pkg:gem/solid_queue","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/solid_queue","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/solid_queue","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/solid_queue/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_queue/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_queue/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_queue/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_queue/related_packages","maintainers":[{"uuid":"207","login":"tenderlove","name":null,"email":null,"url":null,"packages_count":183,"html_url":"https://rubygems.org/profiles/tenderlove","role":null,"created_at":"2024-05-20T21:07:37.193Z","updated_at":"2024-05-20T21:07:37.193Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/tenderlove/packages"},{"uuid":"46413","login":"byroot","name":null,"email":null,"url":null,"packages_count":104,"html_url":"https://rubygems.org/profiles/byroot","role":null,"created_at":"2024-05-20T21:07:36.244Z","updated_at":"2024-05-20T21:07:36.244Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/byroot/packages"},{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":95,"html_url":"https://rubygems.org/profiles/webster132","role":null,"created_at":"2024-05-20T21:07:36.813Z","updated_at":"2024-05-20T21:07:36.813Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/webster132/packages"},{"uuid":"32977","login":"fxn","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/fxn","role":null,"created_at":"2024-05-20T21:07:37.023Z","updated_at":"2024-05-20T21:07:37.023Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/fxn/packages"},{"uuid":"429","login":"cantoniodasilva","name":null,"email":null,"url":null,"packages_count":67,"html_url":"https://rubygems.org/profiles/cantoniodasilva","role":null,"created_at":"2024-05-20T21:07:37.383Z","updated_at":"2024-05-20T21:07:37.383Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/cantoniodasilva/packages"},{"uuid":"47349","login":"rafaelfranca","name":null,"email":null,"url":null,"packages_count":120,"html_url":"https://rubygems.org/profiles/rafaelfranca","role":null,"created_at":"2024-05-20T21:07:37.549Z","updated_at":"2024-05-20T21:07:37.549Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rafaelfranca/packages"},{"uuid":"337","login":"jeremydaer","name":null,"email":null,"url":null,"packages_count":81,"html_url":"https://rubygems.org/profiles/jeremydaer","role":null,"created_at":"2024-05-20T21:07:36.552Z","updated_at":"2024-05-20T21:07:36.552Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jeremydaer/packages"},{"uuid":"96878","login":"eileencodes","name":null,"email":null,"url":null,"packages_count":51,"html_url":"https://rubygems.org/profiles/eileencodes","role":null,"created_at":"2024-05-20T21:07:37.744Z","updated_at":"2024-05-20T21:07:37.744Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/eileencodes/packages"},{"uuid":"152287","login":"rosa","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://rubygems.org/profiles/rosa","role":null,"created_at":"2023-08-22T19:23:08.238Z","updated_at":"2023-08-22T19:23:08.238Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rosa/packages"},{"uuid":"179094","login":"basecamp","name":null,"email":null,"url":null,"packages_count":11,"html_url":"https://rubygems.org/profiles/basecamp","role":null,"created_at":"2023-08-22T19:23:07.875Z","updated_at":"2023-08-22T19:23:07.875Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/basecamp/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198088,"maintainers_count":66420,"namespaces_count":0,"keywords_count":17792,"github":"rubygems","metadata":{"funded_packages_count":7047},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-06-04T06:04:17.160Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},"unique_repositories_count":10631,"unique_repositories_count_past_30_days":3,"recent_issues":[{"uuid":"4527155212","node_id":"PR_kwDOOlMiT87fju4r","number":289,"state":"open","title":"chore(deps): Bump solid_queue from 1.3.1 to 1.4.0 in /db-litestream","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T20:09:06.000Z","updated_at":"2026-05-27T01:15:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":"/db-litestream","ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/takotakot/rails8-google-cloud-example/pull/289","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/takotakot%2Frails8-google-cloud-example/issues/289","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/289/packages"},{"uuid":"4511107227","node_id":"PR_kwDOSmU5b87ewVTO","number":7,"state":"closed","title":"build(deps): Bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-24T10:05:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T09:31:31.000Z","updated_at":"2026-05-24T10:05:51.000Z","time_to_close":2058,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/domafordarwin/ReadingPRO_UP/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/domafordarwin%2FReadingPRO_UP/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"4505936427","node_id":"PR_kwDOSlUmNM7egvz6","number":6,"state":"closed","title":"chore(deps): bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T00:11:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T22:35:50.000Z","updated_at":"2026-05-23T00:11:20.000Z","time_to_close":5728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.2.1\u0026new-version=1.4.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/fonemstr/roomscope-marketing/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fonemstr%2Froomscope-marketing/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4460650460","node_id":"PR_kwDOQvuzNs7cPnHr","number":147,"state":"open","title":"chore(deps): bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T16:55:19.000Z","updated_at":"2026-05-18T20:14:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/igorcb/cronos-poc/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcb%2Fcronos-poc/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"},{"uuid":"4425702539","node_id":"PR_kwDONcSrmM7afx2B","number":155,"state":"closed","title":"Bump the all-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-19T04:45:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T02:24:00.000Z","updated_at":"2026-05-19T04:45:00.000Z","time_to_close":613260,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"propshaft","old_version":"1.3.1","new_version":"1.3.2","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.2.0","new_version":"8.0.1","repository_url":"https://github.com/puma/puma"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.3","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"rubocop","old_version":"1.85.0","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rspec-rails","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-capybara","old_version":"2.22.1","new_version":"2.23.0","repository_url":"https://github.com/rubocop/rubocop-capybara"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"test-prof","old_version":"1.5.2","new_version":"1.6.1","repository_url":"https://github.com/test-prof/test-prof"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `7.2.0` | `8.0.1` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.3` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.2` | `5.0.4` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.85.0` | `1.86.1` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.3` | `8.0.4` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.22.1` | `2.23.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.0` |\n| [test-prof](https://github.com/test-prof/test-prof) | `1.5.2` | `1.6.1` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.2.0 to 8.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.2.0...v8.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/4e14f7eb1bdaeadd1fe2cd658c9224b231424b87\"\u003e\u003ccode\u003e4e14f7e\u003c/code\u003e\u003c/a\u003e Release 1.24.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c36e0110cecc182f39e0afa10b48f7ebd4d0f52\"\u003e\u003ccode\u003e7c36e01\u003c/code\u003e\u003c/a\u003e Fix encoding in Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/21b7ad836f04cd8254eff344905cf6a942c3cbea\"\u003e\u003ccode\u003e21b7ad8\u003c/code\u003e\u003c/a\u003e Release 1.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fbcb561385763d2a9ed71afef3163b6168e61c59\"\u003e\u003ccode\u003efbcb561\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/540\"\u003e#540\u003c/a\u003e from byroot/use-proper-parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/58d913432c80116d746668141a67c8492f2a0ec2\"\u003e\u003ccode\u003e58d9134\u003c/code\u003e\u003c/a\u003e Workaround Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/51cceccad0ed5e2caa342c9476438080e96e9974\"\u003e\u003ccode\u003e51ccecc\u003c/code\u003e\u003c/a\u003e Release 1.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/e4479c09c98013c5075371449466e0db53508454\"\u003e\u003ccode\u003ee4479c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/538\"\u003e#538\u003c/a\u003e from byroot/debug-compiler-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6d8768ec1347cb4d6f3e99302c5f060aaa15420\"\u003e\u003ccode\u003ed6d8768\u003c/code\u003e\u003c/a\u003e Fix ISeq.input_to_output to respect default external encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/dc57c2069a38710d30077d988229c4d6f7f4292d\"\u003e\u003ccode\u003edc57c20\u003c/code\u003e\u003c/a\u003e Release 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/481b9b91b5758c691af201f7dec73e54af9c0640\"\u003e\u003ccode\u003e481b9b9\u003c/code\u003e\u003c/a\u003e Avoid interning string on every call\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.2...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.85.0 to 1.86.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.86.1\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11051\"\u003e#11051\u003c/a\u003e: Fix \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e inline autocorrect dropping comments between the access modifier and the following method definition. (\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/14665\"\u003e#14665\u003c/a\u003e: Cache plugin integration in CopHelper to avoid repeated loading. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15091\"\u003e#15091\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives for anonymous classes in constant assignments and method return values. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15055\"\u003e#15055\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives with anonymous classes inside blocks (e.g. RSpec \u003ccode\u003elet\u003c/code\u003e, \u003ccode\u003edescribe\u003c/code\u003e). (\u003ca href=\"https://github.com/ShkumbinDelija\"\u003e\u003ccode\u003e@​ShkumbinDelija\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15035\"\u003e#15035\u003c/a\u003e: Exclude \u003ccode\u003eincluded_modules\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\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/15087\"\u003e#15087\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e when using interpolated string literals. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14361\"\u003e#14361\u003c/a\u003e: Fix false positive in \u003ccode\u003efile_to_include?\u003c/code\u003e when a relative \u003ccode\u003eInclude\u003c/code\u003e pattern matches a parent directory name in the absolute file path. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15090\"\u003e#15090\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when consecutive guard clauses use \u003ccode\u003eand return\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15070\"\u003e#15070\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when chained safe navigation is used in a conditional expression with \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e enabled. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15074\"\u003e#15074\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when using parentheses around an endless range in assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15048\"\u003e#15048\u003c/a\u003e: Fix issue where the url_for is missing for Cops without instance methods. (\u003ca href=\"https://github.com/Fryguy\"\u003e\u003ccode\u003e@​Fryguy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15051\"\u003e#15051\u003c/a\u003e: Fix \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e handling of beginless ranges. (\u003ca href=\"https://github.com/oggy\"\u003e\u003ccode\u003e@​oggy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14980\"\u003e#14980\u003c/a\u003e: Fix \u003ccode\u003eLint/Syntax\u003c/code\u003e zero-length diagnostic range for syntax errors at EOF. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15084\"\u003e#15084\u003c/a\u003e: Handle heredocs with methods calls correctly when fixing guard clauses. (\u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11398\"\u003e#11398\u003c/a\u003e: Fix incorrect \u003ccode\u003eInclude\u003c/code\u003e path adjustment when local config overrides an inherited \u003ccode\u003eInclude\u003c/code\u003e. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15092\"\u003e#15092\u003c/a\u003e: Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\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/15059\"\u003e#15059\u003c/a\u003e: Fix an error in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when \u003ccode\u003eSplitStrings\u003c/code\u003e option is enabled and \u003ccode\u003e__FILE__\u003c/code\u003e is used. (\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/5876\"\u003e#5876\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedMethodArgument\u003c/code\u003e false positive when block argument is used via \u003ccode\u003eyield\u003c/code\u003e. (\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/15093\"\u003e#15093\u003c/a\u003e: Return tool execution errors instead of protocol errors in MCP server. (\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/issues/15005\"\u003e#15005\u003c/a\u003e: Make \u003ccode\u003eStyle/OneClassPerFile\u003c/code\u003e exclude \u003ccode\u003espec/**/*\u003c/code\u003e and \u003ccode\u003etest/**/*\u003c/code\u003e by default. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15081\"\u003e#15081\u003c/a\u003e: Relax \u003ccode\u003eparallel\u003c/code\u003e dependency to \u003ccode\u003e\u0026gt;= 1.10\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/15063\"\u003e#15063\u003c/a\u003e: Disable \u003ccode\u003eStyle/RedundantStructKeywordInit\u003c/code\u003e cop by default. (\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 v1.86.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/15000\"\u003e#15000\u003c/a\u003e: Display ZJIT usage when running under LSP. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14961\"\u003e#14961\u003c/a\u003e: Add \u003ccode\u003eAllowedParentClasses\u003c/code\u003e option to \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadkhan\"\u003e\u003ccode\u003e@​hammadkhan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14977\"\u003e#14977\u003c/a\u003e: Support \u003ccode\u003eAllowedReceivers\u003c/code\u003e for \u003ccode\u003eStyle/HashLookupMethod\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\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.86.1 (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11051\"\u003e#11051\u003c/a\u003e: Fix \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e inline autocorrect dropping comments between the access modifier and the following method definition. ([\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/14665\"\u003e#14665\u003c/a\u003e: Cache plugin integration in CopHelper to avoid repeated loading. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15091\"\u003e#15091\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives for anonymous classes in constant assignments and method return values. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15055\"\u003e#15055\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives with anonymous classes inside blocks (e.g. RSpec \u003ccode\u003elet\u003c/code\u003e, \u003ccode\u003edescribe\u003c/code\u003e). ([\u003ca href=\"https://github.com/ShkumbinDelija\"\u003e\u003ccode\u003e@​ShkumbinDelija\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15035\"\u003e#15035\u003c/a\u003e: Exclude \u003ccode\u003eincluded_modules\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\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/15087\"\u003e#15087\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e when using interpolated string literals. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14361\"\u003e#14361\u003c/a\u003e: Fix false positive in \u003ccode\u003efile_to_include?\u003c/code\u003e when a relative \u003ccode\u003eInclude\u003c/code\u003e pattern matches a parent directory name in the absolute file path. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15090\"\u003e#15090\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when consecutive guard clauses use \u003ccode\u003eand return\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15070\"\u003e#15070\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when chained safe navigation is used in a conditional expression with \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e enabled. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15074\"\u003e#15074\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when using parentheses around an endless range in assignment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15048\"\u003e#15048\u003c/a\u003e: Fix issue where the url_for is missing for Cops without instance methods. ([\u003ca href=\"https://github.com/Fryguy\"\u003e\u003ccode\u003e@​Fryguy\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15051\"\u003e#15051\u003c/a\u003e: Fix \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e handling of beginless ranges. ([\u003ca href=\"https://github.com/oggy\"\u003e\u003ccode\u003e@​oggy\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14980\"\u003e#14980\u003c/a\u003e: Fix \u003ccode\u003eLint/Syntax\u003c/code\u003e zero-length diagnostic range for syntax errors at EOF. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15084\"\u003e#15084\u003c/a\u003e: Handle heredocs with methods calls correctly when fixing guard clauses. ([\u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11398\"\u003e#11398\u003c/a\u003e: Fix incorrect \u003ccode\u003eInclude\u003c/code\u003e path adjustment when local config overrides an inherited \u003ccode\u003eInclude\u003c/code\u003e. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15092\"\u003e#15092\u003c/a\u003e: Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\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/15059\"\u003e#15059\u003c/a\u003e: Fix an error in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when \u003ccode\u003eSplitStrings\u003c/code\u003e option is enabled and \u003ccode\u003e__FILE__\u003c/code\u003e is used. ([\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/5876\"\u003e#5876\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedMethodArgument\u003c/code\u003e false positive when block argument is used via \u003ccode\u003eyield\u003c/code\u003e. ([\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/15093\"\u003e#15093\u003c/a\u003e: Return tool execution errors instead of protocol errors in MCP server. ([\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/issues/15005\"\u003e#15005\u003c/a\u003e: Make \u003ccode\u003eStyle/OneClassPerFile\u003c/code\u003e exclude \u003ccode\u003espec/**/*\u003c/code\u003e and \u003ccode\u003etest/**/*\u003c/code\u003e by default. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15081\"\u003e#15081\u003c/a\u003e: Relax \u003ccode\u003eparallel\u003c/code\u003e dependency to \u003ccode\u003e\u0026gt;= 1.10\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/15063\"\u003e#15063\u003c/a\u003e: Disable \u003ccode\u003eStyle/RedundantStructKeywordInit\u003c/code\u003e cop by default. ([\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\u003e1.86.0 (2026-03-23)\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/15000\"\u003e#15000\u003c/a\u003e: Display ZJIT usage when running under LSP. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14961\"\u003e#14961\u003c/a\u003e: Add \u003ccode\u003eAllowedParentClasses\u003c/code\u003e option to \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadkhan\"\u003e\u003ccode\u003e@​hammadkhan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14977\"\u003e#14977\u003c/a\u003e: Support \u003ccode\u003eAllowedReceivers\u003c/code\u003e for \u003ccode\u003eStyle/HashLookupMethod\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\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15015\"\u003e#15015\u003c/a\u003e: Fix \u003ccode\u003eStyle/ConcatArrayLiterals\u003c/code\u003e autocorrect deleting code for percent literals with interpolation. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14897\"\u003e#14897\u003c/a\u003e: Detect constant reassignment after class/module definition in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11829\"\u003e#11829\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when duplicate methods are defined in anonymous classes and modules not assigned to a constant. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14988\"\u003e#14988\u003c/a\u003e: Fix false negative in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when redundant parentheses around range literals in block body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14916\"\u003e#14916\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when method chain is inside a hash pair value passed to a multiline chained method call. ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15010\"\u003e#15010\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when modules blocks are passed as method arguments. ([\u003ca href=\"https://github.com/5hun-s\"\u003e\u003ccode\u003e@​5hun-s\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15028\"\u003e#15028\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when the same method is defined in different anonymous module blocks passed to a no-receiver call (e.g. \u003ccode\u003estub_const\u003c/code\u003e). ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15021\"\u003e#15021\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when using a guard clause followed by a multi-line guard clause with \u003ccode\u003eraise\u003c/code\u003e, \u003ccode\u003efail\u003c/code\u003e, \u003ccode\u003ereturn\u003c/code\u003e, \u003ccode\u003ebreak\u003c/code\u003e, or \u003ccode\u003enext\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/15001\"\u003e#15001\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when setting \u003ccode\u003eInspectBlocks: true\u003c/code\u003e and using \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e in the block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14997\"\u003e#14997\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/FileOpen\u003c/code\u003e when assigning \u003ccode\u003eFile.open\u003c/code\u003e to an instance variable, class variable, global variable, or constant. ([\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!-- 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/af8026643d436c4570bf7063a7475e2cad95fd49\"\u003e\u003ccode\u003eaf80266\u003c/code\u003e\u003c/a\u003e Cut 1.86.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/eb504cec166130d8459046fbbfd05ba795206a5c\"\u003e\u003ccode\u003eeb504ce\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9c8fe2c1baab6f1cadd894507c8790677bd8092c\"\u003e\u003ccode\u003e9c8fe2c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15085\"\u003e#15085\u003c/a\u003e from G-Rath/fix-style-guard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11d796a5faaf0802f5e02c7aaf5b9df17365763e\"\u003e\u003ccode\u003e11d796a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15093\"\u003e#15093\u003c/a\u003e from koic/fix_return_tool_execution_errors_instead_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4450067dda2f262e4ded6f76de28d28632d3315d\"\u003e\u003ccode\u003e4450067\u003c/code\u003e\u003c/a\u003e Return tool execution errors instead of protocol errors in MCP server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ff641800ba81e44fa07a54cb12eab59b1c670984\"\u003e\u003ccode\u003eff64180\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15092\"\u003e#15092\u003c/a\u003e from viralpraxis/fix-an-error-for-layout-end-alignm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11e04c0ad04ff164b0eebcdb4c5ac61c58870788\"\u003e\u003ccode\u003e11e04c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15091\"\u003e#15091\u003c/a\u003e from eugeneius/duplicate_methods_anonymous_classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b8deea4173ab30e1bf8171b168412ae808a27dd7\"\u003e\u003ccode\u003eb8deea4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15090\"\u003e#15090\u003c/a\u003e from eugeneius/guard_clause_and_return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e1300200a6368d5569c8fff97321642d3292eff9\"\u003e\u003ccode\u003ee130020\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/480859411db057a120ef3829a54641f0626917ce\"\u003e\u003ccode\u003e4808594\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eDuplicateMethods\u003c/code\u003e for anonymous classes in constant assignments and methods\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.85.0...v1.86.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-rails` from 8.0.3 to 8.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rspec/rspec-rails/blob/main/Changelog.md\"\u003erspec-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e8.0.4 / 2026-03-10\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/compare/v8.0.3...v8.0.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eReleased to relax version constraint for rspec to allow 4.0.0.beta1.\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/rspec/rspec-rails/commit/222fb5518a7c9c1b9a0a06d950c2dfa2d3fa69e9\"\u003e\u003ccode\u003e222fb55\u003c/code\u003e\u003c/a\u003e Drop compatibility check rails version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/commit/769a3c46204572828e324e537762fc657a482d59\"\u003e\u003ccode\u003e769a3c4\u003c/code\u003e\u003c/a\u003e v8.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/commit/0549e5921d9c6439ba40449a050251bb224b718a\"\u003e\u003ccode\u003e0549e59\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rspec/rspec-rails/issues/2895\"\u003e#2895\u003c/a\u003e from rspec/add-rspec-4-ci-check\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec-rails/compare/v8.0.3...v8.0.4\"\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.22.1 to 2.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/releases\"\u003erubocop-capybara's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Capybara v2.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump RuboCop requirement to +1.81. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new \u003ccode\u003eCapybara/RSpec/HaveContent\u003c/code\u003e cop. (\u003ca href=\"https://github.com/nzlaura\"\u003e\u003ccode\u003e@​nzlaura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove the department associated with \u003ccode\u003eCapybara::RSpecMatchers\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/*\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/CurrentPathExpectation\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/CurrentPathExpectation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/SpecificMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/SpecificMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcherAfterVisit\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcherAfterVisit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/VisibilityMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/VisibilityMatcher\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and \u003ccode\u003eCapybara/RSpec/MatchStyle\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when using logical operators with \u003ccode\u003eall('...')[0]\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e with \u003ccode\u003ematch: :first\u003c/code\u003e uses a receiver and mark autocorrection as unsafe. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type. (\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\u003e2.23.0 (2026-04-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump RuboCop requirement to +1.81. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new \u003ccode\u003eCapybara/RSpec/HaveContent\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/nzlaura\"\u003e\u003ccode\u003e@​nzlaura\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eMove the department associated with \u003ccode\u003eCapybara::RSpecMatchers\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/*\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/CurrentPathExpectation\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/CurrentPathExpectation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/SpecificMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/SpecificMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcherAfterVisit\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcherAfterVisit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/VisibilityMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/VisibilityMatcher\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and \u003ccode\u003eCapybara/RSpec/MatchStyle\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when using logical operators with \u003ccode\u003eall('...')[0]\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e with \u003ccode\u003ematch: :first\u003c/code\u003e uses a receiver and mark autocorrection as unsafe. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type. ([\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/2aa369658989df103c598c7e5267d40d59c4a156\"\u003e\u003ccode\u003e2aa3696\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/170\"\u003e#170\u003c/a\u003e from rubocop/v2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/d6ffe96aad28cafeea0e171ba0feb74d93707d12\"\u003e\u003ccode\u003ed6ffe96\u003c/code\u003e\u003c/a\u003e v2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/da0500dbda516ba0f39e9a3e163c6c8f68af45cf\"\u003e\u003ccode\u003eda0500d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/168\"\u003e#168\u003c/a\u003e from rubocop/fix/167-find-all-first-receiver\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/d16b170bca9b543590a652ecb0b9f3c94042475c\"\u003e\u003ccode\u003ed16b170\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/965c79051fc804aff2ae93454db55f708f0d6f04\"\u003e\u003ccode\u003e965c790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/166\"\u003e#166\u003c/a\u003e from rubocop/ci-test-rspec-4-on-its-main-branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/3a3e959aa13614c4289f4c99cacb25c55145f00d\"\u003e\u003ccode\u003e3a3e959\u003c/code\u003e\u003c/a\u003e CI: Test RSpec 4 prerelease on rspec main branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ae01cbe6a23a5b1dd37a377a6ad3651bc0dcd57f\"\u003e\u003ccode\u003eae01cbe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/164\"\u003e#164\u003c/a\u003e from rubocop/haveselector\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/44490b721b9ec0a25d6d4ec148393792c83f7d1f\"\u003e\u003ccode\u003e44490b7\u003c/code\u003e\u003c/a\u003e Fix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/e5adb535d79f3eb77cd58faced88dfa4eb801348\"\u003e\u003ccode\u003ee5adb53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/155\"\u003e#155\u003c/a\u003e from rubocop/move-rspec-dept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/f172ed9ff04d09d6594b04a29caa9fb4fea73d4b\"\u003e\u003ccode\u003ef172ed9\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and `Capybara/RSpec/M...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-capybara/compare/v2.22.1...v2.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.34.3 to 2.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/aa320da089131dd1148148a9be5ff2863d282473\"\u003e\u003ccode\u003eaa320da\u003c/code\u003e\u003c/a\u003e Cut 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/co...\n\n_Description has been truncated_","html_url":"https://github.com/dominicmacaulay/my_money/pull/155","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominicmacaulay%2Fmy_money/issues/155","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/155/packages"},{"uuid":"4347941699","node_id":"PR_kwDOPpK1p87Wk86F","number":100,"state":"closed","title":"Bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T21:06:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T04:43:10.000Z","updated_at":"2026-06-18T21:06:14.000Z","time_to_close":4378976,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/dedemenezes/riff-inertia/pull/100","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedemenezes%2Friff-inertia/issues/100","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/100/packages"},{"uuid":"4333669778","node_id":"PR_kwDORMLMsM7V2mWs","number":20,"state":"open","title":"Bump solid_queue from 1.3.1 to 1.4.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-04-27T06:48:30.000Z","updated_at":"2026-05-06T16:01:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/chrisbaptiste83/libra_arcana/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisbaptiste83%2Flibra_arcana/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"4295505333","node_id":"PR_kwDONimnHc7T8A8b","number":28,"state":"closed","title":"⬆️ Bump solid_queue from 1.1.0 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-24T23:50:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T12:05:57.000Z","updated_at":"2026-04-24T23:50:50.000Z","time_to_close":387884,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"solid_queue","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.1.0 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.1.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.1.0\u0026new-version=1.4.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/gabrielgatti7/Todo-list-Rails/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielgatti7%2FTodo-list-Rails/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"},{"uuid":"4292761789","node_id":"PR_kwDOQwSPX87TzKvl","number":303,"state":"closed","title":"chore(deps): bump the ruby-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T02:37:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T02:36:47.000Z","updated_at":"2026-04-27T02:37:43.000Z","time_to_close":604855,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ruby-dependencies","update_count":5,"packages":[{"name":"propshaft","old_version":"1.3.1","new_version":"1.3.2","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.2.0","new_version":"8.0.0","repository_url":"https://github.com/puma/puma"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.19","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `7.2.0` | `8.0.0` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.19` | `0.1.20` |\n\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.2.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7d5dca1a561a95c2a6b8742b52c81c73cd2b95ca\"\u003e\u003ccode\u003e7d5dca1\u003c/code\u003e\u003c/a\u003e Update SECURITY.md, native Github vuln reports [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/66e6a32de52d9beed43e1c598bda360f906ccbef\"\u003e\u003ccode\u003e66e6a32\u003c/code\u003e\u003c/a\u003e Minor correction to defaults documented in dsl.rb (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/3788eca453a64ffb05a67115d3e2a276bbaf21a3\"\u003e\u003ccode\u003e3788eca\u003c/code\u003e\u003c/a\u003e ci: limit rack-conform to main pushes and scope ragel PR runs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3908\"\u003e#3908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/57b7799201adf43cdf508f90c57b95e23f49bbcd\"\u003e\u003ccode\u003e57b7799\u003c/code\u003e\u003c/a\u003e ci: run turbo-rails only on latest stable Ruby and Rails (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/6685d6b8024c5480774b790808e4f0343e414fa5\"\u003e\u003ccode\u003e6685d6b\u003c/code\u003e\u003c/a\u003e ci: replace skip-duplicate jobs with concurrency and trigger filters (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3907\"\u003e#3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/2848c823dfc9838033d6ce342fee917e81aeedc1\"\u003e\u003ccode\u003e2848c82\u003c/code\u003e\u003c/a\u003e ci: run push workflows only on main and release branches (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3906\"\u003e#3906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97a37bb7c6a457f8846eb3ce307daadd4b38b4f8\"\u003e\u003ccode\u003e97a37bb\u003c/code\u003e\u003c/a\u003e Add release pre-merge checks and align Release.md [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3904\"\u003e#3904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.2.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.19 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.19...v0.1.20\"\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/sp8783/vsmobile-kgy/pull/303","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp8783%2Fvsmobile-kgy/issues/303","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/303/packages"},{"uuid":"4264089819","node_id":"PR_kwDOQSmD4s7SZ_nc","number":36,"state":"closed","title":"Bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T01:57:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T18:46:09.000Z","updated_at":"2026-05-26T01:57:54.000Z","time_to_close":3568303,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.2.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/LHB410/one-does-not-simply-walk-into-morder/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LHB410%2Fone-does-not-simply-walk-into-morder/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"},{"uuid":"4190752845","node_id":"PR_kwDORCn2Es7ParQG","number":18,"state":"closed","title":"Bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T07:41:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-02T00:58:24.000Z","updated_at":"2026-04-12T07:41:59.000Z","time_to_close":888206,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/hadrienblanc/hmeet/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadrienblanc%2Fhmeet/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"4187004042","node_id":"PR_kwDOQmNZmc7PQzob","number":69,"state":"closed","title":"Bump the ruby-dependencies group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-26T19:39:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T13:35:50.000Z","updated_at":"2026-04-26T19:39:30.000Z","time_to_close":2181818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":21,"packages":[{"name":"rails","old_version":"8.1.1","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sqlite3","old_version":"2.8.1","new_version":"2.9.2","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/puma/puma"},{"name":"importmap-rails","old_version":"2.2.2","new_version":"2.2.3","repository_url":"https://github.com/rails/importmap-rails"},{"name":"turbo-rails","old_version":"2.0.20","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"solid_queue","old_version":"1.2.4","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"bootsnap","old_version":"1.19.0","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"kamal","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"},{"name":"appsignal","old_version":"4.8.1","new_version":"4.8.4","repository_url":"https://github.com/appsignal/appsignal-ruby"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.218.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"avo","old_version":"3.28.0","new_version":"3.30.4","repository_url":"https://github.com/avo-hq/avo"},{"name":"lucide-rails","old_version":"0.7.3","new_version":"0.7.4","repository_url":"https://github.com/heyvito/lucide-rails"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"annotaterb","old_version":"4.20.0","new_version":"4.22.0","repository_url":"https://github.com/drwl/annotaterb"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.39.0","new_version":"4.41.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"webmock","old_version":"3.26.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.3","new_version":"3.6.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"crawler_detect","old_version":"1.2.9","new_version":"1.2.11","repository_url":"https://github.com/loadkpi/crawler_detect"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.1` | `8.1.3` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.8.1` | `2.9.2` |\n| [puma](https://github.com/puma/puma) | `7.1.0` | `7.2.0` |\n| [importmap-rails](https://github.com/rails/importmap-rails) | `2.2.2` | `2.2.3` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.20` | `2.0.23` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.2.4` | `1.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.19.0` | `1.23.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.9.0` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.20` |\n| [appsignal](https://github.com/appsignal/appsignal-ruby) | `4.8.1` | `4.8.4` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.218.0` |\n| [avo](https://github.com/avo-hq/avo) | `3.28.0` | `3.30.4` |\n| [lucide-rails](https://github.com/heyvito/lucide-rails) | `0.7.3` | `0.7.4` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [annotaterb](https://github.com/drwl/annotaterb) | `4.20.0` | `4.22.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.39.0` | `4.41.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.26.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.3` | `3.6.1` |\n| [crawler_detect](https://github.com/loadkpi/crawler_detect) | `1.2.9` | `1.2.11` |\n\n\nUpdates `rails` from 8.1.1 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.8.1 to 2.9.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eeeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42  sqlite3-2.9.2-aarch64-linux-gnu.gem\r\n4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d  sqlite3-2.9.2-aarch64-linux-musl.gem\r\n1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7  sqlite3-2.9.2-arm-linux-gnu.gem\r\n8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057  sqlite3-2.9.2-arm-linux-musl.gem\r\nd15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9  sqlite3-2.9.2-arm64-darwin.gem\r\nb1b10d8c45a495b1e5b6338f7baa11297522bb9809b01e7e575090edd685953e  sqlite3-2.9.2-x64-mingw-ucrt.gem\r\n066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d  sqlite3-2.9.2-x86-linux-gnu.gem\r\n6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede  sqlite3-2.9.2-x86-linux-musl.gem\r\ned691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13  sqlite3-2.9.2-x86_64-darwin.gem\r\ndce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee  sqlite3-2.9.2-x86_64-linux-gnu.gem\r\ne8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7  sqlite3-2.9.2-x86_64-linux-musl.gem\r\n86814150714b6b06a328d083f46408e7a4a83b5f0a9673ed934ee3a1cb7a73b1  sqlite3-2.9.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eSHA256 checksums:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e85535ddf1c37f116ebebe0330bbbffc2ccb55d09f69717a565f8cfb35142f136  sqlite3-2.9.1-aarch64-linux-gnu.gem\r\n646a28a655fc0298ff4266de0af89b66477a2d9ad65cebb5abad190bb64ed092  sqlite3-2.9.1-aarch64-linux-musl.gem\r\ned25696b0fb4694ca4f47287eaaa9e0d46a0a0c92990c453743d6ab6b4f51fa0  sqlite3-2.9.1-arm-linux-gnu.gem\r\n82ca90eefe50935c827ab0c8dffff5219f57b5da0c92039e3e27f7dbccc9e992  sqlite3-2.9.1-arm-linux-musl.gem\r\ne0cc5521aa03361e2da56635f3745242510b0b98c4608a3824b7e31ab2e7ffb9  sqlite3-2.9.1-arm64-darwin.gem\r\nffae7b4c712f4e29cef2a95125bb2144624e4c675fb5c19175231a20f128dfd1  sqlite3-2.9.1-x64-mingw-ucrt.gem\r\nc3517e6f0df1f3a99fb73c5b0e6f02fc93b3b6b2ca0de72cb6d3956153310603  sqlite3-2.9.1-x86-linux-gnu.gem\r\n2216ab52dbff54bbc5ea87789e02c60f1c749f7ce052cef36da542ecc9aadc25  sqlite3-2.9.1-x86-linux-musl.gem\r\n5ce2c05eed8dc7c6debd560e2c5960e36521652b9a43bc3e42bc431db600c36f  sqlite3-2.9.1-x86_64-darwin.gem\r\n1cbb644204ed143e5c96f6d59b5c571ba6f18b18a9dc5aa11c101187ff227afd  sqlite3-2.9.1-x86_64-linux-gnu.gem\r\nbbd50dd1caca78b6c069701d9009ef714461495985d4c374ea1a1def061ba67c  sqlite3-2.9.1-x86_64-linux-musl.gem\r\nf6ddc2ec850434ac14498944da9d768fe154dbcd4163fc9e173a524d95e2f887  sqlite3-2.9.1.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eStatement#named_params\u003c/code\u003e to introspect on a parameterized SQL statement. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/627\"\u003e#627\u003c/a\u003e \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/642\"\u003e#642\u003c/a\u003e \u003ca href=\"https://github.com/captn3m0\"\u003e\u003ccode\u003e@​captn3m0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSmall improvements to docstrings and comments. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/houyuanjie\"\u003e\u003ccode\u003e@​houyuanjie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/efc56aa1e407a7aa6a96caefecd2c900e1f39223\"\u003e\u003ccode\u003eefc56aa\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8635618dca7edca3a804175610d0a81381e3554b\"\u003e\u003ccode\u003e8635618\u003c/code\u003e\u003c/a\u003e doc: new automated release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7aa67360cbfc088d551a8b6d422dfb118b496614\"\u003e\u003ccode\u003e7aa6736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/690\"\u003e#690\u003c/a\u003e from sparklemotion/publish-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/05c922b4aec8ff147954dea7d8fc662cc3d8ae22\"\u003e\u003ccode\u003e05c922b\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2.rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/21a4782af583fe7d6d1dcc1f7a9e558c882a4f94\"\u003e\u003ccode\u003e21a4782\u003c/code\u003e\u003c/a\u003e dev: update test-gem-build to support a release flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a57b16884836cebaf9981887cb77e3ac8242d7ca\"\u003e\u003ccode\u003ea57b168\u003c/code\u003e\u003c/a\u003e ci: add release pipeline for publishing gems to RubyGems\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/e1c65b19bfc8cc46e2ca3b8288339aac51955293\"\u003e\u003ccode\u003ee1c65b1\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/63f6cbd4e919b43147de28c1fb67923fe68345f3\"\u003e\u003ccode\u003e63f6cbd\u003c/code\u003e\u003c/a\u003e ci: skeleton for release.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8c3c0a051390401c564a0da7e12e1cfa940d01af\"\u003e\u003ccode\u003e8c3c0a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/689\"\u003e#689\u003c/a\u003e from sparklemotion/harden-github-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/9ebda352723ac2db6929cabe66f1e148948a704d\"\u003e\u003ccode\u003e9ebda35\u003c/code\u003e\u003c/a\u003e ci: address zizmor artipacked and template-injection\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.8.1...v2.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange link to \u003ccode\u003edocs/deployment.md\u003c/code\u003e in \u003ccode\u003eREADME.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix formatting for each signal description in signals.md (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deployment and Kubernetes docs with Puma configuration tips (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3807\"\u003e#3807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename master to main (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3809\"\u003e#3809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3808\"\u003e#3808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix some minor typos in the docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGOVERNANCE.md\u003c/code\u003e, \u003ccode\u003eMAINTAINERS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Code Climate badge (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e to the maintainer list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCI\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany test suite improvements and flake fixes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3845\"\u003e#3845\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3841\"\u003e#3841\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3822\"\u003e#3822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3817\"\u003e#3817\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange link to \u003ccode\u003edocs/deployment.md\u003c/code\u003e in \u003ccode\u003eREADME.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix formatting for each signal description in signals.md (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deployment and Kubernetes docs with Puma configuration tips (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3807\"\u003e#3807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename master to main (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3809\"\u003e#3809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3808\"\u003e#3808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix some minor typos in the docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGOVERNANCE.md\u003c/code\u003e, \u003ccode\u003eMAINTAINERS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Code Climate badge (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e to the maintainer list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCI\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany test suite improvements and flake fixes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3845\"\u003e#3845\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3841\"\u003e#3841\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3822\"\u003e#3822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3817\"\u003e#3817\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/96b5aa63e0599e8adf971ceb57efa3cc5663f8a9\"\u003e\u003ccode\u003e96b5aa6\u003c/code\u003e\u003c/a\u003e v7.2.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3864\"\u003e#3864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/5d7d1ddb266d52abfd96d763a4870af2c3ce9d1a\"\u003e\u003ccode\u003e5d7d1dd\u003c/code\u003e\u003c/a\u003e Add workers :auto (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b8c4783cc1ed24300b4b940c57a5dd970db99369\"\u003e\u003ccode\u003eb8c4783\u003c/code\u003e\u003c/a\u003e ci: fix ci - remove \u003ccode\u003eappend_as_bytes\u003c/code\u003e logic, misc changes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/44a3ac43a71ea1344e739275b9f55708f9e496ee\"\u003e\u003ccode\u003e44a3ac4\u003c/code\u003e\u003c/a\u003e Fix PR label manager when maintainer comments [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/43f5d8935ea85d19e98459294114b31196276bc1\"\u003e\u003ccode\u003e43f5d89\u003c/code\u003e\u003c/a\u003e Add GOVERNANCE.md, MAINTAINERS (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/21afa66798c46212ef392085cb1825c74d107810\"\u003e\u003ccode\u003e21afa66\u003c/code\u003e\u003c/a\u003e Use Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/ec7dd61cf9c5e9ec58f356ca2e32e90602de094c\"\u003e\u003ccode\u003eec7dd61\u003c/code\u003e\u003c/a\u003e ci: Update test_http11.rb for TruffleRuby - string size (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/fa89dbe1ce8dd8f3159363f30cecaf4338583b2c\"\u003e\u003ccode\u003efa89dbe\u003c/code\u003e\u003c/a\u003e ci: add \u003ccode\u003eruby 4.0\u003c/code\u003e and \u003ccode\u003erails 8.1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/98ff11d220b53d7e5c3dc3e4246e66e75284ed7b\"\u003e\u003ccode\u003e98ff11d\u003c/code\u003e\u003c/a\u003e Fix flaky test test_horrible_queries (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/da162d7b2b87b978d8bbd6d0d1ccde69ce1735da\"\u003e\u003ccode\u003eda162d7\u003c/code\u003e\u003c/a\u003e ci: fix tests.yml (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.1.0...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importmap-rails` from 2.2.2 to 2.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/importmap-rails/releases\"\u003eimportmap-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epin_all_from\u003c/code\u003e incorrectly removing \u0026quot;js\u0026quot; substring from filenames by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/313\"\u003erails/importmap-rails#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle package names with nested paths in import maps by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/322\"\u003erails/importmap-rails#322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/6fb2bd58e3709d4996179de06aa687d6abae8a0e\"\u003e\u003ccode\u003e6fb2bd5\u003c/code\u003e\u003c/a\u003e Prepare for 2.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/682e05806a9ab3757a9841e7360fc8a9188c33f9\"\u003e\u003ccode\u003e682e058\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/322\"\u003e#322\u003c/a\u003e from rails/rmf-fix-321\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/a04dd3096ffb99f18b5b2425e9b6500006d3a0d1\"\u003e\u003ccode\u003ea04dd30\u003c/code\u003e\u003c/a\u003e Handle package names with nested paths in import maps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/9b0a9e0f5b3395f5754eb6a62e51d37a12adc0a5\"\u003e\u003ccode\u003e9b0a9e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/323\"\u003e#323\u003c/a\u003e from rails/rmf-test-ruby-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/e37bea686521343c4d67a9ed041140d54a36a4ae\"\u003e\u003ccode\u003ee37bea6\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 and Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/51c1a531327fc04ed4552bb0fd523eb43561b817\"\u003e\u003ccode\u003e51c1a53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/313\"\u003e#313\u003c/a\u003e from rails/rm-fix-282\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/3e94dfa33d1fa717880f847e4e67479a4d10a8fe\"\u003e\u003ccode\u003e3e94dfa\u003c/code\u003e\u003c/a\u003e Add some copilot prompts for this project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/7ffedcb97d72443c715979c8f8d8ec0b149056bb\"\u003e\u003ccode\u003e7ffedcb\u003c/code\u003e\u003c/a\u003e Fix pin_all_from incorrectly removing \u0026quot;js\u0026quot; substring from filenames\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 2.0.20 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.2.4 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.4...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.19.0 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.9.0 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass accessory volume through as is by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1738\"\u003ebasecamp/kamal#1738\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.0...v2.10.1\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.0...v2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet proxy run configuration in deploy YAML by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1663\"\u003ebasecamp/kamal#1663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport mount options for files and directories by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1723\"\u003ebasecamp/kamal#1723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccessory file/directory owners + permissions by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1724\"\u003ebasecamp/kamal#1724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand secret environment variables in accessory files by \u003ca href=\"https://github.com/aliismayilov\"\u003e\u003ccode\u003e@​aliismayilov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1601\"\u003ebasecamp/kamal#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd secret support for SSH \u003ccode\u003ekey_data\u003c/code\u003e by \u003ca href=\"https://github.com/jclusso\"\u003e\u003ccode\u003e@​jclusso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1620\"\u003ebasecamp/kamal#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in secrets by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1726\"\u003ebasecamp/kamal#1726\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/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.9.0...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.19 / 2026-03-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.18 / 2026-02-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn correct exit code when terminated with signal (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.25.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.17 / 2025-12-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMitigate BREACH attacks with random jitter and optional compression guard (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e17d3ee027832548832683d66d1cae77413d16cc\"\u003e\u003ccode\u003ee17d3ee\u003c/code\u003e\u003c/a\u003e Go 1.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/63c08c741e0300526cc770ab124a70d08768a638\"\u003e\u003ccode\u003e63c08c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/112\"\u003e#112\u003c/a\u003e from basecamp/go1.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/aa7d697419ee1f7654bebb217d01f50dcc670f8f\"\u003e\u003ccode\u003eaa7d697\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ego fix\u003c/code\u003e updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8d64ade8273bd056bfc3f60c8484a0e251b9f7ca\"\u003e\u003ccode\u003e8d64ade\u003c/code\u003e\u003c/a\u003e Build with Go 1.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.16...v0.1.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `appsignal` from 4.8.1 to 4.8.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/appsignal/appsignal-ruby/blob/main/CHANGELOG.md\"\u003eappsignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.8.4\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-03-20.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBundled certificates have been updated. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a52c55d969a1e8f450e5066ced2a61a468567b4d\"\u003ea52c55d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with \u003ccode\u003ehttp\u003c/code\u003e (http.rb) gem version 6.0.0 and higher. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/37a2ac926a81c53abafaf46cd8dda2376269a8ef\"\u003e37a2ac92\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-02-17.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a \u003ccode\u003edefault_tags\u003c/code\u003e configuration option. Tags set in this configuration option will be set for all transactions. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/3b9d9f4844295d3c8f94fe750509f69f579cb372\"\u003e3b9d9f48\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-02-05.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLog where \u003ccode\u003eAppsignal.configure\u003c/code\u003e is called. When a warning is emitted about \u003ccode\u003eAppsignal.configure\u003c/code\u003e being called from an application where \u003ccode\u003econfig/appsignal.yml\u003c/code\u003e or \u003ccode\u003econfig/appsignal.rb\u003c/code\u003e exist, log the location from which \u003ccode\u003eAppsignal.configure\u003c/code\u003e was called alongside the location of the configuration file. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a90971075370bcf1d37f568d934dd8aeb71c1223\"\u003ea9097107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003ebundle exec appsignal install\u003c/code\u003e CLI command on Ruby 4 by removing the dependency on the \u003ccode\u003eostruct\u003c/code\u003e gem, which is no longer part of the standard library. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/d3bd5198486a762353bfbd7807f4d042a85a9d3d\"\u003ed3bd5198\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/appsignal/appsignal-ruby/commit/c8e8ee7e7d8984134381b662f0403e946b82704e\"\u003e\u003ccode\u003ec8e8ee7\u003c/code\u003e\u003c/a\u003e Publish package v4.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/0aee3ef470fc3996be948fd280fb268a70f2791b\"\u003e\u003ccode\u003e0aee3ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1503\"\u003e#1503\u003c/a\u003e from appsignal/fix-http-6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/37a2ac926a81c53abafaf46cd8dda2376269a8ef\"\u003e\u003ccode\u003e37a2ac9\u003c/code\u003e\u003c/a\u003e Fix http.rb integration for version 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/427ae9fa9465923fb04d4ac1245edcd6e76c2992\"\u003e\u003ccode\u003e427ae9f\u003c/code\u003e\u003c/a\u003e Fix entry format for public changelog (\u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1501\"\u003e#1501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/5520e6328d509906037bf6d71dd03ac8e196e5d8\"\u003e\u003ccode\u003e5520e63\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1498\"\u003e#1498\u003c/a\u003e from appsignal/update-cacert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a52c55d969a1e8f450e5066ced2a61a468567b4d\"\u003e\u003ccode\u003ea52c55d\u003c/code\u003e\u003c/a\u003e Update bundled CA certificates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/2a60098fb461687bc6ee40a8628886e3a4e26d5c\"\u003e\u003ccode\u003e2a60098\u003c/code\u003e\u003c/a\u003e Publish package v4.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/f8e81ff4a6f8dfe0a598ca514965eddc1807b145\"\u003e\u003ccode\u003ef8e81ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1497\"\u003e#1497\u003c/a\u003e from appsignal/default-tags-1491\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/3b9d9f4844295d3c8f94fe750509f69f579cb372\"\u003e\u003ccode\u003e3b9d9f4\u003c/code\u003e\u003c/a\u003e Add default tags config option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/51956b9cdf79524eab592f5d9d5008d5b0f843f1\"\u003e\u003ccode\u003e51956b9\u003c/code\u003e\u003c/a\u003e Update changelog PR dispatch URL (\u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/appsignal/appsignal-ruby/compare/v4.8.1...v4.8.4\"\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.208.0 to 1.218.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.218.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Add Bucket Metrics configuration support to directory buckets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.217.1 (2026-03-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Fix \u003ccode\u003erequire_https_for_sse_cpk\u003c/code\u003e option being ignored; the HTTPS enforcement for SSE-CPK operations now correctly respects the configured value, allowing it to be disabled for local development.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.217.0 (2026-03-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details....\n\n_Description has been truncated_","html_url":"https://github.com/moguls753/scorebase/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/moguls753%2Fscorebase/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"},{"uuid":"4179937010","node_id":"PR_kwDOO-4eRc7O-sdm","number":42,"state":"closed","title":"Bump solid_queue from 1.1.5 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-11T22:14:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-31T14:56:51.000Z","updated_at":"2026-04-11T22:14:35.000Z","time_to_close":976655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.1.5","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.1.5 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.1.5...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.1.5\u0026new-version=1.4.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/TonyCookey/support-system-api/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyCookey%2Fsupport-system-api/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"},{"uuid":"4154511693","node_id":"PR_kwDOIzyogM7OHFU_","number":65,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-05T00:36:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-27T17:07:51.000Z","updated_at":"2026-04-05T00:36:36.000Z","time_to_close":718117,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.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/doncan-orozco/papyro/pull/65","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/doncan-orozco%2Fpapyro/issues/65","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/65/packages"},{"uuid":"4150132167","node_id":"PR_kwDORMhZis7N9t_D","number":15,"state":"closed","title":"chore(deps): bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-10T10:56:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-27T07:14:55.000Z","updated_at":"2026-04-10T10:56:39.000Z","time_to_close":1222902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/kdurski/ksef-tui/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdurski%2Fksef-tui/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4147175091","node_id":"PR_kwDORer8Ts7N2l8C","number":8,"state":"open","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-26T20:36:18.000Z","updated_at":"2026-04-12T02:00:26.741Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/yoelastudillo/projeto/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoelastudillo%2Fprojeto/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"4139905571","node_id":"PR_kwDORri8Y87NjOlC","number":4,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-27T21:22:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T02:15:10.000Z","updated_at":"2026-03-27T21:22:38.000Z","time_to_close":155246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/awoo452/bugs_changes/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/awoo452%2Fbugs_changes/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4138364324","node_id":"PR_kwDONXlIL87NezOx","number":45,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-02T01:16:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T20:37:06.000Z","updated_at":"2026-04-02T01:16:49.000Z","time_to_close":621581,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":7,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"bcrypt","old_version":"3.1.21","new_version":"3.1.22","repository_url":"https://github.com/bcrypt-ruby/bcrypt-ruby"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.18","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"},{"name":"pagy","old_version":"43.3.0","new_version":"43.4.3","repository_url":"https://github.com/ddnexus/pagy"},{"name":"brakeman","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [bcrypt](https://github.com/bcrypt-ruby/bcrypt-ruby) | `3.1.21` | `3.1.22` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.18` | `0.1.20` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.3.0` | `43.4.3` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.2` | `8.0.4` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 3.1.21 to 3.1.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/releases\"\u003ebcrypt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove compilation after bundle install by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/291\"\u003ebcrypt-ruby/bcrypt-ruby#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/tjschuck\"\u003e\u003ccode\u003e@​tjschuck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/293\"\u003ebcrypt-ruby/bcrypt-ruby#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix env url by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/294\"\u003ebcrypt-ruby/bcrypt-ruby#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.22 Mar 18 2026\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CVE-2026-33306] Fix integer overflow in Java extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/831ce64cb0a9502130fa93a28bfd9527a5fa45c4\"\u003e\u003ccode\u003e831ce64\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/32e687ec5f62baad01a62e4634e41d97f8432a61\"\u003e\u003ccode\u003e32e687e\u003c/code\u003e\u003c/a\u003e bump version update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/5faa2748331d3edc661c127ef2fbb3afcb6b02a4\"\u003e\u003ccode\u003e5faa274\u003c/code\u003e\u003c/a\u003e Fix integer overflow in JRuby BCrypt rounds calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/aafc0332ac1aa0d774f2c864439596436f92d18d\"\u003e\u003ccode\u003eaafc033\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/294\"\u003e#294\u003c/a\u003e from bcrypt-ruby/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01f947a66ad8c5e20d8c89d9adbc7e3bd49afb70\"\u003e\u003ccode\u003e01f947a\u003c/code\u003e\u003c/a\u003e fix env url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/92ca1d67deeb8e64dbe779396c52b177e307bc43\"\u003e\u003ccode\u003e92ca1d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/293\"\u003e#293\u003c/a\u003e from bcrypt-ruby/truffleruby-ci-alt-implementation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/4d1d95b8ec624d0cf8ed1099402a7edd2f308da2\"\u003e\u003ccode\u003e4d1d95b\u003c/code\u003e\u003c/a\u003e Add TruffleRuby in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/36a04a2278fae3b38100912ff489b86cd0984b8a\"\u003e\u003ccode\u003e36a04a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/291\"\u003e#291\u003c/a\u003e from tenderlove/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01cc68835f0bcdd7ef16de477471c112adb417da\"\u003e\u003ccode\u003e01cc688\u003c/code\u003e\u003c/a\u003e Move compilation after bundle install\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.18 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.19 / 2026-03-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e17d3ee027832548832683d66d1cae77413d16cc\"\u003e\u003ccode\u003ee17d3ee\u003c/code\u003e\u003c/a\u003e Go 1.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/63c08c741e0300526cc770ab124a70d08768a638\"\u003e\u003ccode\u003e63c08c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/112\"\u003e#112\u003c/a\u003e from basecamp/go1.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/aa7d697419ee1f7654bebb217d01f50dcc670f8f\"\u003e\u003ccode\u003eaa7d697\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ego fix\u003c/code\u003e updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8d64ade8273bd056bfc3f60c8484a0e251b9f7ca\"\u003e\u003ccode\u003e8d64ade\u003c/code\u003e\u003c/a\u003e Build with Go 1.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.18...v0.1.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.3.0 to 43.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/releases\"\u003epagy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 43.4.3\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.4.3\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"https://ddnexus.github.io/pagy/changelog\"\u003eCHANGELOG\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eVersion 43\u003c/h3\u003e\n\u003cp\u003eWe needed a leap version to unequivocally signal that it's not just a major version: it's a complete redesign of the legacy code at all levels, usage and API included.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy 43?\u003c/strong\u003e Because it's exactly one step beyond \u003cem\u003e\u0026quot;The answer to the ultimate question of life, the Universe, and everything.\u0026quot;\u003c/em\u003e 😉\u003c/p\u003e\n\u003ch4\u003eImprovements\u003c/h4\u003e\n\u003cp\u003eThis version introduces several enhancements, such as new \u003ccode\u003e:countish\u003c/code\u003e and \u003ccode\u003e:keynav_js\u003c/code\u003e paginators and improved automation and configuration processes, reducing setup requirements by 99%. The update also includes a simpler API and new interactive development tools, making it a comprehensive upgrade from previous versions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/countish\"\u003e:countish\u003c/a\u003e Paginator\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eFaster than OFFSET and supporting the full UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keynav_js\"\u003eKeynav\u003c/a\u003e Pagination\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eThe pagy-exclusive technique using the fastest \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keyset\"\u003ekeyset\u003c/a\u003e pagination alongside all frontend helpers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew interactive dev-tools\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/resources/stylesheets/#pagy-wand\"\u003ePagyWand\u003c/a\u003e to integrate the pagy CSS with your app themes.\u003c/li\u003e\n\u003cli\u003eNew \u003cstrong\u003ePagy AI\u003c/strong\u003e available right inside your own app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntelligent automation\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ddnexus.github.io/pagy/toolbox/configuration/initializer\"\u003eConfiguration\u003c/a\u003e requirements reduced by 99%.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ca href=\"https://ddnexus.github.io/pagy/resources/javascript\"\u003eJavaScript\u003c/a\u003e setup.\u003c/li\u003e\n\u003cli\u003eAutomatic \u003ca href=\"https://ddnexus.github.io/pagy/resources/i18n\"\u003eI18n\u003c/a\u003e loading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/ddnexus/pagy#examples\"\u003eSimpler API\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou solely need the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators\"\u003epagy\u003c/a\u003e method and the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/helpers\"\u003e\u003ccode\u003e@​pagy\u003c/code\u003e\u003c/a\u003e instance to paginate any collection and use any navigation tag and helper.\u003c/li\u003e\n\u003cli\u003eMethods are autoloaded only if used, and consume no memory otherwise.\u003c/li\u003e\n\u003cli\u003eMethods have narrower scopes and can be \u003ca href=\"https://ddnexus.github.io/pagy/guides/how-to#override-pagy-methods\"\u003eoverridden\u003c/a\u003e without deep knowledge.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/guides/quick-start\"\u003edocumentation\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eVery concise, straightforward, and easy to navigate and understand.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrade to 43\u003c/h3\u003e\n\u003cp\u003eSee the \u003ca href=\"https://ddnexus.github.io/pagy/guides/upgrade-guide/\"\u003eUpgrade Guide\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eVersion 43.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/blob/master/docs/CHANGELOG.md\"\u003epagy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch4\u003eVersion 43.4.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge-case for queries with multiple orderings on same column (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize deprecations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImprove stylesheets and docs\u003c/li\u003e\n\u003cli\u003eImprove JavaScript:\n\u003cul\u003e\n\u003cli\u003eAdd sync method and task\u003c/li\u003e\n\u003cli\u003eDeprecate sync_javascript\u003c/li\u003e\n\u003cli\u003eSimplify build, configuration and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix Request#resolve_page with jsonapi, limit, and missing page param (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix pagy-tailwind.css inconsistencies\u003c/li\u003e\n\u003cli\u003eImprove ts/js build process and wand help\u003c/li\u003e\n\u003cli\u003eMove the next_tag into the Pagy class\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement NumericUI module to avoid including the numeric helpers in keynav classes\u003c/li\u003e\n\u003cli\u003eImprove offset accessors and update docs\u003c/li\u003e\n\u003cli\u003eAdd basic RBS\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate assets for a few apps\u003c/li\u003e\n\u003cli\u003eFix pagy.ts /.js input_nav update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/459694048c95cccd27fb940556770b7e881c4a8b\"\u003e\u003ccode\u003e4596940\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/1a3cb7797779f8467c52a03706125327ab328eba\"\u003e\u003ccode\u003e1a3cb77\u003c/code\u003e\u003c/a\u003e Version 43.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/92d940b9b6e747d6eee56cbee3c026554c36969e\"\u003e\u003ccode\u003e92d940b\u003c/code\u003e\u003c/a\u003e 💎 Deprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/e1dcd20201742b325b5ad39181d0c6eab07bce97\"\u003e\u003ccode\u003ee1dcd20\u003c/code\u003e\u003c/a\u003e Polish docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/ce4fe212e1b02f5a5c2af4beed5d3a6ff51075b2\"\u003e\u003ccode\u003ece4fe21\u003c/code\u003e\u003c/a\u003e Move the shared options, readers and exceptions to docs templates for direct ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/36d6d60d6615b4cfd41de1ac98c7bd6b877be9f0\"\u003e\u003ccode\u003e36d6d60\u003c/code\u003e\u003c/a\u003e Improve docs icons, style and content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b715f63e0ea90785d171213114a816d8d0ac8080\"\u003e\u003ccode\u003eb715f63\u003c/code\u003e\u003c/a\u003e Simplify docs layout and content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b07582e53d71382c4dab9ce2ad4fee5c3c00fba9\"\u003e\u003ccode\u003eb07582e\u003c/code\u003e\u003c/a\u003e Docs fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/c67360c1e7eedd159322ae78a0bfffb6aa6e8c83\"\u003e\u003ccode\u003ec67360c\u003c/code\u003e\u003c/a\u003e Remove the \u0026quot;Edit this page\u0026quot; repo link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b8a23cbe5b64f317f3874fcc607de648f90d56bb\"\u003e\u003ccode\u003eb8a23cb\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.3.0...43.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.2 to 8.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd release age option for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003epolymorphic_name\u003c/code\u003e SQLi false positive (\u003ca href=\"https://github.com/FFederi\"\u003eFredrico Franco\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix logger behavior when loading config files (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2009\"\u003e#2009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle application names with module prefixes (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2011\"\u003e#2011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.0.4 - 2026-02-26\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eLoad 'date' library for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e8.0.3 - 2026-02-26\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epolymorphic_name\u003c/code\u003e SQLi false positive (Fredrico Franco)\u003c/li\u003e\n\u003cli\u003eFix logger behavior when loading config files\u003c/li\u003e\n\u003cli\u003eHandle application names with module prefixes\u003c/li\u003e\n\u003cli\u003eAdd release age option for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/2e55d45a9770ee570005400df074d18e8fdb8c3a\"\u003e\u003ccode\u003e2e55d45\u003c/code\u003e\u003c/a\u003e Bump to 8.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d6c6c9a54a9d00a04a8b9431593932260618ecd1\"\u003e\u003ccode\u003ed6c6c9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2016\"\u003e#2016\u003c/a\u003e from presidentbeef/fix-ensure-latest-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/56f9324929069b99f0c27a1e90f6c47ddc597edc\"\u003e\u003ccode\u003e56f9324\u003c/code\u003e\u003c/a\u003e Load 'date' for --ensure-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8b644a67c4057dbf0634bc9c533407fc8666f2a7\"\u003e\u003ccode\u003e8b644a6\u003c/code\u003e\u003c/a\u003e Bump to 8.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/08e0a188a9f2cce8f44ee4fbe64a9428e7551b5c\"\u003e\u003ccode\u003e08e0a18\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/a29fe448287769d6ff9953beeecc72afc8abe861\"\u003e\u003ccode\u003ea29fe44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2014\"\u003e#2014\u003c/a\u003e from FFederi/fix-polymorphic-name-false-positive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/61150cf13be684b40cc7ee096b01ff1be7e16409\"\u003e\u003ccode\u003e61150cf\u003c/code\u003e\u003c/a\u003e Fix polymorphic_name false positive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f65d077f7c0d1bf36e252de0aacd74644a333c94\"\u003e\u003ccode\u003ef65d077\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2013\"\u003e#2013\u003c/a\u003e from presidentbeef/better_logger_loading_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c5dcda51e2240b7e279f843c0ef333cc9bfb87fd\"\u003e\u003ccode\u003ec5dcda5\u003c/code\u003e\u003c/a\u003e Fix logger behavior when loading config files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c1d7ccc10f89410860a65f9e76b39deaea99e8dc\"\u003e\u003ccode\u003ec1d7ccc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2012\"\u003e#2012\u003c/a\u003e from presidentbeef/handle_application_config_better\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.2...v8.0.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/ZachGrande/music-theory/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZachGrande%2Fmusic-theory/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"},{"uuid":"4138182442","node_id":"PR_kwDONdCt3s7NeS1p","number":2539,"state":"open","title":"chore(deps): bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["Dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-25T20:05:57.000Z","updated_at":"2026-04-08T15:33:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.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/DFE-Digital/register-early-career-teachers-public/pull/2539","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFE-Digital%2Fregister-early-career-teachers-public/issues/2539","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2539/packages"},{"uuid":"4136725552","node_id":"PR_kwDORwnzts7NaLp3","number":3,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-25T22:37:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T16:23:32.000Z","updated_at":"2026-03-25T22:37:36.000Z","time_to_close":22441,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/akitaonrails/frank_investigator/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitaonrails%2Ffrank_investigator/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}],"issue_packages":[{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":"/db-litestream","pr_created_at":"2026-05-26T20:09:06.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4527155212","node_id":"PR_kwDOOlMiT87fju4r","number":289,"state":"open","title":"chore(deps): Bump solid_queue from 1.3.1 to 1.4.0 in /db-litestream","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T20:09:06.000Z","updated_at":"2026-05-27T01:15:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":"/db-litestream","ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/takotakot/rails8-google-cloud-example/pull/289","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/takotakot%2Frails8-google-cloud-example/issues/289","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/289/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-24T09:31:31.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4511107227","node_id":"PR_kwDOSmU5b87ewVTO","number":7,"state":"closed","title":"build(deps): Bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-24T10:05:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T09:31:31.000Z","updated_at":"2026-05-24T10:05:51.000Z","time_to_close":2058,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/domafordarwin/ReadingPRO_UP/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/domafordarwin%2FReadingPRO_UP/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"1.2.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-22T22:35:50.000Z","version_change":"1.2.1 → 1.4.0","issue":{"uuid":"4505936427","node_id":"PR_kwDOSlUmNM7egvz6","number":6,"state":"closed","title":"chore(deps): bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T00:11:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T22:35:50.000Z","updated_at":"2026-05-23T00:11:20.000Z","time_to_close":5728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.2.1\u0026new-version=1.4.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/fonemstr/roomscope-marketing/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fonemstr%2Froomscope-marketing/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-16T16:55:19.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4460650460","node_id":"PR_kwDOQvuzNs7cPnHr","number":147,"state":"open","title":"chore(deps): bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T16:55:19.000Z","updated_at":"2026-05-18T20:14:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/igorcb/cronos-poc/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcb%2Fcronos-poc/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-12T02:24:00.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4425702539","node_id":"PR_kwDONcSrmM7afx2B","number":155,"state":"closed","title":"Bump the all-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-19T04:45:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T02:24:00.000Z","updated_at":"2026-05-19T04:45:00.000Z","time_to_close":613260,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"propshaft","old_version":"1.3.1","new_version":"1.3.2","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.2.0","new_version":"8.0.1","repository_url":"https://github.com/puma/puma"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.3","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"5.0.2","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"rubocop","old_version":"1.85.0","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rspec-rails","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-capybara","old_version":"2.22.1","new_version":"2.23.0","repository_url":"https://github.com/rubocop/rubocop-capybara"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"test-prof","old_version":"1.5.2","new_version":"1.6.1","repository_url":"https://github.com/test-prof/test-prof"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `7.2.0` | `8.0.1` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.3` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.2` | `5.0.4` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.85.0` | `1.86.1` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.3` | `8.0.4` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.22.1` | `2.23.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.0` |\n| [test-prof](https://github.com/test-prof/test-prof) | `1.5.2` | `1.6.1` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.2.0 to 8.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.2.0...v8.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/4e14f7eb1bdaeadd1fe2cd658c9224b231424b87\"\u003e\u003ccode\u003e4e14f7e\u003c/code\u003e\u003c/a\u003e Release 1.24.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c36e0110cecc182f39e0afa10b48f7ebd4d0f52\"\u003e\u003ccode\u003e7c36e01\u003c/code\u003e\u003c/a\u003e Fix encoding in Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/21b7ad836f04cd8254eff344905cf6a942c3cbea\"\u003e\u003ccode\u003e21b7ad8\u003c/code\u003e\u003c/a\u003e Release 1.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fbcb561385763d2a9ed71afef3163b6168e61c59\"\u003e\u003ccode\u003efbcb561\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/540\"\u003e#540\u003c/a\u003e from byroot/use-proper-parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/58d913432c80116d746668141a67c8492f2a0ec2\"\u003e\u003ccode\u003e58d9134\u003c/code\u003e\u003c/a\u003e Workaround Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/51cceccad0ed5e2caa342c9476438080e96e9974\"\u003e\u003ccode\u003e51ccecc\u003c/code\u003e\u003c/a\u003e Release 1.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/e4479c09c98013c5075371449466e0db53508454\"\u003e\u003ccode\u003ee4479c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/538\"\u003e#538\u003c/a\u003e from byroot/debug-compiler-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6d8768ec1347cb4d6f3e99302c5f060aaa15420\"\u003e\u003ccode\u003ed6d8768\u003c/code\u003e\u003c/a\u003e Fix ISeq.input_to_output to respect default external encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/dc57c2069a38710d30077d988229c4d6f7f4292d\"\u003e\u003ccode\u003edc57c20\u003c/code\u003e\u003c/a\u003e Release 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/481b9b91b5758c691af201f7dec73e54af9c0640\"\u003e\u003ccode\u003e481b9b9\u003c/code\u003e\u003c/a\u003e Avoid interning string on every call\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.2 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.2...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.85.0 to 1.86.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.86.1\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11051\"\u003e#11051\u003c/a\u003e: Fix \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e inline autocorrect dropping comments between the access modifier and the following method definition. (\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/14665\"\u003e#14665\u003c/a\u003e: Cache plugin integration in CopHelper to avoid repeated loading. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15091\"\u003e#15091\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives for anonymous classes in constant assignments and method return values. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15055\"\u003e#15055\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives with anonymous classes inside blocks (e.g. RSpec \u003ccode\u003elet\u003c/code\u003e, \u003ccode\u003edescribe\u003c/code\u003e). (\u003ca href=\"https://github.com/ShkumbinDelija\"\u003e\u003ccode\u003e@​ShkumbinDelija\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15035\"\u003e#15035\u003c/a\u003e: Exclude \u003ccode\u003eincluded_modules\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\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/15087\"\u003e#15087\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e when using interpolated string literals. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14361\"\u003e#14361\u003c/a\u003e: Fix false positive in \u003ccode\u003efile_to_include?\u003c/code\u003e when a relative \u003ccode\u003eInclude\u003c/code\u003e pattern matches a parent directory name in the absolute file path. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15090\"\u003e#15090\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when consecutive guard clauses use \u003ccode\u003eand return\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15070\"\u003e#15070\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when chained safe navigation is used in a conditional expression with \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e enabled. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15074\"\u003e#15074\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when using parentheses around an endless range in assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15048\"\u003e#15048\u003c/a\u003e: Fix issue where the url_for is missing for Cops without instance methods. (\u003ca href=\"https://github.com/Fryguy\"\u003e\u003ccode\u003e@​Fryguy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15051\"\u003e#15051\u003c/a\u003e: Fix \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e handling of beginless ranges. (\u003ca href=\"https://github.com/oggy\"\u003e\u003ccode\u003e@​oggy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14980\"\u003e#14980\u003c/a\u003e: Fix \u003ccode\u003eLint/Syntax\u003c/code\u003e zero-length diagnostic range for syntax errors at EOF. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15084\"\u003e#15084\u003c/a\u003e: Handle heredocs with methods calls correctly when fixing guard clauses. (\u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11398\"\u003e#11398\u003c/a\u003e: Fix incorrect \u003ccode\u003eInclude\u003c/code\u003e path adjustment when local config overrides an inherited \u003ccode\u003eInclude\u003c/code\u003e. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15092\"\u003e#15092\u003c/a\u003e: Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\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/15059\"\u003e#15059\u003c/a\u003e: Fix an error in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when \u003ccode\u003eSplitStrings\u003c/code\u003e option is enabled and \u003ccode\u003e__FILE__\u003c/code\u003e is used. (\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/5876\"\u003e#5876\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedMethodArgument\u003c/code\u003e false positive when block argument is used via \u003ccode\u003eyield\u003c/code\u003e. (\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/15093\"\u003e#15093\u003c/a\u003e: Return tool execution errors instead of protocol errors in MCP server. (\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/issues/15005\"\u003e#15005\u003c/a\u003e: Make \u003ccode\u003eStyle/OneClassPerFile\u003c/code\u003e exclude \u003ccode\u003espec/**/*\u003c/code\u003e and \u003ccode\u003etest/**/*\u003c/code\u003e by default. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15081\"\u003e#15081\u003c/a\u003e: Relax \u003ccode\u003eparallel\u003c/code\u003e dependency to \u003ccode\u003e\u0026gt;= 1.10\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/15063\"\u003e#15063\u003c/a\u003e: Disable \u003ccode\u003eStyle/RedundantStructKeywordInit\u003c/code\u003e cop by default. (\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 v1.86.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/15000\"\u003e#15000\u003c/a\u003e: Display ZJIT usage when running under LSP. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14961\"\u003e#14961\u003c/a\u003e: Add \u003ccode\u003eAllowedParentClasses\u003c/code\u003e option to \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadkhan\"\u003e\u003ccode\u003e@​hammadkhan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14977\"\u003e#14977\u003c/a\u003e: Support \u003ccode\u003eAllowedReceivers\u003c/code\u003e for \u003ccode\u003eStyle/HashLookupMethod\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\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.86.1 (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11051\"\u003e#11051\u003c/a\u003e: Fix \u003ccode\u003eStyle/AccessModifierDeclarations\u003c/code\u003e inline autocorrect dropping comments between the access modifier and the following method definition. ([\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/14665\"\u003e#14665\u003c/a\u003e: Cache plugin integration in CopHelper to avoid repeated loading. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15091\"\u003e#15091\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives for anonymous classes in constant assignments and method return values. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15055\"\u003e#15055\u003c/a\u003e: Fix \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e false positives with anonymous classes inside blocks (e.g. RSpec \u003ccode\u003elet\u003c/code\u003e, \u003ccode\u003edescribe\u003c/code\u003e). ([\u003ca href=\"https://github.com/ShkumbinDelija\"\u003e\u003ccode\u003e@​ShkumbinDelija\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15035\"\u003e#15035\u003c/a\u003e: Exclude \u003ccode\u003eincluded_modules\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\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/15087\"\u003e#15087\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/RedundantLineContinuation\u003c/code\u003e when using interpolated string literals. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14361\"\u003e#14361\u003c/a\u003e: Fix false positive in \u003ccode\u003efile_to_include?\u003c/code\u003e when a relative \u003ccode\u003eInclude\u003c/code\u003e pattern matches a parent directory name in the absolute file path. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15090\"\u003e#15090\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when consecutive guard clauses use \u003ccode\u003eand return\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15070\"\u003e#15070\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when chained safe navigation is used in a conditional expression with \u003ccode\u003eInferNonNilReceiver\u003c/code\u003e enabled. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15074\"\u003e#15074\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when using parentheses around an endless range in assignment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15048\"\u003e#15048\u003c/a\u003e: Fix issue where the url_for is missing for Cops without instance methods. ([\u003ca href=\"https://github.com/Fryguy\"\u003e\u003ccode\u003e@​Fryguy\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15051\"\u003e#15051\u003c/a\u003e: Fix \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e handling of beginless ranges. ([\u003ca href=\"https://github.com/oggy\"\u003e\u003ccode\u003e@​oggy\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14980\"\u003e#14980\u003c/a\u003e: Fix \u003ccode\u003eLint/Syntax\u003c/code\u003e zero-length diagnostic range for syntax errors at EOF. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15084\"\u003e#15084\u003c/a\u003e: Handle heredocs with methods calls correctly when fixing guard clauses. ([\u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11398\"\u003e#11398\u003c/a\u003e: Fix incorrect \u003ccode\u003eInclude\u003c/code\u003e path adjustment when local config overrides an inherited \u003ccode\u003eInclude\u003c/code\u003e. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15092\"\u003e#15092\u003c/a\u003e: Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\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/15059\"\u003e#15059\u003c/a\u003e: Fix an error in \u003ccode\u003eLayout/LineLength\u003c/code\u003e when \u003ccode\u003eSplitStrings\u003c/code\u003e option is enabled and \u003ccode\u003e__FILE__\u003c/code\u003e is used. ([\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/5876\"\u003e#5876\u003c/a\u003e: Fix \u003ccode\u003eLint/UnusedMethodArgument\u003c/code\u003e false positive when block argument is used via \u003ccode\u003eyield\u003c/code\u003e. ([\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/15093\"\u003e#15093\u003c/a\u003e: Return tool execution errors instead of protocol errors in MCP server. ([\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/issues/15005\"\u003e#15005\u003c/a\u003e: Make \u003ccode\u003eStyle/OneClassPerFile\u003c/code\u003e exclude \u003ccode\u003espec/**/*\u003c/code\u003e and \u003ccode\u003etest/**/*\u003c/code\u003e by default. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15081\"\u003e#15081\u003c/a\u003e: Relax \u003ccode\u003eparallel\u003c/code\u003e dependency to \u003ccode\u003e\u0026gt;= 1.10\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/15063\"\u003e#15063\u003c/a\u003e: Disable \u003ccode\u003eStyle/RedundantStructKeywordInit\u003c/code\u003e cop by default. ([\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\u003e1.86.0 (2026-03-23)\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/15000\"\u003e#15000\u003c/a\u003e: Display ZJIT usage when running under LSP. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14961\"\u003e#14961\u003c/a\u003e: Add \u003ccode\u003eAllowedParentClasses\u003c/code\u003e option to \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadkhan\"\u003e\u003ccode\u003e@​hammadkhan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14977\"\u003e#14977\u003c/a\u003e: Support \u003ccode\u003eAllowedReceivers\u003c/code\u003e for \u003ccode\u003eStyle/HashLookupMethod\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\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15015\"\u003e#15015\u003c/a\u003e: Fix \u003ccode\u003eStyle/ConcatArrayLiterals\u003c/code\u003e autocorrect deleting code for percent literals with interpolation. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14897\"\u003e#14897\u003c/a\u003e: Detect constant reassignment after class/module definition in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11829\"\u003e#11829\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when duplicate methods are defined in anonymous classes and modules not assigned to a constant. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14988\"\u003e#14988\u003c/a\u003e: Fix false negative in \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e when redundant parentheses around range literals in block body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14916\"\u003e#14916\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when method chain is inside a hash pair value passed to a multiline chained method call. ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15010\"\u003e#15010\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when modules blocks are passed as method arguments. ([\u003ca href=\"https://github.com/5hun-s\"\u003e\u003ccode\u003e@​5hun-s\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15028\"\u003e#15028\u003c/a\u003e: Fix a false positive for \u003ccode\u003eLint/DuplicateMethods\u003c/code\u003e when the same method is defined in different anonymous module blocks passed to a no-receiver call (e.g. \u003ccode\u003estub_const\u003c/code\u003e). ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15021\"\u003e#15021\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when using a guard clause followed by a multi-line guard clause with \u003ccode\u003eraise\u003c/code\u003e, \u003ccode\u003efail\u003c/code\u003e, \u003ccode\u003ereturn\u003c/code\u003e, \u003ccode\u003ebreak\u003c/code\u003e, or \u003ccode\u003enext\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/15001\"\u003e#15001\u003c/a\u003e: Fix false positives in \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when setting \u003ccode\u003eInspectBlocks: true\u003c/code\u003e and using \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e in the block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14997\"\u003e#14997\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/FileOpen\u003c/code\u003e when assigning \u003ccode\u003eFile.open\u003c/code\u003e to an instance variable, class variable, global variable, or constant. ([\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!-- 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/af8026643d436c4570bf7063a7475e2cad95fd49\"\u003e\u003ccode\u003eaf80266\u003c/code\u003e\u003c/a\u003e Cut 1.86.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/eb504cec166130d8459046fbbfd05ba795206a5c\"\u003e\u003ccode\u003eeb504ce\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9c8fe2c1baab6f1cadd894507c8790677bd8092c\"\u003e\u003ccode\u003e9c8fe2c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15085\"\u003e#15085\u003c/a\u003e from G-Rath/fix-style-guard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11d796a5faaf0802f5e02c7aaf5b9df17365763e\"\u003e\u003ccode\u003e11d796a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15093\"\u003e#15093\u003c/a\u003e from koic/fix_return_tool_execution_errors_instead_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4450067dda2f262e4ded6f76de28d28632d3315d\"\u003e\u003ccode\u003e4450067\u003c/code\u003e\u003c/a\u003e Return tool execution errors instead of protocol errors in MCP server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ff641800ba81e44fa07a54cb12eab59b1c670984\"\u003e\u003ccode\u003eff64180\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15092\"\u003e#15092\u003c/a\u003e from viralpraxis/fix-an-error-for-layout-end-alignm...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11e04c0ad04ff164b0eebcdb4c5ac61c58870788\"\u003e\u003ccode\u003e11e04c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15091\"\u003e#15091\u003c/a\u003e from eugeneius/duplicate_methods_anonymous_classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b8deea4173ab30e1bf8171b168412ae808a27dd7\"\u003e\u003ccode\u003eb8deea4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15090\"\u003e#15090\u003c/a\u003e from eugeneius/guard_clause_and_return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e1300200a6368d5569c8fff97321642d3292eff9\"\u003e\u003ccode\u003ee130020\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e cop error on an empty \u003ccode\u003ebegin\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/480859411db057a120ef3829a54641f0626917ce\"\u003e\u003ccode\u003e4808594\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eDuplicateMethods\u003c/code\u003e for anonymous classes in constant assignments and methods\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.85.0...v1.86.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-rails` from 8.0.3 to 8.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rspec/rspec-rails/blob/main/Changelog.md\"\u003erspec-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e8.0.4 / 2026-03-10\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/compare/v8.0.3...v8.0.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eReleased to relax version constraint for rspec to allow 4.0.0.beta1.\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/rspec/rspec-rails/commit/222fb5518a7c9c1b9a0a06d950c2dfa2d3fa69e9\"\u003e\u003ccode\u003e222fb55\u003c/code\u003e\u003c/a\u003e Drop compatibility check rails version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/commit/769a3c46204572828e324e537762fc657a482d59\"\u003e\u003ccode\u003e769a3c4\u003c/code\u003e\u003c/a\u003e v8.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec-rails/commit/0549e5921d9c6439ba40449a050251bb224b718a\"\u003e\u003ccode\u003e0549e59\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rspec/rspec-rails/issues/2895\"\u003e#2895\u003c/a\u003e from rspec/add-rspec-4-ci-check\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec-rails/compare/v8.0.3...v8.0.4\"\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.22.1 to 2.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-capybara/releases\"\u003erubocop-capybara's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Capybara v2.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump RuboCop requirement to +1.81. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new \u003ccode\u003eCapybara/RSpec/HaveContent\u003c/code\u003e cop. (\u003ca href=\"https://github.com/nzlaura\"\u003e\u003ccode\u003e@​nzlaura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove the department associated with \u003ccode\u003eCapybara::RSpecMatchers\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/*\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/CurrentPathExpectation\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/CurrentPathExpectation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/SpecificMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/SpecificMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcherAfterVisit\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcherAfterVisit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/VisibilityMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/VisibilityMatcher\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and \u003ccode\u003eCapybara/RSpec/MatchStyle\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when using logical operators with \u003ccode\u003eall('...')[0]\u003c/code\u003e. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e with \u003ccode\u003ematch: :first\u003c/code\u003e uses a receiver and mark autocorrection as unsafe. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type. (\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\u003e2.23.0 (2026-04-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump RuboCop requirement to +1.81. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new \u003ccode\u003eCapybara/RSpec/HaveContent\u003c/code\u003e cop. ([\u003ca href=\"https://github.com/nzlaura\"\u003e\u003ccode\u003e@​nzlaura\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eMove the department associated with \u003ccode\u003eCapybara::RSpecMatchers\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/*\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/CurrentPathExpectation\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/CurrentPathExpectation\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/SpecificMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/SpecificMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcher\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/NegationMatcherAfterVisit\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/NegationMatcherAfterVisit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eCapybara/VisibilityMatcher\u003c/code\u003e to \u003ccode\u003eCapybara/RSpec/VisibilityMatcher\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and \u003ccode\u003eCapybara/RSpec/MatchStyle\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when using logical operators with \u003ccode\u003eall('...')[0]\u003c/code\u003e. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e with \u003ccode\u003ematch: :first\u003c/code\u003e uses a receiver and mark autocorrection as unsafe. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type. ([\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/2aa369658989df103c598c7e5267d40d59c4a156\"\u003e\u003ccode\u003e2aa3696\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/170\"\u003e#170\u003c/a\u003e from rubocop/v2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/d6ffe96aad28cafeea0e171ba0feb74d93707d12\"\u003e\u003ccode\u003ed6ffe96\u003c/code\u003e\u003c/a\u003e v2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/da0500dbda516ba0f39e9a3e163c6c8f68af45cf\"\u003e\u003ccode\u003eda0500d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/168\"\u003e#168\u003c/a\u003e from rubocop/fix/167-find-all-first-receiver\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/d16b170bca9b543590a652ecb0b9f3c94042475c\"\u003e\u003ccode\u003ed16b170\u003c/code\u003e\u003c/a\u003e Fix an incorrect autocorrect for \u003ccode\u003eCapybara/FindAllFirst\u003c/code\u003e when \u003ccode\u003efind\u003c/code\u003e or \u003ccode\u003eall\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/965c79051fc804aff2ae93454db55f708f0d6f04\"\u003e\u003ccode\u003e965c790\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/166\"\u003e#166\u003c/a\u003e from rubocop/ci-test-rspec-4-on-its-main-branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/3a3e959aa13614c4289f4c99cacb25c55145f00d\"\u003e\u003ccode\u003e3a3e959\u003c/code\u003e\u003c/a\u003e CI: Test RSpec 4 prerelease on rspec main branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/ae01cbe6a23a5b1dd37a377a6ad3651bc0dcd57f\"\u003e\u003ccode\u003eae01cbe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/164\"\u003e#164\u003c/a\u003e from rubocop/haveselector\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/44490b721b9ec0a25d6d4ec148393792c83f7d1f\"\u003e\u003ccode\u003e44490b7\u003c/code\u003e\u003c/a\u003e Fix an error for \u003ccode\u003eCapybara/RSpec/HaveSelector\u003c/code\u003e when passing only a selector type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/e5adb535d79f3eb77cd58faced88dfa4eb801348\"\u003e\u003ccode\u003ee5adb53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-capybara/issues/155\"\u003e#155\u003c/a\u003e from rubocop/move-rspec-dept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-capybara/commit/f172ed9ff04d09d6594b04a29caa9fb4fea73d4b\"\u003e\u003ccode\u003ef172ed9\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eCapybara/MatchStyle\u003c/code\u003e into \u003ccode\u003eCapybara/AssertStyle\u003c/code\u003e and `Capybara/RSpec/M...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-capybara/compare/v2.22.1...v2.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.34.3 to 2.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/aa320da089131dd1148148a9be5ff2863d282473\"\u003e\u003ccode\u003eaa320da\u003c/code\u003e\u003c/a\u003e Cut 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/co...\n\n_Description has been truncated_","html_url":"https://github.com/dominicmacaulay/my_money/pull/155","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominicmacaulay%2Fmy_money/issues/155","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/155/packages"}},{"old_version":"1.2.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-29T04:43:10.000Z","version_change":"1.2.1 → 1.4.0","issue":{"uuid":"4347941699","node_id":"PR_kwDOPpK1p87Wk86F","number":100,"state":"closed","title":"Bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T21:06:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T04:43:10.000Z","updated_at":"2026-06-18T21:06:14.000Z","time_to_close":4378976,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/dedemenezes/riff-inertia/pull/100","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedemenezes%2Friff-inertia/issues/100","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/100/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-27T06:48:30.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4333669778","node_id":"PR_kwDORMLMsM7V2mWs","number":20,"state":"open","title":"Bump solid_queue from 1.3.1 to 1.4.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-04-27T06:48:30.000Z","updated_at":"2026-05-06T16:01:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/chrisbaptiste83/libra_arcana/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisbaptiste83%2Flibra_arcana/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"1.1.0","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T12:05:57.000Z","version_change":"1.1.0 → 1.4.0","issue":{"uuid":"4295505333","node_id":"PR_kwDONimnHc7T8A8b","number":28,"state":"closed","title":"⬆️ Bump solid_queue from 1.1.0 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-24T23:50:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T12:05:57.000Z","updated_at":"2026-04-24T23:50:50.000Z","time_to_close":387884,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"solid_queue","old_version":"1.1.0","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.1.0 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.1.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.1.0\u0026new-version=1.4.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/gabrielgatti7/Todo-list-Rails/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielgatti7%2FTodo-list-Rails/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T02:36:47.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4292761789","node_id":"PR_kwDOQwSPX87TzKvl","number":303,"state":"closed","title":"chore(deps): bump the ruby-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T02:37:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T02:36:47.000Z","updated_at":"2026-04-27T02:37:43.000Z","time_to_close":604855,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ruby-dependencies","update_count":5,"packages":[{"name":"propshaft","old_version":"1.3.1","new_version":"1.3.2","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.2.0","new_version":"8.0.0","repository_url":"https://github.com/puma/puma"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.19","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `7.2.0` | `8.0.0` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.19` | `0.1.20` |\n\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.2.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7d5dca1a561a95c2a6b8742b52c81c73cd2b95ca\"\u003e\u003ccode\u003e7d5dca1\u003c/code\u003e\u003c/a\u003e Update SECURITY.md, native Github vuln reports [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/66e6a32de52d9beed43e1c598bda360f906ccbef\"\u003e\u003ccode\u003e66e6a32\u003c/code\u003e\u003c/a\u003e Minor correction to defaults documented in dsl.rb (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/3788eca453a64ffb05a67115d3e2a276bbaf21a3\"\u003e\u003ccode\u003e3788eca\u003c/code\u003e\u003c/a\u003e ci: limit rack-conform to main pushes and scope ragel PR runs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3908\"\u003e#3908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/57b7799201adf43cdf508f90c57b95e23f49bbcd\"\u003e\u003ccode\u003e57b7799\u003c/code\u003e\u003c/a\u003e ci: run turbo-rails only on latest stable Ruby and Rails (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/6685d6b8024c5480774b790808e4f0343e414fa5\"\u003e\u003ccode\u003e6685d6b\u003c/code\u003e\u003c/a\u003e ci: replace skip-duplicate jobs with concurrency and trigger filters (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3907\"\u003e#3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/2848c823dfc9838033d6ce342fee917e81aeedc1\"\u003e\u003ccode\u003e2848c82\u003c/code\u003e\u003c/a\u003e ci: run push workflows only on main and release branches (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3906\"\u003e#3906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97a37bb7c6a457f8846eb3ce307daadd4b38b4f8\"\u003e\u003ccode\u003e97a37bb\u003c/code\u003e\u003c/a\u003e Add release pre-merge checks and align Release.md [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3904\"\u003e#3904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.2.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.19 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.19...v0.1.20\"\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/sp8783/vsmobile-kgy/pull/303","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp8783%2Fvsmobile-kgy/issues/303","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/303/packages"}},{"old_version":"1.2.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-14T18:46:09.000Z","version_change":"1.2.1 → 1.4.0","issue":{"uuid":"4264089819","node_id":"PR_kwDOQSmD4s7SZ_nc","number":36,"state":"closed","title":"Bump solid_queue from 1.2.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T01:57:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-14T18:46:09.000Z","updated_at":"2026-05-26T01:57:54.000Z","time_to_close":3568303,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.2.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.2.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.2.1\u0026new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/LHB410/one-does-not-simply-walk-into-morder/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LHB410%2Fone-does-not-simply-walk-into-morder/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-02T00:58:24.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4190752845","node_id":"PR_kwDORCn2Es7ParQG","number":18,"state":"closed","title":"Bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T07:41:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-02T00:58:24.000Z","updated_at":"2026-04-12T07:41:59.000Z","time_to_close":888206,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.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/hadrienblanc/hmeet/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadrienblanc%2Fhmeet/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"1.2.4","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-04-01T13:35:50.000Z","version_change":"1.2.4 → 1.4.0","issue":{"uuid":"4187004042","node_id":"PR_kwDOQmNZmc7PQzob","number":69,"state":"closed","title":"Bump the ruby-dependencies group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-26T19:39:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T13:35:50.000Z","updated_at":"2026-04-26T19:39:30.000Z","time_to_close":2181818,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":21,"packages":[{"name":"rails","old_version":"8.1.1","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sqlite3","old_version":"2.8.1","new_version":"2.9.2","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/puma/puma"},{"name":"importmap-rails","old_version":"2.2.2","new_version":"2.2.3","repository_url":"https://github.com/rails/importmap-rails"},{"name":"turbo-rails","old_version":"2.0.20","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"solid_queue","old_version":"1.2.4","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"bootsnap","old_version":"1.19.0","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"kamal","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"},{"name":"appsignal","old_version":"4.8.1","new_version":"4.8.4","repository_url":"https://github.com/appsignal/appsignal-ruby"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.218.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"avo","old_version":"3.28.0","new_version":"3.30.4","repository_url":"https://github.com/avo-hq/avo"},{"name":"lucide-rails","old_version":"0.7.3","new_version":"0.7.4","repository_url":"https://github.com/heyvito/lucide-rails"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"annotaterb","old_version":"4.20.0","new_version":"4.22.0","repository_url":"https://github.com/drwl/annotaterb"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.39.0","new_version":"4.41.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"webmock","old_version":"3.26.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.3","new_version":"3.6.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"crawler_detect","old_version":"1.2.9","new_version":"1.2.11","repository_url":"https://github.com/loadkpi/crawler_detect"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.1` | `8.1.3` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.8.1` | `2.9.2` |\n| [puma](https://github.com/puma/puma) | `7.1.0` | `7.2.0` |\n| [importmap-rails](https://github.com/rails/importmap-rails) | `2.2.2` | `2.2.3` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.20` | `2.0.23` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.2.4` | `1.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.19.0` | `1.23.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.9.0` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.20` |\n| [appsignal](https://github.com/appsignal/appsignal-ruby) | `4.8.1` | `4.8.4` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.218.0` |\n| [avo](https://github.com/avo-hq/avo) | `3.28.0` | `3.30.4` |\n| [lucide-rails](https://github.com/heyvito/lucide-rails) | `0.7.3` | `0.7.4` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [annotaterb](https://github.com/drwl/annotaterb) | `4.20.0` | `4.22.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.39.0` | `4.41.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.26.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.3` | `3.6.1` |\n| [crawler_detect](https://github.com/loadkpi/crawler_detect) | `1.2.9` | `1.2.11` |\n\n\nUpdates `rails` from 8.1.1 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.8.1 to 2.9.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eeeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42  sqlite3-2.9.2-aarch64-linux-gnu.gem\r\n4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d  sqlite3-2.9.2-aarch64-linux-musl.gem\r\n1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7  sqlite3-2.9.2-arm-linux-gnu.gem\r\n8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057  sqlite3-2.9.2-arm-linux-musl.gem\r\nd15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9  sqlite3-2.9.2-arm64-darwin.gem\r\nb1b10d8c45a495b1e5b6338f7baa11297522bb9809b01e7e575090edd685953e  sqlite3-2.9.2-x64-mingw-ucrt.gem\r\n066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d  sqlite3-2.9.2-x86-linux-gnu.gem\r\n6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede  sqlite3-2.9.2-x86-linux-musl.gem\r\ned691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13  sqlite3-2.9.2-x86_64-darwin.gem\r\ndce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee  sqlite3-2.9.2-x86_64-linux-gnu.gem\r\ne8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7  sqlite3-2.9.2-x86_64-linux-musl.gem\r\n86814150714b6b06a328d083f46408e7a4a83b5f0a9673ed934ee3a1cb7a73b1  sqlite3-2.9.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eSHA256 checksums:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e85535ddf1c37f116ebebe0330bbbffc2ccb55d09f69717a565f8cfb35142f136  sqlite3-2.9.1-aarch64-linux-gnu.gem\r\n646a28a655fc0298ff4266de0af89b66477a2d9ad65cebb5abad190bb64ed092  sqlite3-2.9.1-aarch64-linux-musl.gem\r\ned25696b0fb4694ca4f47287eaaa9e0d46a0a0c92990c453743d6ab6b4f51fa0  sqlite3-2.9.1-arm-linux-gnu.gem\r\n82ca90eefe50935c827ab0c8dffff5219f57b5da0c92039e3e27f7dbccc9e992  sqlite3-2.9.1-arm-linux-musl.gem\r\ne0cc5521aa03361e2da56635f3745242510b0b98c4608a3824b7e31ab2e7ffb9  sqlite3-2.9.1-arm64-darwin.gem\r\nffae7b4c712f4e29cef2a95125bb2144624e4c675fb5c19175231a20f128dfd1  sqlite3-2.9.1-x64-mingw-ucrt.gem\r\nc3517e6f0df1f3a99fb73c5b0e6f02fc93b3b6b2ca0de72cb6d3956153310603  sqlite3-2.9.1-x86-linux-gnu.gem\r\n2216ab52dbff54bbc5ea87789e02c60f1c749f7ce052cef36da542ecc9aadc25  sqlite3-2.9.1-x86-linux-musl.gem\r\n5ce2c05eed8dc7c6debd560e2c5960e36521652b9a43bc3e42bc431db600c36f  sqlite3-2.9.1-x86_64-darwin.gem\r\n1cbb644204ed143e5c96f6d59b5c571ba6f18b18a9dc5aa11c101187ff227afd  sqlite3-2.9.1-x86_64-linux-gnu.gem\r\nbbd50dd1caca78b6c069701d9009ef714461495985d4c374ea1a1def061ba67c  sqlite3-2.9.1-x86_64-linux-musl.gem\r\nf6ddc2ec850434ac14498944da9d768fe154dbcd4163fc9e173a524d95e2f887  sqlite3-2.9.1.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eStatement#named_params\u003c/code\u003e to introspect on a parameterized SQL statement. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/627\"\u003e#627\u003c/a\u003e \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/642\"\u003e#642\u003c/a\u003e \u003ca href=\"https://github.com/captn3m0\"\u003e\u003ccode\u003e@​captn3m0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSmall improvements to docstrings and comments. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/houyuanjie\"\u003e\u003ccode\u003e@​houyuanjie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/efc56aa1e407a7aa6a96caefecd2c900e1f39223\"\u003e\u003ccode\u003eefc56aa\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8635618dca7edca3a804175610d0a81381e3554b\"\u003e\u003ccode\u003e8635618\u003c/code\u003e\u003c/a\u003e doc: new automated release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7aa67360cbfc088d551a8b6d422dfb118b496614\"\u003e\u003ccode\u003e7aa6736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/690\"\u003e#690\u003c/a\u003e from sparklemotion/publish-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/05c922b4aec8ff147954dea7d8fc662cc3d8ae22\"\u003e\u003ccode\u003e05c922b\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2.rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/21a4782af583fe7d6d1dcc1f7a9e558c882a4f94\"\u003e\u003ccode\u003e21a4782\u003c/code\u003e\u003c/a\u003e dev: update test-gem-build to support a release flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a57b16884836cebaf9981887cb77e3ac8242d7ca\"\u003e\u003ccode\u003ea57b168\u003c/code\u003e\u003c/a\u003e ci: add release pipeline for publishing gems to RubyGems\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/e1c65b19bfc8cc46e2ca3b8288339aac51955293\"\u003e\u003ccode\u003ee1c65b1\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/63f6cbd4e919b43147de28c1fb67923fe68345f3\"\u003e\u003ccode\u003e63f6cbd\u003c/code\u003e\u003c/a\u003e ci: skeleton for release.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8c3c0a051390401c564a0da7e12e1cfa940d01af\"\u003e\u003ccode\u003e8c3c0a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/689\"\u003e#689\u003c/a\u003e from sparklemotion/harden-github-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/9ebda352723ac2db6929cabe66f1e148948a704d\"\u003e\u003ccode\u003e9ebda35\u003c/code\u003e\u003c/a\u003e ci: address zizmor artipacked and template-injection\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.8.1...v2.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange link to \u003ccode\u003edocs/deployment.md\u003c/code\u003e in \u003ccode\u003eREADME.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix formatting for each signal description in signals.md (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deployment and Kubernetes docs with Puma configuration tips (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3807\"\u003e#3807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename master to main (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3809\"\u003e#3809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3808\"\u003e#3808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix some minor typos in the docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGOVERNANCE.md\u003c/code\u003e, \u003ccode\u003eMAINTAINERS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Code Climate badge (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e to the maintainer list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCI\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany test suite improvements and flake fixes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3845\"\u003e#3845\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3841\"\u003e#3841\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3822\"\u003e#3822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3817\"\u003e#3817\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChange link to \u003ccode\u003edocs/deployment.md\u003c/code\u003e in \u003ccode\u003eREADME.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix formatting for each signal description in signals.md (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deployment and Kubernetes docs with Puma configuration tips (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3807\"\u003e#3807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename master to main (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3809\"\u003e#3809\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3808\"\u003e#3808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix some minor typos in the docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGOVERNANCE.md\u003c/code\u003e, \u003ccode\u003eMAINTAINERS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Code Climate badge (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e to the maintainer list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCI\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany test suite improvements and flake fixes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3845\"\u003e#3845\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3841\"\u003e#3841\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3822\"\u003e#3822\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3817\"\u003e#3817\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3764\"\u003e#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/96b5aa63e0599e8adf971ceb57efa3cc5663f8a9\"\u003e\u003ccode\u003e96b5aa6\u003c/code\u003e\u003c/a\u003e v7.2.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3864\"\u003e#3864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/5d7d1ddb266d52abfd96d763a4870af2c3ce9d1a\"\u003e\u003ccode\u003e5d7d1dd\u003c/code\u003e\u003c/a\u003e Add workers :auto (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b8c4783cc1ed24300b4b940c57a5dd970db99369\"\u003e\u003ccode\u003eb8c4783\u003c/code\u003e\u003c/a\u003e ci: fix ci - remove \u003ccode\u003eappend_as_bytes\u003c/code\u003e logic, misc changes (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3861\"\u003e#3861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/44a3ac43a71ea1344e739275b9f55708f9e496ee\"\u003e\u003ccode\u003e44a3ac4\u003c/code\u003e\u003c/a\u003e Fix PR label manager when maintainer comments [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3863\"\u003e#3863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/43f5d8935ea85d19e98459294114b31196276bc1\"\u003e\u003ccode\u003e43f5d89\u003c/code\u003e\u003c/a\u003e Add GOVERNANCE.md, MAINTAINERS (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/21afa66798c46212ef392085cb1825c74d107810\"\u003e\u003ccode\u003e21afa66\u003c/code\u003e\u003c/a\u003e Use Minitest 6 where applicable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3859\"\u003e#3859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/ec7dd61cf9c5e9ec58f356ca2e32e90602de094c\"\u003e\u003ccode\u003eec7dd61\u003c/code\u003e\u003c/a\u003e ci: Update test_http11.rb for TruffleRuby - string size (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3860\"\u003e#3860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/fa89dbe1ce8dd8f3159363f30cecaf4338583b2c\"\u003e\u003ccode\u003efa89dbe\u003c/code\u003e\u003c/a\u003e ci: add \u003ccode\u003eruby 4.0\u003c/code\u003e and \u003ccode\u003erails 8.1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3852\"\u003e#3852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/98ff11d220b53d7e5c3dc3e4246e66e75284ed7b\"\u003e\u003ccode\u003e98ff11d\u003c/code\u003e\u003c/a\u003e Fix flaky test test_horrible_queries (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3857\"\u003e#3857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/da162d7b2b87b978d8bbd6d0d1ccde69ce1735da\"\u003e\u003ccode\u003eda162d7\u003c/code\u003e\u003c/a\u003e ci: fix tests.yml (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3856\"\u003e#3856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.1.0...v7.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importmap-rails` from 2.2.2 to 2.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/importmap-rails/releases\"\u003eimportmap-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epin_all_from\u003c/code\u003e incorrectly removing \u0026quot;js\u0026quot; substring from filenames by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/313\"\u003erails/importmap-rails#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle package names with nested paths in import maps by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/322\"\u003erails/importmap-rails#322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/6fb2bd58e3709d4996179de06aa687d6abae8a0e\"\u003e\u003ccode\u003e6fb2bd5\u003c/code\u003e\u003c/a\u003e Prepare for 2.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/682e05806a9ab3757a9841e7360fc8a9188c33f9\"\u003e\u003ccode\u003e682e058\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/322\"\u003e#322\u003c/a\u003e from rails/rmf-fix-321\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/a04dd3096ffb99f18b5b2425e9b6500006d3a0d1\"\u003e\u003ccode\u003ea04dd30\u003c/code\u003e\u003c/a\u003e Handle package names with nested paths in import maps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/9b0a9e0f5b3395f5754eb6a62e51d37a12adc0a5\"\u003e\u003ccode\u003e9b0a9e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/323\"\u003e#323\u003c/a\u003e from rails/rmf-test-ruby-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/e37bea686521343c4d67a9ed041140d54a36a4ae\"\u003e\u003ccode\u003ee37bea6\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 and Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/51c1a531327fc04ed4552bb0fd523eb43561b817\"\u003e\u003ccode\u003e51c1a53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/313\"\u003e#313\u003c/a\u003e from rails/rm-fix-282\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/3e94dfa33d1fa717880f847e4e67479a4d10a8fe\"\u003e\u003ccode\u003e3e94dfa\u003c/code\u003e\u003c/a\u003e Add some copilot prompts for this project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/7ffedcb97d72443c715979c8f8d8ec0b149056bb\"\u003e\u003ccode\u003e7ffedcb\u003c/code\u003e\u003c/a\u003e Fix pin_all_from incorrectly removing \u0026quot;js\u0026quot; substring from filenames\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 2.0.20 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.2.4 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.2.4...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.19.0 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.9.0 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass accessory volume through as is by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1738\"\u003ebasecamp/kamal#1738\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.0...v2.10.1\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.0...v2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet proxy run configuration in deploy YAML by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1663\"\u003ebasecamp/kamal#1663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport mount options for files and directories by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1723\"\u003ebasecamp/kamal#1723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccessory file/directory owners + permissions by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1724\"\u003ebasecamp/kamal#1724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand secret environment variables in accessory files by \u003ca href=\"https://github.com/aliismayilov\"\u003e\u003ccode\u003e@​aliismayilov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1601\"\u003ebasecamp/kamal#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd secret support for SSH \u003ccode\u003ekey_data\u003c/code\u003e by \u003ca href=\"https://github.com/jclusso\"\u003e\u003ccode\u003e@​jclusso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1620\"\u003ebasecamp/kamal#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in secrets by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1726\"\u003ebasecamp/kamal#1726\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/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.9.0...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.19 / 2026-03-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.18 / 2026-02-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn correct exit code when terminated with signal (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.25.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.17 / 2025-12-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMitigate BREACH attacks with random jitter and optional compression guard (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e17d3ee027832548832683d66d1cae77413d16cc\"\u003e\u003ccode\u003ee17d3ee\u003c/code\u003e\u003c/a\u003e Go 1.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/63c08c741e0300526cc770ab124a70d08768a638\"\u003e\u003ccode\u003e63c08c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/112\"\u003e#112\u003c/a\u003e from basecamp/go1.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/aa7d697419ee1f7654bebb217d01f50dcc670f8f\"\u003e\u003ccode\u003eaa7d697\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ego fix\u003c/code\u003e updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8d64ade8273bd056bfc3f60c8484a0e251b9f7ca\"\u003e\u003ccode\u003e8d64ade\u003c/code\u003e\u003c/a\u003e Build with Go 1.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.16...v0.1.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `appsignal` from 4.8.1 to 4.8.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/appsignal/appsignal-ruby/blob/main/CHANGELOG.md\"\u003eappsignal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.8.4\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-03-20.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBundled certificates have been updated. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a52c55d969a1e8f450e5066ced2a61a468567b4d\"\u003ea52c55d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with \u003ccode\u003ehttp\u003c/code\u003e (http.rb) gem version 6.0.0 and higher. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/37a2ac926a81c53abafaf46cd8dda2376269a8ef\"\u003e37a2ac92\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-02-17.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a \u003ccode\u003edefault_tags\u003c/code\u003e configuration option. Tags set in this configuration option will be set for all transactions. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/3b9d9f4844295d3c8f94fe750509f69f579cb372\"\u003e3b9d9f48\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePublished on 2026-02-05.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLog where \u003ccode\u003eAppsignal.configure\u003c/code\u003e is called. When a warning is emitted about \u003ccode\u003eAppsignal.configure\u003c/code\u003e being called from an application where \u003ccode\u003econfig/appsignal.yml\u003c/code\u003e or \u003ccode\u003econfig/appsignal.rb\u003c/code\u003e exist, log the location from which \u003ccode\u003eAppsignal.configure\u003c/code\u003e was called alongside the location of the configuration file. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a90971075370bcf1d37f568d934dd8aeb71c1223\"\u003ea9097107\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003ebundle exec appsignal install\u003c/code\u003e CLI command on Ruby 4 by removing the dependency on the \u003ccode\u003eostruct\u003c/code\u003e gem, which is no longer part of the standard library. (patch \u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/d3bd5198486a762353bfbd7807f4d042a85a9d3d\"\u003ed3bd5198\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/appsignal/appsignal-ruby/commit/c8e8ee7e7d8984134381b662f0403e946b82704e\"\u003e\u003ccode\u003ec8e8ee7\u003c/code\u003e\u003c/a\u003e Publish package v4.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/0aee3ef470fc3996be948fd280fb268a70f2791b\"\u003e\u003ccode\u003e0aee3ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1503\"\u003e#1503\u003c/a\u003e from appsignal/fix-http-6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/37a2ac926a81c53abafaf46cd8dda2376269a8ef\"\u003e\u003ccode\u003e37a2ac9\u003c/code\u003e\u003c/a\u003e Fix http.rb integration for version 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/427ae9fa9465923fb04d4ac1245edcd6e76c2992\"\u003e\u003ccode\u003e427ae9f\u003c/code\u003e\u003c/a\u003e Fix entry format for public changelog (\u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1501\"\u003e#1501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/5520e6328d509906037bf6d71dd03ac8e196e5d8\"\u003e\u003ccode\u003e5520e63\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1498\"\u003e#1498\u003c/a\u003e from appsignal/update-cacert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/a52c55d969a1e8f450e5066ced2a61a468567b4d\"\u003e\u003ccode\u003ea52c55d\u003c/code\u003e\u003c/a\u003e Update bundled CA certificates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/2a60098fb461687bc6ee40a8628886e3a4e26d5c\"\u003e\u003ccode\u003e2a60098\u003c/code\u003e\u003c/a\u003e Publish package v4.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/f8e81ff4a6f8dfe0a598ca514965eddc1807b145\"\u003e\u003ccode\u003ef8e81ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1497\"\u003e#1497\u003c/a\u003e from appsignal/default-tags-1491\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/3b9d9f4844295d3c8f94fe750509f69f579cb372\"\u003e\u003ccode\u003e3b9d9f4\u003c/code\u003e\u003c/a\u003e Add default tags config option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/appsignal/appsignal-ruby/commit/51956b9cdf79524eab592f5d9d5008d5b0f843f1\"\u003e\u003ccode\u003e51956b9\u003c/code\u003e\u003c/a\u003e Update changelog PR dispatch URL (\u003ca href=\"https://redirect.github.com/appsignal/appsignal-ruby/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/appsignal/appsignal-ruby/compare/v4.8.1...v4.8.4\"\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.208.0 to 1.218.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.218.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Add Bucket Metrics configuration support to directory buckets\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.217.1 (2026-03-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Fix \u003ccode\u003erequire_https_for_sse_cpk\u003c/code\u003e option being ignored; the HTTPS enforcement for SSE-CPK operations now correctly respects the configured value, allowing it to be disabled for local development.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.217.0 (2026-03-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details....\n\n_Description has been truncated_","html_url":"https://github.com/moguls753/scorebase/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/moguls753%2Fscorebase/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"}},{"old_version":"1.1.5","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-31T14:56:51.000Z","version_change":"1.1.5 → 1.4.0","issue":{"uuid":"4179937010","node_id":"PR_kwDOO-4eRc7O-sdm","number":42,"state":"closed","title":"Bump solid_queue from 1.1.5 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-11T22:14:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-31T14:56:51.000Z","updated_at":"2026-04-11T22:14:35.000Z","time_to_close":976655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.1.5","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.1.5 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.1.5...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.1.5\u0026new-version=1.4.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/TonyCookey/support-system-api/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyCookey%2Fsupport-system-api/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-27T17:07:51.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4154511693","node_id":"PR_kwDOIzyogM7OHFU_","number":65,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-05T00:36:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-27T17:07:51.000Z","updated_at":"2026-04-05T00:36:36.000Z","time_to_close":718117,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.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/doncan-orozco/papyro/pull/65","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/doncan-orozco%2Fpapyro/issues/65","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/65/packages"}},{"old_version":"1.3.1","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-27T07:14:55.000Z","version_change":"1.3.1 → 1.4.0","issue":{"uuid":"4150132167","node_id":"PR_kwDORMhZis7N9t_D","number":15,"state":"closed","title":"chore(deps): bump solid_queue from 1.3.1 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-10T10:56:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-27T07:14:55.000Z","updated_at":"2026-04-10T10:56:39.000Z","time_to_close":1222902,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.1","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.1 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition between job enqueue and concurrency unblock by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/712\"\u003erails/solid_queue#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix application of \u003ccode\u003eSOLID_QUEUE_SUPERVISOR_MODE\u003c/code\u003e environment variable by \u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Detect and warn when schedules generate multiple CRONs by \u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up dead thread from process_instances when replacing it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/714\"\u003erails/solid_queue#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash when recording a failed execution for a job that already has one by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/713\"\u003erails/solid_queue#713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuard against nil pid in Puma plugin stop by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/715\"\u003erails/solid_queue#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003enil\u003c/code\u003e process in heartbeat by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/716\"\u003erails/solid_queue#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip concurrency controls for jobs whose class has been removed by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/717\"\u003erails/solid_queue#717\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/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/709\"\u003erails/solid_queue#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/himanshukale36\"\u003e\u003ccode\u003e@​himanshukale36\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/707\"\u003erails/solid_queue#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.1...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.1\u0026new-version=1.4.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/kdurski/ksef-tui/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdurski%2Fksef-tui/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-26T20:36:18.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4147175091","node_id":"PR_kwDORer8Ts7N2l8C","number":8,"state":"open","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-26T20:36:18.000Z","updated_at":"2026-04-12T02:00:26.741Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/yoelastudillo/projeto/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoelastudillo%2Fprojeto/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-26T02:15:10.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4139905571","node_id":"PR_kwDORri8Y87NjOlC","number":4,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-27T21:22:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T02:15:10.000Z","updated_at":"2026-03-27T21:22:38.000Z","time_to_close":155246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/awoo452/bugs_changes/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/awoo452%2Fbugs_changes/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-25T20:37:06.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4138364324","node_id":"PR_kwDONXlIL87NezOx","number":45,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-02T01:16:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T20:37:06.000Z","updated_at":"2026-04-02T01:16:49.000Z","time_to_close":621581,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":7,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"bcrypt","old_version":"3.1.21","new_version":"3.1.22","repository_url":"https://github.com/bcrypt-ruby/bcrypt-ruby"},{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"thruster","old_version":"0.1.18","new_version":"0.1.20","repository_url":"https://github.com/basecamp/thruster"},{"name":"pagy","old_version":"43.3.0","new_version":"43.4.3","repository_url":"https://github.com/ddnexus/pagy"},{"name":"brakeman","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [bcrypt](https://github.com/bcrypt-ruby/bcrypt-ruby) | `3.1.21` | `3.1.22` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.3.2` | `1.4.0` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.18` | `0.1.20` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.3.0` | `43.4.3` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.2` | `8.0.4` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 3.1.21 to 3.1.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/releases\"\u003ebcrypt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove compilation after bundle install by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/291\"\u003ebcrypt-ruby/bcrypt-ruby#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/tjschuck\"\u003e\u003ccode\u003e@​tjschuck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/293\"\u003ebcrypt-ruby/bcrypt-ruby#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix env url by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/294\"\u003ebcrypt-ruby/bcrypt-ruby#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.22 Mar 18 2026\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CVE-2026-33306] Fix integer overflow in Java extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/831ce64cb0a9502130fa93a28bfd9527a5fa45c4\"\u003e\u003ccode\u003e831ce64\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/32e687ec5f62baad01a62e4634e41d97f8432a61\"\u003e\u003ccode\u003e32e687e\u003c/code\u003e\u003c/a\u003e bump version update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/5faa2748331d3edc661c127ef2fbb3afcb6b02a4\"\u003e\u003ccode\u003e5faa274\u003c/code\u003e\u003c/a\u003e Fix integer overflow in JRuby BCrypt rounds calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/aafc0332ac1aa0d774f2c864439596436f92d18d\"\u003e\u003ccode\u003eaafc033\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/294\"\u003e#294\u003c/a\u003e from bcrypt-ruby/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01f947a66ad8c5e20d8c89d9adbc7e3bd49afb70\"\u003e\u003ccode\u003e01f947a\u003c/code\u003e\u003c/a\u003e fix env url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/92ca1d67deeb8e64dbe779396c52b177e307bc43\"\u003e\u003ccode\u003e92ca1d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/293\"\u003e#293\u003c/a\u003e from bcrypt-ruby/truffleruby-ci-alt-implementation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/4d1d95b8ec624d0cf8ed1099402a7edd2f308da2\"\u003e\u003ccode\u003e4d1d95b\u003c/code\u003e\u003c/a\u003e Add TruffleRuby in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/36a04a2278fae3b38100912ff489b86cd0984b8a\"\u003e\u003ccode\u003e36a04a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/291\"\u003e#291\u003c/a\u003e from tenderlove/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01cc68835f0bcdd7ef16de477471c112adb417da\"\u003e\u003ccode\u003e01cc688\u003c/code\u003e\u003c/a\u003e Move compilation after bundle install\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.3.2 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.18 to 0.1.20\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/v0.1.20/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.20 / 2026-03-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate host before redirecting HTTP-\u0026gt;HTTPS (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.19 / 2026-03-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5c9dce82aefc5d6afe91c67d3a22daec41d3db3f\"\u003e\u003ccode\u003e5c9dce8\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/bddb1d8779f5096c4d7e7ef181e91930551792db\"\u003e\u003ccode\u003ebddb1d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/120\"\u003e#120\u003c/a\u003e from basecamp/check-tls-domain-for-redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/186b8f5d2d59e2f14c2d41c243131f9dd83da0ba\"\u003e\u003ccode\u003e186b8f5\u003c/code\u003e\u003c/a\u003e Only redirect HTTP-\u0026gt;HTTPS for policy-allowed hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/d925847065b1b207e0298d7bea8ce6be9cf9b600\"\u003e\u003ccode\u003ed925847\u003c/code\u003e\u003c/a\u003e Address PR review feedback from Copilot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b090a2efffd604bd23d10c08a2e1c92efa22d22f\"\u003e\u003ccode\u003eb090a2e\u003c/code\u003e\u003c/a\u003e Validate Host header against TLS domains in HTTP→HTTPS redirect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b47fc5bd5336eaace21481c40b9fbbdff139ebf2\"\u003e\u003ccode\u003eb47fc5b\u003c/code\u003e\u003c/a\u003e ci: harden GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e17d3ee027832548832683d66d1cae77413d16cc\"\u003e\u003ccode\u003ee17d3ee\u003c/code\u003e\u003c/a\u003e Go 1.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/63c08c741e0300526cc770ab124a70d08768a638\"\u003e\u003ccode\u003e63c08c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/112\"\u003e#112\u003c/a\u003e from basecamp/go1.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/aa7d697419ee1f7654bebb217d01f50dcc670f8f\"\u003e\u003ccode\u003eaa7d697\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ego fix\u003c/code\u003e updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8d64ade8273bd056bfc3f60c8484a0e251b9f7ca\"\u003e\u003ccode\u003e8d64ade\u003c/code\u003e\u003c/a\u003e Build with Go 1.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.18...v0.1.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.3.0 to 43.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/releases\"\u003epagy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 43.4.3\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.4.3\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"https://ddnexus.github.io/pagy/changelog\"\u003eCHANGELOG\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eVersion 43\u003c/h3\u003e\n\u003cp\u003eWe needed a leap version to unequivocally signal that it's not just a major version: it's a complete redesign of the legacy code at all levels, usage and API included.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy 43?\u003c/strong\u003e Because it's exactly one step beyond \u003cem\u003e\u0026quot;The answer to the ultimate question of life, the Universe, and everything.\u0026quot;\u003c/em\u003e 😉\u003c/p\u003e\n\u003ch4\u003eImprovements\u003c/h4\u003e\n\u003cp\u003eThis version introduces several enhancements, such as new \u003ccode\u003e:countish\u003c/code\u003e and \u003ccode\u003e:keynav_js\u003c/code\u003e paginators and improved automation and configuration processes, reducing setup requirements by 99%. The update also includes a simpler API and new interactive development tools, making it a comprehensive upgrade from previous versions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/countish\"\u003e:countish\u003c/a\u003e Paginator\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eFaster than OFFSET and supporting the full UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keynav_js\"\u003eKeynav\u003c/a\u003e Pagination\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eThe pagy-exclusive technique using the fastest \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keyset\"\u003ekeyset\u003c/a\u003e pagination alongside all frontend helpers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew interactive dev-tools\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/resources/stylesheets/#pagy-wand\"\u003ePagyWand\u003c/a\u003e to integrate the pagy CSS with your app themes.\u003c/li\u003e\n\u003cli\u003eNew \u003cstrong\u003ePagy AI\u003c/strong\u003e available right inside your own app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntelligent automation\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ddnexus.github.io/pagy/toolbox/configuration/initializer\"\u003eConfiguration\u003c/a\u003e requirements reduced by 99%.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ca href=\"https://ddnexus.github.io/pagy/resources/javascript\"\u003eJavaScript\u003c/a\u003e setup.\u003c/li\u003e\n\u003cli\u003eAutomatic \u003ca href=\"https://ddnexus.github.io/pagy/resources/i18n\"\u003eI18n\u003c/a\u003e loading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/ddnexus/pagy#examples\"\u003eSimpler API\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou solely need the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators\"\u003epagy\u003c/a\u003e method and the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/helpers\"\u003e\u003ccode\u003e@​pagy\u003c/code\u003e\u003c/a\u003e instance to paginate any collection and use any navigation tag and helper.\u003c/li\u003e\n\u003cli\u003eMethods are autoloaded only if used, and consume no memory otherwise.\u003c/li\u003e\n\u003cli\u003eMethods have narrower scopes and can be \u003ca href=\"https://ddnexus.github.io/pagy/guides/how-to#override-pagy-methods\"\u003eoverridden\u003c/a\u003e without deep knowledge.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/guides/quick-start\"\u003edocumentation\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eVery concise, straightforward, and easy to navigate and understand.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrade to 43\u003c/h3\u003e\n\u003cp\u003eSee the \u003ca href=\"https://ddnexus.github.io/pagy/guides/upgrade-guide/\"\u003eUpgrade Guide\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eVersion 43.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/blob/master/docs/CHANGELOG.md\"\u003epagy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch4\u003eVersion 43.4.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge-case for queries with multiple orderings on same column (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize deprecations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImprove stylesheets and docs\u003c/li\u003e\n\u003cli\u003eImprove JavaScript:\n\u003cul\u003e\n\u003cli\u003eAdd sync method and task\u003c/li\u003e\n\u003cli\u003eDeprecate sync_javascript\u003c/li\u003e\n\u003cli\u003eSimplify build, configuration and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix Request#resolve_page with jsonapi, limit, and missing page param (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix pagy-tailwind.css inconsistencies\u003c/li\u003e\n\u003cli\u003eImprove ts/js build process and wand help\u003c/li\u003e\n\u003cli\u003eMove the next_tag into the Pagy class\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement NumericUI module to avoid including the numeric helpers in keynav classes\u003c/li\u003e\n\u003cli\u003eImprove offset accessors and update docs\u003c/li\u003e\n\u003cli\u003eAdd basic RBS\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate assets for a few apps\u003c/li\u003e\n\u003cli\u003eFix pagy.ts /.js input_nav update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/459694048c95cccd27fb940556770b7e881c4a8b\"\u003e\u003ccode\u003e4596940\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/1a3cb7797779f8467c52a03706125327ab328eba\"\u003e\u003ccode\u003e1a3cb77\u003c/code\u003e\u003c/a\u003e Version 43.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/92d940b9b6e747d6eee56cbee3c026554c36969e\"\u003e\u003ccode\u003e92d940b\u003c/code\u003e\u003c/a\u003e 💎 Deprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/e1dcd20201742b325b5ad39181d0c6eab07bce97\"\u003e\u003ccode\u003ee1dcd20\u003c/code\u003e\u003c/a\u003e Polish docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/ce4fe212e1b02f5a5c2af4beed5d3a6ff51075b2\"\u003e\u003ccode\u003ece4fe21\u003c/code\u003e\u003c/a\u003e Move the shared options, readers and exceptions to docs templates for direct ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/36d6d60d6615b4cfd41de1ac98c7bd6b877be9f0\"\u003e\u003ccode\u003e36d6d60\u003c/code\u003e\u003c/a\u003e Improve docs icons, style and content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b715f63e0ea90785d171213114a816d8d0ac8080\"\u003e\u003ccode\u003eb715f63\u003c/code\u003e\u003c/a\u003e Simplify docs layout and content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b07582e53d71382c4dab9ce2ad4fee5c3c00fba9\"\u003e\u003ccode\u003eb07582e\u003c/code\u003e\u003c/a\u003e Docs fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/c67360c1e7eedd159322ae78a0bfffb6aa6e8c83\"\u003e\u003ccode\u003ec67360c\u003c/code\u003e\u003c/a\u003e Remove the \u0026quot;Edit this page\u0026quot; repo link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/b8a23cbe5b64f317f3874fcc607de648f90d56bb\"\u003e\u003ccode\u003eb8a23cb\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.3.0...43.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.2 to 8.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd release age option for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003epolymorphic_name\u003c/code\u003e SQLi false positive (\u003ca href=\"https://github.com/FFederi\"\u003eFredrico Franco\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix logger behavior when loading config files (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2009\"\u003e#2009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle application names with module prefixes (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2011\"\u003e#2011\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.0.4 - 2026-02-26\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eLoad 'date' library for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e8.0.3 - 2026-02-26\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epolymorphic_name\u003c/code\u003e SQLi false positive (Fredrico Franco)\u003c/li\u003e\n\u003cli\u003eFix logger behavior when loading config files\u003c/li\u003e\n\u003cli\u003eHandle application names with module prefixes\u003c/li\u003e\n\u003cli\u003eAdd release age option for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/2e55d45a9770ee570005400df074d18e8fdb8c3a\"\u003e\u003ccode\u003e2e55d45\u003c/code\u003e\u003c/a\u003e Bump to 8.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d6c6c9a54a9d00a04a8b9431593932260618ecd1\"\u003e\u003ccode\u003ed6c6c9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2016\"\u003e#2016\u003c/a\u003e from presidentbeef/fix-ensure-latest-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/56f9324929069b99f0c27a1e90f6c47ddc597edc\"\u003e\u003ccode\u003e56f9324\u003c/code\u003e\u003c/a\u003e Load 'date' for --ensure-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8b644a67c4057dbf0634bc9c533407fc8666f2a7\"\u003e\u003ccode\u003e8b644a6\u003c/code\u003e\u003c/a\u003e Bump to 8.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/08e0a188a9f2cce8f44ee4fbe64a9428e7551b5c\"\u003e\u003ccode\u003e08e0a18\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/a29fe448287769d6ff9953beeecc72afc8abe861\"\u003e\u003ccode\u003ea29fe44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2014\"\u003e#2014\u003c/a\u003e from FFederi/fix-polymorphic-name-false-positive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/61150cf13be684b40cc7ee096b01ff1be7e16409\"\u003e\u003ccode\u003e61150cf\u003c/code\u003e\u003c/a\u003e Fix polymorphic_name false positive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f65d077f7c0d1bf36e252de0aacd74644a333c94\"\u003e\u003ccode\u003ef65d077\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2013\"\u003e#2013\u003c/a\u003e from presidentbeef/better_logger_loading_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c5dcda51e2240b7e279f843c0ef333cc9bfb87fd\"\u003e\u003ccode\u003ec5dcda5\u003c/code\u003e\u003c/a\u003e Fix logger behavior when loading config files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c1d7ccc10f89410860a65f9e76b39deaea99e8dc\"\u003e\u003ccode\u003ec1d7ccc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2012\"\u003e#2012\u003c/a\u003e from presidentbeef/handle_application_config_better\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.2...v8.0.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/ZachGrande/music-theory/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZachGrande%2Fmusic-theory/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-25T20:05:57.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4138182442","node_id":"PR_kwDONdCt3s7NeS1p","number":2539,"state":"open","title":"chore(deps): bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["Dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-25T20:05:57.000Z","updated_at":"2026-04-08T15:33:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.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/DFE-Digital/register-early-career-teachers-public/pull/2539","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFE-Digital%2Fregister-early-career-teachers-public/issues/2539","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2539/packages"}},{"old_version":"1.3.2","new_version":"1.4.0","update_type":"minor","path":null,"pr_created_at":"2026-03-25T16:23:32.000Z","version_change":"1.3.2 → 1.4.0","issue":{"uuid":"4136725552","node_id":"PR_kwDORwnzts7NaLp3","number":3,"state":"closed","title":"Bump solid_queue from 1.3.2 to 1.4.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-25T22:37:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T16:23:32.000Z","updated_at":"2026-03-25T22:37:36.000Z","time_to_close":22441,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_queue","old_version":"1.3.2","new_version":"1.4.0","repository_url":"https://github.com/rails/solid_queue"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_queue](https://github.com/rails/solid_queue) from 1.3.2 to 1.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003cp\u003eThis release includes support for recurring dynamic tasks. Enable by setting this in your \u003ccode\u003equeue.yml\u003c/code\u003e configuration:\u003c/p\u003e\n\u003cpre lang=\"yml\"\u003e\u003ccode\u003escheduler: \r\n  dynamic_tasks_enabled: true\r\n  polling_interval: 1 # optional. Interval in seconds to poll for new recurring tasks. Defaults to 5\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAnd then, schedule recurring tasks dynamically as:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSolidQueue.schedule_recurring_task(\r\n  \u0026quot;my_dynamic_task\u0026quot;,\r\n  class: \u0026quot;MyJob\u0026quot;,\r\n  args: [1, 2],\r\n  schedule: \u0026quot;every 10 minutes\u0026quot;\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis accepts the same options as the YAML configuration: \u003ccode\u003eclass\u003c/code\u003e, \u003ccode\u003eargs\u003c/code\u003e, \u003ccode\u003ecommand\u003c/code\u003e, \u003ccode\u003eschedule\u003c/code\u003e, \u003ccode\u003equeue\u003c/code\u003e, \u003ccode\u003epriority\u003c/code\u003e, and \u003ccode\u003edescription\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eLearn more about this \u003ca href=\"https://github.com/rails/solid_queue?tab=readme-ov-file#scheduling-and-unscheduling-recurring-tasks-dynamically\"\u003ein the README\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd index hint for releasing blocked executions by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/718\"\u003erails/solid_queue#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid an unintended FOR UPDATE query execution inside \u003ccode\u003elock_candidates\u003c/code\u003e by \u003ca href=\"https://github.com/genya0407\"\u003e\u003ccode\u003e@​genya0407\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/720\"\u003erails/solid_queue#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve grammar a little by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDynamic scheduled tasks by \u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\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/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/723\"\u003erails/solid_queue#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cupatea\"\u003e\u003ccode\u003e@​cupatea\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/553\"\u003erails/solid_queue#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/176721e33f542e07923fe02964cd55d2c18b4389\"\u003e\u003ccode\u003e176721e\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3df3de39abc6bd47c00a7a96006fa5ad52b8b678\"\u003e\u003ccode\u003e3df3de3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/solid_queue/issues/553\"\u003e#553\u003c/a\u003e from cupatea/feature/dynamic_recurring_tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/2f142ed9aa72f77289876e323cc30d6a943ca437\"\u003e\u003ccode\u003e2f142ed\u003c/code\u003e\u003c/a\u003e docs: improve grammar a little\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/50defe25e298e42a2acc429d294b62cb0f3b3cf7\"\u003e\u003ccode\u003e50defe2\u003c/code\u003e\u003c/a\u003e Avoid unintended FOR UPDATE query execution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3b490add2cd4de885269ff31682ec1519758ffb9\"\u003e\u003ccode\u003e3b490ad\u003c/code\u003e\u003c/a\u003e Merge right value of \u003ccode\u003estatic\u003c/code\u003e correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/7ded7101b97b41552a241ba3b3b562b961250a96\"\u003e\u003ccode\u003e7ded710\u003c/code\u003e\u003c/a\u003e Avoid extra queries for dynamic tasks for process metadata and procline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b4f7c99ac3a1c2436e2accbad737eedeba94dbc3\"\u003e\u003ccode\u003eb4f7c99\u003c/code\u003e\u003c/a\u003e Clean a bit top-level SolidQueue methods to manage dynamic tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/3d36ca4acb327cc51dd5da5c57f4b2d2951c7c8a\"\u003e\u003ccode\u003e3d36ca4\u003c/code\u003e\u003c/a\u003e Simplify recurring schedule with respect to dynamic task reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/b012535ae46acba69b74be1a248a43d598e2f6d7\"\u003e\u003ccode\u003eb012535\u003c/code\u003e\u003c/a\u003e Refactor scheduler loop and add missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/f7e39b5911cfe965a4d3b010138142763858fd69\"\u003e\u003ccode\u003ef7e39b5\u003c/code\u003e\u003c/a\u003e Read static from options in from_configuration and rename to dynamic_tasks_en...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.3.2...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_queue\u0026package-manager=bundler\u0026previous-version=1.3.2\u0026new-version=1.4.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/akitaonrails/frank_investigator/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/akitaonrails%2Ffrank_investigator/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}}]}