{"id":18723,"name":"oban","ecosystem":"hex","repository_url":"https://github.com/oban-bg/oban","issues_count":35,"created_at":"2025-06-07T01:26:40.073Z","updated_at":"2025-06-07T01:26:40.073Z","purl":"pkg:hex/oban","metadata":{"id":3697112,"name":"oban","ecosystem":"hex","description":"Robust job processing, backed by modern PostgreSQL, SQLite3, and MySQL.","homepage":"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md","licenses":"https://github.com/oban-bg/oban","normalized_licenses":["Other"],"repository_url":"https://github.com/oban-bg/oban","keywords_array":[],"namespace":null,"versions_count":97,"first_release_published_at":"2019-03-10T21:24:21.211Z","latest_release_published_at":"2025-03-25T16:12:27.823Z","latest_release_number":"2.19.4","last_synced_at":"2025-06-07T09:31:18.717Z","created_at":"2022-04-11T11:47:58.438Z","updated_at":"2025-06-07T09:31:18.717Z","registry_url":"https://hex.pm/packages/oban/","install_command":"mix hex.package fetch oban ","documentation_url":"http://hexdocs.pm/oban/","metadata":{},"repo_metadata":{"id":37458351,"uuid":"172532184","full_name":"oban-bg/oban","owner":"oban-bg","description":"💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3","archived":false,"fork":false,"pushed_at":"2024-09-02T16:36:25.000Z","size":2699,"stargazers_count":3267,"open_issues_count":6,"forks_count":307,"subscribers_count":43,"default_branch":"main","last_synced_at":"2024-09-07T20:18:15.938Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://getoban.pro","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oban-bg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://getoban.pro"]}},"created_at":"2019-02-25T15:29:11.000Z","updated_at":"2024-09-07T06:48:42.000Z","dependencies_parsed_at":"2022-08-08T20:30:18.650Z","dependency_job_id":"68e97853-2734-4e45-9343-925db0e70129","html_url":"https://github.com/oban-bg/oban","commit_stats":{"total_commits":1132,"total_committers":140,"mean_commits":8.085714285714285,"dds":"0.30300353356890464","last_synced_commit":"2eba8c4fe96726081f091aae415e8df45052adcf"},"previous_names":["sorentwo/oban"],"tags_count":91,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oban-bg","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":218154146,"owners_count":16285921,"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":"oban-bg","name":"Oban Framework","uuid":"180190783","kind":"organization","description":"","email":null,"website":"https://oban.pro","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/180190783?v=4","repositories_count":1,"last_synced_at":"2024-09-06T20:14:22.541Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/oban-bg","funding_links":[],"total_stars":3266,"followers":0,"following":0,"created_at":"2024-09-06T20:14:22.552Z","updated_at":"2024-09-06T20:14:22.552Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oban-bg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oban-bg/repositories"},"tags":[{"name":"v2.18.2","sha":"65d75e0b94c5ca99538cb4a1bc45df2d88e638f0","kind":"commit","published_at":"2024-08-16T15:21:59.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.18.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.2/manifests"},{"name":"v2.18.1","sha":"141f403e2a735b904bdbeeace55d338b25d2ab8e","kind":"commit","published_at":"2024-08-15T13:33:07.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.18.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.1/manifests"},{"name":"v2.18.0","sha":"baf685166c2d3c06a65cbffe2341ef154344c979","kind":"commit","published_at":"2024-07-26T12:40:48.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.18.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.18.0/manifests"},{"name":"v2.17.12","sha":"bd2892d656f8bd63e196f95e162db9d344ed941b","kind":"commit","published_at":"2024-06-28T13:33:28.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.12","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.12/manifests"},{"name":"v2.17.11","sha":"fb07db639408ae1816833a66da4c7f1552d6180f","kind":"commit","published_at":"2024-06-25T15:23:06.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.11","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.11/manifests"},{"name":"v2.17.10","sha":"abcffec502d9faa11c2e9d3aac1fd32d131c1ea4","kind":"commit","published_at":"2024-04-26T17:35:49.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.10","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.10/manifests"},{"name":"v2.17.9","sha":"63b07513c46cf75f58d4f5d111ac83a9a80ad281","kind":"commit","published_at":"2024-04-20T11:15:30.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.9","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.9/manifests"},{"name":"v2.17.8","sha":"2fbf4e2ff3022e0fa0ca1c279bd3cd05cdc735f8","kind":"commit","published_at":"2024-04-07T18:23:17.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.8","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.8/manifests"},{"name":"v2.17.7","sha":"8ae1188eee8521cb319d690da8ee2f60917643cf","kind":"commit","published_at":"2024-03-25T08:53:21.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.7","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.7/manifests"},{"name":"v2.17.6","sha":"25b6481c6d4a138df4b07e62875447123f3dd4c6","kind":"commit","published_at":"2024-03-01T15:58:12.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.6","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.6/manifests"},{"name":"v2.17.5","sha":"febfc63d8e7afab62ab9a0da9c782d6374f4a752","kind":"commit","published_at":"2024-02-25T22:05:18.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.5","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.5/manifests"},{"name":"v2.17.4","sha":"30681987dd10ab78bbf094613b2864713f89e917","kind":"commit","published_at":"2024-02-16T14:36:59.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.4","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.4/manifests"},{"name":"v2.17.3","sha":"8f119037c936e8d52f9ed74fe89fed020da5bfa9","kind":"commit","published_at":"2024-01-23T20:43:01.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.3/manifests"},{"name":"v2.17.2","sha":"a9abb6eac478730ae7091259951b28e9237615be","kind":"commit","published_at":"2024-01-11T16:49:10.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.2/manifests"},{"name":"v2.17.1","sha":"52749bf7ccdab173b209deea6c5a1c22769f6367","kind":"commit","published_at":"2023-12-11T14:56:33.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.1/manifests"},{"name":"v2.17.0","sha":"3705af3914824f2756d14a55dce8f7c248cbc27f","kind":"commit","published_at":"2023-12-08T19:42:57.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.17.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.17.0/manifests"},{"name":"v2.16.3","sha":"966ee77974132f151fdba1e4d1b1a006e387af23","kind":"commit","published_at":"2023-10-26T14:00:57.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.16.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.3/manifests"},{"name":"v2.16.2","sha":"b3b2bddf2592561e3136ba5a65c0e8d08a0f98e3","kind":"commit","published_at":"2023-10-03T18:06:30.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.16.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.2/manifests"},{"name":"v2.16.1","sha":"ba57629f9fb5ed20b3f15bb9be6dc7ce4ce30cfa","kind":"commit","published_at":"2023-09-25T15:48:19.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.16.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.1/manifests"},{"name":"v2.16.0","sha":"ad03ba3584f3b7624e64a2e5603ef05e2a4a252c","kind":"commit","published_at":"2023-09-22T17:58:20.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.16.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.16.0/manifests"},{"name":"v2.15.4","sha":"8acfe4dcfb3e55bbf233aa8f81a8300de269d9f0","kind":"commit","published_at":"2023-08-07T19:45:01.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.15.4","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.4/manifests"},{"name":"v2.15.3","sha":"6e12c98fd3dd8d48246f3ce6e28fbdd4e24dd7cd","kind":"commit","published_at":"2023-08-04T16:34:37.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.15.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.3/manifests"},{"name":"v2.15.2","sha":"68dbebfb424c0fefaa350d8421914d93f1f6e226","kind":"commit","published_at":"2023-06-22T13:38:15.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.15.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.2/manifests"},{"name":"v2.15.1","sha":"2bb6ca7b6d083a13c5989c9e989472877d6cc049","kind":"commit","published_at":"2023-05-11T17:33:19.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.15.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.1/manifests"},{"name":"v2.15.0","sha":"08d9f2e236c2b2919c02384acc29bab09c88dcbb","kind":"commit","published_at":"2023-04-12T12:35:30.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.15.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.15.0/manifests"},{"name":"v2.14.2","sha":"fe1635733561248ea1658598fc22bf0222f75e11","kind":"commit","published_at":"2023-02-17T18:26:50.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.14.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.2/manifests"},{"name":"v2.14.1","sha":"142d1700c320ae18cb3919943ac25514c213badc","kind":"commit","published_at":"2023-01-26T22:09:01.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.14.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.1/manifests"},{"name":"v2.14.0","sha":"85a4cef7fab0670d386a140c0360a36ea2cc355c","kind":"commit","published_at":"2023-01-26T14:13:52.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.14.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.14.0/manifests"},{"name":"v2.13.6","sha":"e1a3cf84bcbb6c3b14f125b8549cd7b5f4841569","kind":"commit","published_at":"2022-11-28T14:01:09.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.6","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.6/manifests"},{"name":"v2.13.5","sha":"4447f4fb88eb063e8287f48b58d6b318af9cb99b","kind":"commit","published_at":"2022-11-14T14:39:01.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.5","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.5/manifests"},{"name":"v2.13.4","sha":"987d495ea435846653978e4f307f27d0d526315a","kind":"commit","published_at":"2022-09-23T14:08:33.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.4","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.4/manifests"},{"name":"v2.13.3","sha":"a4d848e0f7701ffcb2c605c9cc81e64fab10934f","kind":"commit","published_at":"2022-09-07T14:47:21.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.3/manifests"},{"name":"v2.13.2","sha":"cba6e003ffc207fd411d39ac160d14cfc04dd90c","kind":"commit","published_at":"2022-08-19T15:13:49.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.2/manifests"},{"name":"v2.13.1","sha":"ca4c9f44ffb60473d91a9e3fa19d8134ec50c25f","kind":"commit","published_at":"2022-08-09T18:17:06.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.1/manifests"},{"name":"v2.13.0","sha":"f9113462afd5fd92a5b23409847e74ea84c20dde","kind":"commit","published_at":"2022-07-21T15:32:50.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.13.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.13.0/manifests"},{"name":"v2.12.1","sha":"fdeb0001bbacb60c4686b86ca0610c7f7508d357","kind":"commit","published_at":"2022-05-24T18:21:38.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.12.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.12.1/manifests"},{"name":"v2.12.0","sha":"9b4861354f0189d548f4d5cd89273bc98f8eaede","kind":"commit","published_at":"2022-04-21T21:52:55.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.12.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.12.0/manifests"},{"name":"v2.11.3","sha":"0d4cf0f49ed2a4a0c5e2305f049d2d8320bb85f9","kind":"commit","published_at":"2022-03-23T22:02:36.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.11.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.3/manifests"},{"name":"v2.11.2","sha":"4151782a2f2c39d426b0391037294f5bb06e95ae","kind":"commit","published_at":"2022-02-25T20:22:06.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.11.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.2/manifests"},{"name":"v2.11.1","sha":"43a54a2a0c76b84543a2de106674a8dc2b46c997","kind":"commit","published_at":"2022-02-24T21:57:45.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.11.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.1/manifests"},{"name":"v2.11.0","sha":"7d65978fcecb4c084b3e6e5113fc6a0c158fd01e","kind":"commit","published_at":"2022-02-13T15:44:44.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.11.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.11.0/manifests"},{"name":"v2.10.1","sha":"79b1f17335ecaa8d873ed2aef70a2a359086e002","kind":"commit","published_at":"2021-11-09T22:11:30.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.10.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.10.1/manifests"},{"name":"v2.10.0","sha":"3ef7e777c132631ad4fe2998bf10e38c3c034488","kind":"commit","published_at":"2021-11-09T21:19:33.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.10.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.10.0/manifests"},{"name":"v2.9.2","sha":"43e68742736a885078a18999781f8376210c62d8","kind":"commit","published_at":"2021-09-27T19:42:26.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.9.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.2/manifests"},{"name":"v2.9.1","sha":"2f9ea8353e97aea7fcbfead92ba96b65a4a29316","kind":"commit","published_at":"2021-09-23T13:04:22.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.9.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.1/manifests"},{"name":"v2.9.0","sha":"de7b21b72c4bc77a77ce7324dd286d39c3fb0c63","kind":"commit","published_at":"2021-09-15T19:49:23.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.9.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.9.0/manifests"},{"name":"v2.8.0","sha":"b5a61eaa0e9009932a6bcd473f35d92a7a963db0","kind":"commit","published_at":"2021-07-30T17:29:16.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.8.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.8.0/manifests"},{"name":"v2.7.2","sha":"ce36b7638b4200e93d2bd4f8505eb0eb2899db05","kind":"commit","published_at":"2021-06-10T19:45:48.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.7.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.2/manifests"},{"name":"v2.7.1","sha":"61ee677efefa337ff1e3a5f0f05844219578668a","kind":"commit","published_at":"2021-05-26T15:21:14.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.7.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.1/manifests"},{"name":"v2.7.0","sha":"4e7ca86371722762d5bd620a43dba6c8df7b2dde","kind":"commit","published_at":"2021-05-25T18:08:12.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.7.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.7.0/manifests"},{"name":"v2.6.1","sha":"4aff949872e0c9f4e623139350e6b8b94d6e1c2e","kind":"commit","published_at":"2021-04-02T15:56:58.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.6.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.6.1/manifests"},{"name":"v2.6.0","sha":"ed952aea30d04cd1dda8b6c9ef0241776aa2e33c","kind":"commit","published_at":"2021-04-02T15:28:22.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.6.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.6.0/manifests"},{"name":"v2.5.0","sha":"2ee44412f8ed3b5940017131eb29bf5296a7cf55","kind":"commit","published_at":"2021-02-26T16:36:54.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.5.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.5.0/manifests"},{"name":"v2.4.3","sha":"054d430439149a688b7fe2361f1afc5afe811a1a","kind":"commit","published_at":"2021-02-07T13:53:16.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.4.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.3/manifests"},{"name":"v2.4.2","sha":"795553b5d452f3ec6be6203b60f20b2171bd4b01","kind":"commit","published_at":"2021-01-28T16:38:05.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.4.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.2/manifests"},{"name":"v2.4.1","sha":"147b588b1010d3f6afc736091e3108f12ae02246","kind":"commit","published_at":"2021-01-27T15:04:47.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.4.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"a9b602491bd5ccfdf59b8e330d9565374c7406e8","kind":"commit","published_at":"2021-01-26T15:59:26.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.4.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.4.0/manifests"},{"name":"v2.3.4","sha":"68af3f23469f2f58ef6e1eab1068167ea4eb5e27","kind":"commit","published_at":"2020-12-02T17:06:48.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.3.4","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.4/manifests"},{"name":"v2.3.3","sha":"dc6a0a2f78d250d2cebeb8ec8a9fe43af77f34a8","kind":"commit","published_at":"2020-11-10T13:48:26.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.3.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.3/manifests"},{"name":"v2.3.2","sha":"4292610b49252afb087238487c16482d918be685","kind":"commit","published_at":"2020-11-06T16:03:49.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.3.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"91009dff40bd12af14d8d214469fdee49570603c","kind":"commit","published_at":"2020-11-06T15:04:19.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.3.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"6d5c2d1e42d8d84e8ebd36359c64408dfe333128","kind":"commit","published_at":"2020-11-06T13:52:40.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.3.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"a3525ebb6fd530177df48fbd81d840ab9c05a901","kind":"commit","published_at":"2020-10-10T19:36:10.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.2.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"9dfc5cdb9f602eec4a8e6fe40b9b274eb4d6fd88","kind":"commit","published_at":"2020-08-21T13:00:07.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.1.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"2573846c672d8b9793e49e7de5100af0b095599a","kind":"commit","published_at":"2020-07-10T14:58:16.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.0.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0/manifests"},{"name":"v2.0.0-rc.3","sha":"566f0f68f77c3d8124acff84e2866e62cdfbf4dd","kind":"commit","published_at":"2020-07-01T17:17:39.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.0.0-rc.3","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.0.0-rc.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.3/manifests"},{"name":"v2.0.0-rc.2","sha":"50d9cc28fbaa0d799d5c645d603659086165cdb0","kind":"commit","published_at":"2020-06-23T18:11:47.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.0.0-rc.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.0.0-rc.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.2/manifests"},{"name":"v2.0.0-rc.1","sha":"4ab1fd70ecc10ff4aad6b0c9b63e612ff65377c3","kind":"commit","published_at":"2020-06-12T15:09:08.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.0.0-rc.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.0.0-rc.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.1/manifests"},{"name":"v2.0.0-rc.0","sha":"01c809920fc514f639ac33f5affe753426bb6caf","kind":"commit","published_at":"2020-06-03T20:38:07.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v2.0.0-rc.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v2.0.0-rc.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v2.0.0-rc.0/manifests"},{"name":"v1.2.0","sha":"9b1a6edfec2a4d225ab6969f8886dc021e2df34c","kind":"commit","published_at":"2020-03-05T15:36:47.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v1.2.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"e8477152cd984eeabe2a82ed6999eafe0079faaf","kind":"commit","published_at":"2020-02-17T19:40:24.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v1.1.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"2cfbb012b99bab34bf710e3ca2563d003e8df39d","kind":"commit","published_at":"2020-01-29T11:26:32.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v1.0.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0/manifests"},{"name":"v1.0.0-rc.2","sha":"a16b14ff99d35349c188dcd267ef49070907570c","kind":"commit","published_at":"2020-01-22T21:13:18.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v1.0.0-rc.2","html_url":"https://github.com/oban-bg/oban/releases/tag/v1.0.0-rc.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0-rc.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0-rc.2/manifests"},{"name":"v1.0.0-rc.1","sha":"7fdd2f79a9cad9377588468fff759eb7f2e47973","kind":"commit","published_at":"2020-01-21T12:02:59.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v1.0.0-rc.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v1.0.0-rc.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0-rc.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v1.0.0-rc.1/manifests"},{"name":"v0.12.1","sha":"193f2980e696b72a2929f7086225fb6af2a49f59","kind":"commit","published_at":"2019-12-13T23:22:47.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.12.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.12.1/manifests"},{"name":"v0.12.0","sha":"2f2bb36aeecf6580541b901e1d653ed97d668231","kind":"commit","published_at":"2019-11-26T15:59:01.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.12.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.12.0/manifests"},{"name":"v0.11.1","sha":"2f012bad5f6fdb2bdf972c540aab00b4b349d23c","kind":"commit","published_at":"2019-11-13T07:41:34.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.11.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.11.1/manifests"},{"name":"v0.11.0","sha":"d63d6b5eff8a5f380be9991ca101afeb81e41638","kind":"commit","published_at":"2019-11-06T14:00:53.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.11.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.11.0/manifests"},{"name":"v0.10.1","sha":"603dd23ca0f20694256f68e437a02ef112bdbb28","kind":"commit","published_at":"2019-10-08T14:08:22.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.10.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"87c94cd0f64afcef470164ddc7bbf0976b16ea51","kind":"commit","published_at":"2019-10-04T00:20:38.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.10.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.10.0/manifests"},{"name":"v0.9.0","sha":"48bf9942a8028a7b89c141826cd3428103a93839","kind":"commit","published_at":"2019-09-20T14:58:19.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.9.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.9.0/manifests"},{"name":"v0.8.1","sha":"7006f430e98093179825ddfe00e86ac0d9c0c24c","kind":"commit","published_at":"2019-09-11T14:37:40.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.8.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"0489a7c4f150cba1f66a18eb31bab63eec7ed0fc","kind":"commit","published_at":"2019-09-06T18:44:16.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.8.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.8.0/manifests"},{"name":"v0.7.1","sha":"2a61c02e634430380ceebb5f679918f89167310f","kind":"commit","published_at":"2019-08-15T15:08:17.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.7.1","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"128f2d3971d4047a804b72cb9b493ccd3a0e0ef6","kind":"commit","published_at":"2019-08-08T19:39:28.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.7.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"939e9a2933a272e77f07464ee10d9ce1ff4fdc3e","kind":"commit","published_at":"2019-07-26T13:50:28.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.6.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"5817d46a0f4482a3a63d61b016ce7173111cdd3b","kind":"commit","published_at":"2019-06-27T18:49:47.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.5.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"57ac4be7d0b19df929f60a4c9f75c8dd6463aa24","kind":"commit","published_at":"2019-06-10T21:19:03.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.4.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"4659722d6970f90c6b9f134ac5661ff82e9fa97d","kind":"commit","published_at":"2019-05-29T15:49:27.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.3.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"0d7115fbf5e344878e0d2ac840ea8f84c2bcf26b","kind":"commit","published_at":"2019-05-15T13:28:02.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.2.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"250b27324106b7f5b41a79279eba6dee76dc9bae","kind":"commit","published_at":"2019-03-10T21:15:37.000Z","download_url":"https://codeload.github.com/oban-bg/oban/tar.gz/v0.1.0","html_url":"https://github.com/oban-bg/oban/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oban-bg%2Foban/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-09-08T14:29:15.534Z","dependent_packages_count":15,"downloads":18225531,"downloads_period":"total","dependent_repos_count":201,"rankings":{"downloads":1.3364779874213837,"dependent_repos_count":0.9827044025157232,"dependent_packages_count":1.5592243186582808,"stargazers_count":0.1899895178197065,"forks_count":0.42583857442348005,"docker_downloads_count":1.225104821802935,"average":0.9532232704402516},"purl":"pkg:hex/oban","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hex/oban","docker_dependents_count":2,"docker_downloads_count":689,"usage_url":"https://repos.ecosyste.ms/usage/hex/oban","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hex/oban/dependencies","status":null,"funding_links":["https://getoban.pro"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/oban/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/oban/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/oban/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/oban/related_packages","maintainers":[{"uuid":"sorentwo","login":"sorentwo","name":null,"email":"parker@sorentwo.com","url":null,"packages_count":11,"html_url":"https://hex.pm/users/sorentwo","role":null,"created_at":"2022-11-08T13:22:27.257Z","updated_at":"2022-11-08T13:22:27.257Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/maintainers/sorentwo/packages"}],"registry":{"name":"hex.pm","url":"https://hex.pm","ecosystem":"hex","default":true,"packages_count":18023,"maintainers_count":6818,"namespaces_count":0,"keywords_count":6092,"github":"hexpm","metadata":{"funded_packages_count":1266},"icon_url":"https://github.com/hexpm.png","created_at":"2022-04-04T15:19:23.014Z","updated_at":"2025-06-07T05:39:04.497Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/namespaces"}},"unique_repositories_count":21,"unique_repositories_count_past_30_days":5,"recent_issues":[{"uuid":"4499426716","node_id":"PR_kwDORaEq3M7eLqvw","number":215,"state":"open","title":"chore(deps): bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T02:50:37.000Z","updated_at":"2026-05-22T20:31:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/engram-app/Engram/pull/215","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/engram-app%2FEngram/issues/215","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/215/packages"},{"uuid":"4425127430","node_id":"PR_kwDOQRuEzM7ad766","number":13,"state":"open","title":"Bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T23:53:19.000Z","updated_at":"2026-05-17T09:42:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/dimamik/phenom/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimamik%2Fphenom/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"4398206648","node_id":"PR_kwDOSK8CMc7ZHQ79","number":14,"state":"closed","title":"chore(deps): bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T00:01:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T10:58:57.000Z","updated_at":"2026-05-09T00:01:50.000Z","time_to_close":133365,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/szTheory/lockspire/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/szTheory%2Flockspire/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4366678576","node_id":"PR_kwDOKESEYM7XiF-a","number":111,"state":"open","title":"Bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T21:07:05.000Z","updated_at":"2026-05-02T02:21:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.21.1\u0026new-version=2.22.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/evilmarty/oban_live_dashboard/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilmarty%2Foban_live_dashboard/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"},{"uuid":"4349025244","node_id":"PR_kwDOGhKp_c7Wogeh","number":420,"state":"closed","title":"Bump oban from 2.21.1 to 2.22.0 in /worker","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-01T09:43:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T08:35:08.000Z","updated_at":"2026-05-01T09:44:01.000Z","time_to_close":176931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/oban-bg/oban"}],"path":"/worker","ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; limit(10)\r\n|\u0026gt; Oban.cancel_all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e📡 Smarter Sonar Pings\u003c/h2\u003e\n\u003cp\u003eSonar, the notifier monitor, used to ping every 5 seconds from every node. That resulted in 120 messages a minute to confirm connectivity, even in a stable environment.\u003c/p\u003e\n\u003cp\u003ePings are now status-aware and back off when the cluster is quiet. A solitary node settles to one ping a minute. A clustered group scales the per-node interval with peer count, so aggregate traffic stays roughly constant as the cluster grows.\u003c/p\u003e\n\u003cp\u003eThere is no configuration required. When a node joins, drops, or recovers, pings snap back to the fast cadence immediately.\u003c/p\u003e\n\u003ch2\u003e🧪 Migration Checks at Startup\u003c/h2\u003e\n\u003cp\u003eWhen Oban boots in a testing mode, it now verifies that the \u003ccode\u003eoban_jobs\u003c/code\u003e table exists and that the migration version is current. A missing or outdated migration fails fast with an actionable message instead of surfacing later as cryptic database errors mid-test.\u003c/p\u003e\n\u003cp\u003eFor example, forgetting to run the v2.21 migration after upgrading would previously fail somewhere deep in a test with an enum mismatch on the new \u003ccode\u003esuspended\u003c/code\u003e state. Now Oban refuses to start:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e** (RuntimeError) Oban migrations are outdated. Found version 12, but version 13 is required.\r\n\u003cpre\u003e\u003ccode\u003eRun migrations to update:\r\n\r\n    mix ecto.migrate\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThe check is limited to \u003ccode\u003etesting\u003c/code\u003e mode and geared toward catching migration requirements before they hit production.\u003c/p\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Add \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.Job.query/1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIntroduce \u003ccode\u003eOban.Job.query/1\u003c/code\u003e, a keyword-based builder that composes Ecto queryable from a small\nset of field filters. Scalar values become equality matches, lists become \u003ccode\u003eIN\u003c/code\u003e matches, atoms\nare coerced, and \u003ccode\u003eargs\u003c/code\u003e or \u003ccode\u003emeta\u003c/code\u003e are compiled to a containment check.\u003c/p\u003e\n\u003cp\u003eThat pairs with \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e, a thin function that runs any queryable through the\nconfigured repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Verify migrations at startup in testing mode\u003c/p\u003e\n\u003cp\u003eWhen Oban starts in a testing mode, it now verifies that migrations have been run and are up to\ndate. This catches migration issues early in CI rather than failing with confusing database\nerrors during test execution or worse, in production.\u003c/p\u003e\n\u003cp\u003eFor Postgres, the check verifies the migration version is current, while for SQLite and MySQL,\nthe check verifies the \u003ccode\u003eoban_jobs\u003c/code\u003e table exists.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sonar] Reduce ping rate with status-aware intervals\u003c/p\u003e\n\u003cp\u003eSonar previously pinged every 5s regardless of cluster state, which is aggressive for systems\nwhere nothing is changing. It now walks between a min and max interval, resetting on any status\nchange and otherwise backing off toward a status driven target:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:clustered\u003c/code\u003e scales with peer count so aggregate traffic stays ~1 ping per \u003ccode\u003emin_interval\u003c/code\u003e\nregardless of cluster size\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:solitary\u003c/code\u003e drifts to the max interval, since its only job is verifying the notifier channel\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:isolated\u003c/code\u003e and \u003ccode\u003e:unknown\u003c/code\u003e stay at \u003ccode\u003emin_interval\u003c/code\u003e to keep recovery probes\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStale-node pruning now uses an absolute window (default 120s) instead of a multiple of the\ncurrent interval, and scheduled pings are jittered to avoid synchronizing nodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] The Repo retry behavior is now compile-time configurable, partially for\ntesting purposes, but also to allow tweaking the internal retry behavior\nbased on system requirements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Allow disabling \u003ccode\u003etransaction/3\u003c/code\u003e retries\u003c/p\u003e\n\u003cp\u003ePass \u003ccode\u003eretry: 0\u003c/code\u003e or \u003ccode\u003eretry: false\u003c/code\u003e to skip retries entirely, including for expected conflicts\nlike deadlocks and serialization failures. This is intended for callers invoking queries like\n\u003ccode\u003eOban.insert/2\u003c/code\u003e from within an existing transaction, where a retry inside a savepoint would mask\nthe real error from the outer transaction.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Stager] Notify queues regardless of staging success\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/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ca63f655b57eee217abd8c82de7aa7205b647d74\"\u003e\u003ccode\u003eca63f65\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.17 to 1.7.18 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1444\"\u003e#1444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3b5255c74cd131435856e6c0a42c8612cbf06698\"\u003e\u003ccode\u003e3b5255c\u003c/code\u003e\u003c/a\u003e Fix syntax error in validate function in Oban.Plugin (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1443\"\u003e#1443\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/9dd5106229ef3502ae5dce141c49d04221c44149\"\u003e\u003ccode\u003e9dd5106\u003c/code\u003e\u003c/a\u003e Fix duplicate pid accumulation in Notifier.Postgres put_channels/3 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1441\"\u003e#1441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/cbd74ab67fc388a7091a0f115199e715e176277e\"\u003e\u003ccode\u003ecbd74ab\u003c/code\u003e\u003c/a\u003e Allow disabling transaction/3 retries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0c23e68397e907715a7502a9e53faa638382f538\"\u003e\u003ccode\u003e0c23e68\u003c/code\u003e\u003c/a\u003e Shift UndefinedFunctionError handling into Repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0a5aa17229569b6a6df49f810aa2e5bc0fc27e30\"\u003e\u003ccode\u003e0a5aa17\u003c/code\u003e\u003c/a\u003e Reduce Sonar ping rate with status-aware intervals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c999e48164d3b750c050fc851fa44cace078d0d4\"\u003e\u003ccode\u003ec999e48\u003c/code\u003e\u003c/a\u003e Handle containment filtering on args/meta\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.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=oban\u0026package-manager=hex\u0026previous-version=2.21.1\u0026new-version=2.22.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/Tornium/tornium/pull/420","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tornium%2Ftornium/issues/420","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/420/packages"},{"uuid":"3915923078","node_id":"PR_kwDOQs46Ys7CdWu0","number":15,"state":"closed","title":"chore(hex): bump oban from 2.20.2 to 2.20.3","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-15T11:43:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T11:32:49.000Z","updated_at":"2026-04-15T11:43:53.000Z","time_to_close":5616655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(hex)","packages":[{"name":"oban","old_version":"2.20.2","new_version":"2.20.3","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.2 to 2.20.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw number of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one was actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now the \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a function message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop invalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO blocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an unsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones automatically. Without a compatible repo, it displays an error message listing the found repos and their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly against UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used, could be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried properly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing databases. This is a more accurate query that was avoided before because it didn't match the \u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3 — 2025-01-22\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw\nnumber of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one\nwas actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now\nthe \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a\nfunction message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop\ninvalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO\nblocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an\nunsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones\nautomatically. Without a compatible repo, it displays an error message listing the found repos\nand their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly\nagainst UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used,\ncould be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried\nproperly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing\ndatabases. This is a more accurate query that was avoided before because it didn't match the\n\u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/commit/584e86a8515b7cb8d6eff2f148fb880529fc68f8\"\u003e\u003ccode\u003e584e86a\u003c/code\u003e\u003c/a\u003e Release v2.20.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3494d8e69e8776201c3e28cc151ba14072c1e5ae\"\u003e\u003ccode\u003e3494d8e\u003c/code\u003e\u003c/a\u003e Use more efficient map_join for unsupported list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/385f68febe5a38b725fee3a511c4795c8eb350de\"\u003e\u003ccode\u003e385f68f\u003c/code\u003e\u003c/a\u003e Prevent installer crash with unsupported adapters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f9520e273e38f3efeb97bca2c3661b8ea4fd5583\"\u003e\u003ccode\u003ef9520e2\u003c/code\u003e\u003c/a\u003e Fix dropping invalid indexes from the reindexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c66526810ad1b57b742e68d7c13f7a04b121875f\"\u003e\u003ccode\u003ec665268\u003c/code\u003e\u003c/a\u003e Allow snoozing jobs by returning a tuple period (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e9f242f650291f0d6faf6c01a0bf34c20c1d0213\"\u003e\u003ccode\u003ee9f242f\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/68ec0a639d03a43205c55563a82dc939938f8d73\"\u003e\u003ccode\u003e68ec0a6\u003c/code\u003e\u003c/a\u003e Clean up oban pro section to include descriptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/7554bd9e5e61fcfb87842fbc64fa9951fbada9f7\"\u003e\u003ccode\u003e7554bd9\u003c/code\u003e\u003c/a\u003e Bump the development-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8e606c243efb9aae503893b9a34ff3cb1251d7d6\"\u003e\u003ccode\u003e8e606c2\u003c/code\u003e\u003c/a\u003e Bump ecto_sql from 3.13.2 to 3.13.3 in the production-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ce657120ab65c09bb5357166c7207f11786f08ae\"\u003e\u003ccode\u003ece65712\u003c/code\u003e\u003c/a\u003e Better sqlite timestamp default and pruning query\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.2...v2.20.3\"\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=oban\u0026package-manager=hex\u0026previous-version=2.20.2\u0026new-version=2.20.3)](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/benzlokzik/typster/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/benzlokzik%2Ftypster/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"3846439832","node_id":"PR_kwDOGhKp_c6-4O3K","number":378,"state":"closed","title":"Bump oban from 2.20.2 to 2.20.3 in /worker","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-23T18:58:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-23T08:34:45.000Z","updated_at":"2026-01-23T18:58:04.000Z","time_to_close":37397,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.20.2","new_version":"2.20.3","repository_url":"https://github.com/oban-bg/oban"}],"path":"/worker","ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.2 to 2.20.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3 — 2025-01-22\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw\nnumber of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one\nwas actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now\nthe \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a\nfunction message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop\ninvalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO\nblocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an\nunsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones\nautomatically. Without a compatible repo, it displays an error message listing the found repos\nand their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly\nagainst UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used,\ncould be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried\nproperly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing\ndatabases. This is a more accurate query that was avoided before because it didn't match the\n\u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/commit/584e86a8515b7cb8d6eff2f148fb880529fc68f8\"\u003e\u003ccode\u003e584e86a\u003c/code\u003e\u003c/a\u003e Release v2.20.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3494d8e69e8776201c3e28cc151ba14072c1e5ae\"\u003e\u003ccode\u003e3494d8e\u003c/code\u003e\u003c/a\u003e Use more efficient map_join for unsupported list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/385f68febe5a38b725fee3a511c4795c8eb350de\"\u003e\u003ccode\u003e385f68f\u003c/code\u003e\u003c/a\u003e Prevent installer crash with unsupported adapters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f9520e273e38f3efeb97bca2c3661b8ea4fd5583\"\u003e\u003ccode\u003ef9520e2\u003c/code\u003e\u003c/a\u003e Fix dropping invalid indexes from the reindexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c66526810ad1b57b742e68d7c13f7a04b121875f\"\u003e\u003ccode\u003ec665268\u003c/code\u003e\u003c/a\u003e Allow snoozing jobs by returning a tuple period (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e9f242f650291f0d6faf6c01a0bf34c20c1d0213\"\u003e\u003ccode\u003ee9f242f\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/68ec0a639d03a43205c55563a82dc939938f8d73\"\u003e\u003ccode\u003e68ec0a6\u003c/code\u003e\u003c/a\u003e Clean up oban pro section to include descriptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/7554bd9e5e61fcfb87842fbc64fa9951fbada9f7\"\u003e\u003ccode\u003e7554bd9\u003c/code\u003e\u003c/a\u003e Bump the development-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8e606c243efb9aae503893b9a34ff3cb1251d7d6\"\u003e\u003ccode\u003e8e606c2\u003c/code\u003e\u003c/a\u003e Bump ecto_sql from 3.13.2 to 3.13.3 in the production-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ce657120ab65c09bb5357166c7207f11786f08ae\"\u003e\u003ccode\u003ece65712\u003c/code\u003e\u003c/a\u003e Better sqlite timestamp default and pruning query\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.2...v2.20.3\"\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=oban\u0026package-manager=hex\u0026previous-version=2.20.2\u0026new-version=2.20.3)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/Tornium/tornium/pull/378","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tornium%2Ftornium/issues/378","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/378/packages"},{"uuid":"3830865848","node_id":"PR_kwDOGxXjWs6-EWFW","number":4335,"state":"open","title":"build(deps): bump oban from 2.20.1 to 2.20.2","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T19:01:57.000Z","updated_at":"2026-01-19T19:08:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"oban","old_version":"2.20.1","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.1 to 2.20.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.1...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.20.1\u0026new-version=2.20.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/OpenFn/lightning/pull/4335","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFn%2Flightning/issues/4335","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4335/packages"},{"uuid":"3803903464","node_id":"PR_kwDOK8o3K868rbVR","number":346,"state":"closed","title":"chore(deps): bump oban from 2.19.4 to 2.20.2","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T12:00:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T11:27:21.000Z","updated_at":"2026-02-16T12:00:27.000Z","time_to_close":3025984,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.2)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/kitsteam/wordcharts/pull/346","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsteam%2Fwordcharts/issues/346","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/346/packages"},{"uuid":"3752471784","node_id":"PR_kwDOE7v5Zc66Epbx","number":662,"state":"closed","title":"Build(deps): Bump the all-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-22T15:08:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:15:27.000Z","updated_at":"2025-12-22T15:08:42.000Z","time_to_close":31994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","group_name":"all-dependencies","update_count":5,"packages":[{"name":"credo","old_version":"1.7.13","new_version":"1.7.14","repository_url":"https://github.com/rrrene/credo"},{"name":"ecto_sql","old_version":"3.13.2","new_version":"3.13.3","repository_url":"https://github.com/elixir-ecto/ecto_sql"},{"name":"oban","old_version":"2.20.1","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"},{"name":"phoenix_live_reload","old_version":"1.6.1","new_version":"1.6.2","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"phoenix_live_view","old_version":"1.1.17","new_version":"1.1.19","repository_url":"https://github.com/phoenixframework/phoenix_live_view"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [credo](https://github.com/rrrene/credo) | `1.7.13` | `1.7.14` |\n| [ecto_sql](https://github.com/elixir-ecto/ecto_sql) | `3.13.2` | `3.13.3` |\n| [oban](https://github.com/oban-bg/oban) | `2.20.1` | `2.20.2` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.1` | `1.6.2` |\n| [phoenix_live_view](https://github.com/phoenixframework/phoenix_live_view) | `1.1.17` | `1.1.19` |\n\n\nUpdates `credo` from 1.7.13 to 1.7.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rrrene/credo/releases\"\u003ecredo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.14\u003c/h2\u003e\n\u003cp\u003eCheck it out on Hex: \u003ca href=\"https://hex.pm/packages/credo/1.7.14\"\u003ehttps://hex.pm/packages/credo/1.7.14\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression for \u003ccode\u003eDuplicatedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpanded \u003ccode\u003eCredo.Check.Warning.ExpensiveEmptyEnumCheck\u003c/code\u003e to cover less obvious cases\u003c/li\u003e\n\u003cli\u003eNew Check: \u003ccode\u003eCredo.Check.Warning.StructFieldAmount\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rrrene/credo/blob/master/CHANGELOG.md\"\u003ecredo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression for \u003ccode\u003eDuplicatedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eCredo.Check.Warning.ExpensiveEmptyEnumCheck\u003c/code\u003e to cover less obvious cases\u003c/li\u003e\n\u003cli\u003eNew Check: \u003ccode\u003eCredo.Check.Warning.StructFieldAmount\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/rrrene/credo/commit/b3a8c4ac73b155c21a02683d37dcb523b74f465d\"\u003e\u003ccode\u003eb3a8c4a\u003c/code\u003e\u003c/a\u003e Bump version to 1.7.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/677f6389a6d38a957811d1df3b71374ea9081cda\"\u003e\u003ccode\u003e677f638\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/57deb6fdfbb1e1d3b481a7e395ba732c0e757800\"\u003e\u003ccode\u003e57deb6f\u003c/code\u003e\u003c/a\u003e Fix warnings for slow usage of \u003ccode\u003elength/1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/ace6edda853c9b9163ab0dc55fca843d8e62633d\"\u003e\u003ccode\u003eace6edd\u003c/code\u003e\u003c/a\u003e Fix missing dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/1ffd3b235d1f920a8b54b3baf416af7c9b8b89f7\"\u003e\u003ccode\u003e1ffd3b2\u003c/code\u003e\u003c/a\u003e Inline pipe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/d182b847f282c69ac73355526e87a4dfb0980418\"\u003e\u003ccode\u003ed182b84\u003c/code\u003e\u003c/a\u003e Add inch_ex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/a006b49aa56b9bfce0e1e74ef7ea3c445827c681\"\u003e\u003ccode\u003ea006b49\u003c/code\u003e\u003c/a\u003e Fix housekeeping workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/cef51ea8b5c8e0586b51e5da02c51e94d49f2362\"\u003e\u003ccode\u003ecef51ea\u003c/code\u003e\u003c/a\u003e Refactor ExpensiveEmptyEnumCheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/e781dbb93149c2de4671ed9b76b4bca8d15cb85b\"\u003e\u003ccode\u003ee781dbb\u003c/code\u003e\u003c/a\u003e Merge branch 'comparison-against-1' of github.com:hauleth/credo into 1226-emp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/c20779e6c09c32d250354bf1262aef8759245f16\"\u003e\u003ccode\u003ec20779e\u003c/code\u003e\u003c/a\u003e Update Elixir to 1.19.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rrrene/credo/compare/v1.7.13...v1.7.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ecto_sql` from 3.13.2 to 3.13.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/ecto_sql/blob/master/CHANGELOG.md\"\u003eecto_sql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.3 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[sql] Tag generated functions as \u003ccode\u003e:generated\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[sql] Add \u003ccode\u003e:wrap_in_transaction\u003c/code\u003e option to explain\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[mysql] Fix \u003ccode\u003estructure_load/2\u003c/code\u003e for MySQL 9.4+\u003c/li\u003e\n\u003c/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/elixir-ecto/ecto_sql/commit/912cb3489bec72f4a961d4fdf58df68c2b6dc647\"\u003e\u003ccode\u003e912cb34\u003c/code\u003e\u003c/a\u003e Release v3.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/5d6d82b1beb502762c46bc15fa3ae97100ee504c\"\u003e\u003ccode\u003e5d6d82b\u003c/code\u003e\u003c/a\u003e Add generated option to quote in SQL adapter (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/bddc7bcc949fdd2ffd772967e8c224becdb9c45a\"\u003e\u003ccode\u003ebddc7bc\u003c/code\u003e\u003c/a\u003e chore(docs): Update Safe Ecto Migrations link (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/074a2718fd3d3e536de05b4b4b9483335f19d248\"\u003e\u003ccode\u003e074a271\u003c/code\u003e\u003c/a\u003e Improve sandbox docs (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/e223a377c407c6886eb4d1fe72778e2e03f987ab\"\u003e\u003ccode\u003ee223a37\u003c/code\u003e\u003c/a\u003e Fix structure_load/2 for MySQL 9.4+ (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/69954cb7596403d5127bb2f06d7f2ef414988e9e\"\u003e\u003ccode\u003e69954cb\u003c/code\u003e\u003c/a\u003e Updated myxql to 0.8 (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/4752ad25666584846e83c1b44dc297c2a6ed3525\"\u003e\u003ccode\u003e4752ad2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e:wrap_in_transaction\u003c/code\u003e option to explain (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/elixir-ecto/ecto_sql/compare/v3.13.2...v3.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.20.1 to 2.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.1...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.1 to 1.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.2 (2025-12-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eProperly deal with Unicode when forwarding logs\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/phoenixframework/phoenix_live_reload/commit/6e139d29d9f1873b8f3427cb3adc97ffc4e97fdd\"\u003e\u003ccode\u003e6e139d2\u003c/code\u003e\u003c/a\u003e Release v1.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/e09911e865685060ac14d2439265b60f9e26d026\"\u003e\u003ccode\u003ee09911e\u003c/code\u003e\u003c/a\u003e Deal with charlists in logger\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.1...v1.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.1.17 to 1.1.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.19/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.19 (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure stale token redirect uses the correct URL (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4068\"\u003e#4068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore events from elements that are not connected to the DOM (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003ephx-click-away\u003c/code\u003e if clicked element is hidden (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4070\"\u003e#4070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4057\"\u003e#4057\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.18 (2025-11-25)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix boolean attributes not being properly ignored when using \u003ccode\u003eJS.ignore_attributes\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Phoenix.Component.assign/2] allow passing a function as second argument assign(socket, fn _existing_assigns -\u0026gt; %{this_gets: \u0026quot;merged\u0026quot;} end) (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4051\"\u003e#4051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate \u003ccode\u003ephx-drop-target\u003c/code\u003e elements with the \u003ccode\u003ephx-drop-target-active\u003c/code\u003e class when items are being dropped (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4012\"\u003e#4012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eonDocumentPatch\u003c/code\u003e dom callback and allow specifying the event dispatch phase (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4043\"\u003e#4043\u003c/a\u003e)\nThis allows users to use view transitions, see \u003ca href=\"https://gist.github.com/SteffenDE/cf7cdb91ba037b08cdc583763e4ffc69\"\u003ethe linked gist in the PR\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWarn in \u003ccode\u003ecreateHook\u003c/code\u003e if passed element has no ID (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4010\"\u003e#4010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003ePhoenix.Component.portal/1\u003c/code\u003e to be nested (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4048\"\u003e#4048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ephx-viewport-overrun-target\u003c/code\u003e to make infinitely scrolled tables easier to implement (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4053\"\u003e#4053\u003c/a\u003e) (\u003ca href=\"https://gist.github.com/SteffenDE/613125993362e30443e58558aa3c8ba0\"\u003eExample\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to disable the symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4057\"\u003e#4057\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/phoenixframework/phoenix_live_view/commit/d37acf13b3b217756fb4dd83a2b5248059a1fc10\"\u003e\u003ccode\u003ed37acf1\u003c/code\u003e\u003c/a\u003e release v1.1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f8922e3b6a1fef18b528fde7e873d83f739e8923\"\u003e\u003ccode\u003ef8922e3\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/85d74d8b28d0c020142211abad92277f368f18ac\"\u003e\u003ccode\u003e85d74d8\u003c/code\u003e\u003c/a\u003e Skip phx-click-away if clicked target is hidden (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/29c2af8507e06780803c3b2d20418fc56922c12c\"\u003e\u003ccode\u003e29c2af8\u003c/code\u003e\u003c/a\u003e ignore events for elements that are not connected (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4074\"\u003e#4074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b9307d2cc2277590801e22154c46b0d51431413a\"\u003e\u003ccode\u003eb9307d2\u003c/code\u003e\u003c/a\u003e use main view for stale redirect (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4069\"\u003e#4069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b3a145e5dca66137c66b970d0c44ec3871cd6f37\"\u003e\u003ccode\u003eb3a145e\u003c/code\u003e\u003c/a\u003e Raise if JS.dispatch detail is not a map (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4062\"\u003e#4062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/5bf52e60ca4558a0a328ff1f9e207b459e1a3d6d\"\u003e\u003ccode\u003e5bf52e6\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ephx-no-format\u003c/code\u003e and \u003ccode\u003ephx-no-curly-interpolation\u003c/code\u003e to cheatsheet (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4065\"\u003e#4065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/7ab8e7df93220214e82c1a36541603bd7b54bf53\"\u003e\u003ccode\u003e7ab8e7d\u003c/code\u003e\u003c/a\u003e allow disabling symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4057\"\u003e#4057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/a8541d7502ae1ed68f76823d73581e3ac8a0d903\"\u003e\u003ccode\u003ea8541d7\u003c/code\u003e\u003c/a\u003e format for 1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f821d9c7a34032dc44448acd44e278ae103f919b\"\u003e\u003ccode\u003ef821d9c\u003c/code\u003e\u003c/a\u003e release v1.1.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.1.17...v1.1.19\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/b310-digital/mindwendel/pull/662","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fmindwendel/issues/662","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/662/packages"},{"uuid":"2872412362","node_id":"PR_kwDONMZ1AM6rNYjK","number":208,"state":"open","title":"chore(deps): bump the all group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T23:39:52.000Z","updated_at":"2025-09-29T23:39:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":13,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.5","repository_url":"https://github.com/mimiquate/tower_rollbar"},{"name":"tower_slack","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/mimiquate/tower_slack"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.5` |\n| [tower_slack](https://github.com/mimiquate/tower_slack) | `0.6.1` | `0.6.2` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_html` from 4.2.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_html/blob/main/CHANGELOG.md\"\u003ephoenix_html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e for Duration\u003c/li\u003e\n\u003cli\u003eAdd function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e to improve documentation\u003c/li\u003e\n\u003cli\u003eAllow custom tags in options_for_select\u003c/li\u003e\n\u003cli\u003eAllow datetime as form option values\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive warnings on Elixir v1.19\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/phoenixframework/phoenix_html/commit/8cfd3e37ff9ef0924812a78cf6c9d27cdbd4e726\"\u003e\u003ccode\u003e8cfd3e3\u003c/code\u003e\u003c/a\u003e Release v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/053861d1894a10c7787678ab2d86a0b5cee9686f\"\u003e\u003ccode\u003e053861d\u003c/code\u003e\u003c/a\u003e Avoid false positive in Elixir v1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/671042cd441ef001ecba00904be2e5bc39c07dfe\"\u003e\u003ccode\u003e671042c\u003c/code\u003e\u003c/a\u003e allow datetime as form option values (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0f31c955865319f6fe5ac58b5e5c4c385bd80796\"\u003e\u003ccode\u003e0f31c95\u003c/code\u003e\u003c/a\u003e feat(custom option tags): allow custom tags in options_for_select (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0229e746a22d70093473a39946c9868a585181a3\"\u003e\u003ccode\u003e0229e74\u003c/code\u003e\u003c/a\u003e Add function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/49bb6e545e4799c30cdad97a0b71413bbd9f7c1d\"\u003e\u003ccode\u003e49bb6e5\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e to Duration (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/ddaf11e54f38627c03aa4da937ecb95259103926\"\u003e\u003ccode\u003eddaf11e\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/c11a9e3b87fa247b31a8ccf1265d6588e1ddaa04\"\u003e\u003ccode\u003ec11a9e3\u003c/code\u003e\u003c/a\u003e Implement Access for form fields\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_html/compare/v4.2.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.13/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.13 (2025-09-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix invalid stream merging in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3993\"\u003e#3993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extra spaces when formatting nested inline tags (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3995\"\u003e#3995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure error reasons are serialized into message on the client (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent JavaScript exception when passing \u003ccode\u003e\u0026quot;*\u0026quot;\u003c/code\u003e to \u003ccode\u003eJS.ignore_attributes/3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.12 (2025-09-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent HEEx line from being reported as uncovered when using a pattern in \u003ccode\u003e:let={}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically symlink \u003ccode\u003eassets/node_modules\u003c/code\u003e folder for colocated hooks (see the documentation for \u003ccode\u003ePhoenix.LiveView.ColocatedJS\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.10 (2025-09-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in v1.1.9 - fix \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e crashing when using keywords lists and not properly handling atom keys (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.9 (2025-09-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix moved comprehension diff crashing LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003epush_patch\u003c/code\u003e works during form recovery (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix diff crash in LiveViewTest when rendering structs (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude form values from DOM in \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e to mimic browser behavior (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow assigning generic hooks to type \u003ccode\u003eHook\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3955\"\u003e#3955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow typing hook element when using TypeScript (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more metadata to \u003ccode\u003ephx:page-loading-start\u003c/code\u003e event in case of errors (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3910\"\u003e#3910\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/phoenixframework/phoenix_live_view/commit/975bc91a8f1348bac0d6b718432e3c9c067773dd\"\u003e\u003ccode\u003e975bc91\u003c/code\u003e\u003c/a\u003e release v1.1.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/c1f1de9abf5f9ea7120b12c78d1ba575be776111\"\u003e\u003ccode\u003ec1f1de9\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/ff403bb5c2f239c18ba8a27c68c93b2ca4866fcd\"\u003e\u003ccode\u003eff403bb\u003c/code\u003e\u003c/a\u003e prevent crash when passing * to ignore_attributes (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3997\"\u003e#3997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/67a3bc071aeef9065dce071ccc691f976f479856\"\u003e\u003ccode\u003e67a3bc0\u003c/code\u003e\u003c/a\u003e Fix extra spaces being continually added when formatting nested inline tags (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/68619fb6e0b5d404f8e9e9eba733102f0eb96803\"\u003e\u003ccode\u003e68619fb\u003c/code\u003e\u003c/a\u003e fix merging of streams in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/e898d68f5b998b75536d419d7bbe9f50f105fbfb\"\u003e\u003ccode\u003ee898d68\u003c/code\u003e\u003c/a\u003e Serialize error reason as JSON (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/72189f63b784e0b2dec44d41810beb8d37a694b2\"\u003e\u003ccode\u003e72189f6\u003c/code\u003e\u003c/a\u003e release v1.1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f6c87c4f76e6415eb8d8938fe50adf814e03ddcb\"\u003e\u003ccode\u003ef6c87c4\u003c/code\u003e\u003c/a\u003e allow auto-symlinking node_modules for ColocatedJS (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/a60512c4f258c52bf3bab7919710b1eeb3ac6c49\"\u003e\u003ccode\u003ea60512c\u003c/code\u003e\u003c/a\u003e Prevent pattern in \u003ccode\u003e:let\u003c/code\u003e from leading to uncovered line (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/05191936285dd96b59a3e4da7b4ebb0b190866bc\"\u003e\u003ccode\u003e0519193\u003c/code\u003e\u003c/a\u003e Fix heading in CHANGELOG (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3986\"\u003e#3986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.0.17...v1.1.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tailwind` from 0.3.1 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/tailwind/blob/main/CHANGELOG.md\"\u003etailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0 (2025-09-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer copy assets in \u003ccode\u003emix tailwind.install\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDiscard empty proxy env vars\u003c/li\u003e\n\u003cli\u003eEnsure watcher picks up rule changes on Windows\u003c/li\u003e\n\u003c/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/phoenixframework/tailwind/commit/e8e289195534780a342c5bb24912eab8b4e318a3\"\u003e\u003ccode\u003ee8e2891\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/d09a32b421bbaa37ee575b916d09361e8518a5a6\"\u003e\u003ccode\u003ed09a32b\u003c/code\u003e\u003c/a\u003e Add comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/3e495133fad3aeee3cd23954566ef9f1c5692707\"\u003e\u003ccode\u003e3e49513\u003c/code\u003e\u003c/a\u003e Normalize windows driver\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/5f8a6b9b18e4bb25960df9e08b77c6e00d05148a\"\u003e\u003ccode\u003e5f8a6b9\u003c/code\u003e\u003c/a\u003e Update versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/e9887900add55b5b3a245098699a0c52fdd5d540\"\u003e\u003ccode\u003ee988790\u003c/code\u003e\u003c/a\u003e Sanitize empty strings when getting Proxy Environment variables (\u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/2bf28d7cd8c0f81a74931dbc48c87c62b8b766bc\"\u003e\u003ccode\u003e2bf28d7\u003c/code\u003e\u003c/a\u003e Revert config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/327cef38cd5e439b6d71bb6b05856e18e494b741\"\u003e\u003ccode\u003e327cef3\u003c/code\u003e\u003c/a\u003e Remove outdated docs, closes \u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/102\"\u003e#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/21c4b7689f0026fcb1e4c9c54b4aa62788d60713\"\u003e\u003ccode\u003e21c4b76\u003c/code\u003e\u003c/a\u003e Fix path in message, closes \u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/126\"\u003e#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/be2c7b6ad0131050edf077bd8137072d218ca708\"\u003e\u003ccode\u003ebe2c7b6\u003c/code\u003e\u003c/a\u003e Update tests, readme, and simplify install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/f7e3037a29fb68368501dc4e711c4bcf5999cea5\"\u003e\u003ccode\u003ef7e3037\u003c/code\u003e\u003c/a\u003e Update README.md (\u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/132\"\u003e#132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/tailwind/compare/v0.3.1...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_rollbar` from 0.6.3 to 0.6.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_rollbar/blob/main/CHANGELOG.md\"\u003etower_rollbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.5] - 2025-09-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003emix tower_rollbar.install\u003c/code\u003e task.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.6.4] - 2025-08-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes compilation bug when \u003ccode\u003ecastore\u003c/code\u003e package is missing (possibly when updating \u003ccode\u003ephoenix\u003c/code\u003e to 1.8.0\u0026quot;)\u003c/li\u003e\n\u003c/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/mimiquate/tower_rollbar/commit/128cb33121f3a39b25d0b5c1d2cab7514292854a\"\u003e\u003ccode\u003e128cb33\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/8db64b9d11c1c9b88baee66dbb636bf3654edd27\"\u003e\u003ccode\u003e8db64b9\u003c/code\u003e\u003c/a\u003e test: updates tested igniter version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a415d8a3d3fec54ce0981268395079ff3254bfe2\"\u003e\u003ccode\u003ea415d8a\u003c/code\u003e\u003c/a\u003e docs: bumps ex_doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/cd841844fdc5b89934e0ea0f7d0110e1822980b8\"\u003e\u003ccode\u003ecd84184\u003c/code\u003e\u003c/a\u003e feat(igniter): \u003ccode\u003emix tower_rollbar.install\u003c/code\u003e task (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/5517ad3e3043238aa39c284579ed576abd8f930e\"\u003e\u003ccode\u003e5517ad3\u003c/code\u003e\u003c/a\u003e chore(deps): tower 0.8.3 =\u0026gt; 0.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8720f7e717069dba0005aede7e56c8c30f19dab\"\u003e\u003ccode\u003ed8720f7\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a1684b3cf85791ff341f3ec381f769385a3763b5\"\u003e\u003ccode\u003ea1684b3\u003c/code\u003e\u003c/a\u003e chore(deps): bumps x509\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/f1c1404dbef9484805c0464e7904a4f0b927d429\"\u003e\u003ccode\u003ef1c1404\u003c/code\u003e\u003c/a\u003e fix: fixes compilation when castore not available (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/3e7af805d40c944e69d7e2e63d9448c27027c137\"\u003e\u003ccode\u003e3e7af80\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump bandit from 1.7.0 to 1.8.0 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8d8e6a3116eb3d1db01e8b13d42f7e1f81351fb\"\u003e\u003ccode\u003ed8d8e6a\u003c/code\u003e\u003c/a\u003e build(deps): bump castore from 1.0.14 to 1.0.15 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mimiquate/tower_rollbar/compare/v0.6.3...v0.6.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_slack` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_slack/blob/main/CHANGELOG.md\"\u003etower_slack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.2] - 2025-09-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003emix tower_slack.install\u003c/code\u003e task.\u003c/li\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/208","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/208","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/208/packages"},{"uuid":"2871986922","node_id":"PR_kwDONMZ1AM6rLwrq","number":207,"state":"closed","title":"chore(deps): bump the oban group with 2 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T23:39:58.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T20:36:12.000Z","updated_at":"2025-09-29T23:39:58.000Z","time_to_close":11026,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"oban","update_count":2,"packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"}],"path":null,"ecosystem":"hex"},"body":"Bumps the oban group with 2 updates: [oban](https://github.com/oban-bg/oban) and [oban_web](https://github.com/oban-bg/oban_web).\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mimiquate/elixir_observer/pull/207","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/207","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/207/packages"},{"uuid":"3466303865","node_id":"PR_kwDOE7v5Zc6rK_aB","number":632,"state":"open","title":"Build(deps): Bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T19:23:19.000Z","updated_at":"2025-10-01T11:34:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/b310-digital/mindwendel/pull/632","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fmindwendel/issues/632","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/632/packages"},{"uuid":"2870903416","node_id":"PR_kwDONMZ1AM6rHoJ4","number":200,"state":"open","title":"chore(deps): bump the all group with 17 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T14:34:05.000Z","updated_at":"2025-09-29T14:34:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":17,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"gettext","old_version":"0.26.2","new_version":"1.0.0","repository_url":"https://github.com/elixir-gettext/gettext"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_api","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_html","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/phoenixframework/phoenix_html"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"phoenix_live_view","old_version":"1.0.17","new_version":"1.1.13","repository_url":"https://github.com/phoenixframework/phoenix_live_view"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.5","repository_url":"https://github.com/mimiquate/tower_rollbar"},{"name":"tower_slack","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/mimiquate/tower_slack"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [gettext](https://github.com/elixir-gettext/gettext) | `0.26.2` | `1.0.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_api](https://github.com/open-telemetry/opentelemetry-erlang) | `1.4.0` | `1.4.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.9.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_html](https://github.com/phoenixframework/phoenix_html) | `4.2.1` | `4.3.0` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [phoenix_live_view](https://github.com/phoenixframework/phoenix_live_view) | `1.0.17` | `1.1.13` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.5` |\n| [tower_slack](https://github.com/mimiquate/tower_slack) | `0.6.1` | `0.6.2` |\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gettext` from 0.26.2 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-gettext/gettext/blob/main/CHANGELOG.md\"\u003egettext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the first 1.0 release of Gettext, a silly 10 years (and 6 months) after we started working on it. There are \u003cem\u003every few changes\u003c/em\u003e from the latest 0.26 release, and none of them are breaking.\u003c/p\u003e\n\u003cp\u003eHere are the new goodies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for concatenating sigils if all parts are known at compile time (such as \u003ccode\u003e\u0026quot;Hello \u0026quot; \u0026lt;\u0026gt; ~s(world)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSignificantly increase the timeout for \u003ccode\u003emix gettext.extract\u003c/code\u003e to two minutes.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGettext.put_locale!/1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHappy 10+ years of Elixir translations everyone! 🎉\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/elixir-gettext/gettext/commit/d1a8c86d0bb7b1edfd01538d6bce32b5b809363f\"\u003e\u003ccode\u003ed1a8c86\u003c/code\u003e\u003c/a\u003e Release v1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/e1df334b3bc77e21f457b38e4a76e3543814d016\"\u003e\u003ccode\u003ee1df334\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/962426d045cff9928e74681d54b6592beb0e44a2\"\u003e\u003ccode\u003e962426d\u003c/code\u003e\u003c/a\u003e Add new function put_locale!/2  (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/f436de77e5964fa5eb23838b8f97a2925c0c830a\"\u003e\u003ccode\u003ef436de7\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.20.2 to 1.20.4 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/54ccc9c865bbed89fdc20b670e66d083f89d1c59\"\u003e\u003ccode\u003e54ccc9c\u003c/code\u003e\u003c/a\u003e Don't time out when running the extract task (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/fc89178eb34933b909b3e78a2441308cbf13ecfc\"\u003e\u003ccode\u003efc89178\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.19.0 to 1.20.2 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/a44a2bf3a420af2a7f6c1448eb846c0b6f867f7b\"\u003e\u003ccode\u003ea44a2bf\u003c/code\u003e\u003c/a\u003e Harden CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/7405f841de22bd4df14774b746352965717334fc\"\u003e\u003ccode\u003e7405f84\u003c/code\u003e\u003c/a\u003e Fix concatenation of sigils (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/6a97765953bdec82233e6509c8df4f5feda62fc3\"\u003e\u003ccode\u003e6a97765\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/647d27f2dbfe2f1b0452a1879787bf5edd63098b\"\u003e\u003ccode\u003e647d27f\u003c/code\u003e\u003c/a\u003e Improve a deprecation warning (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-gettext/gettext/compare/v0.26.2...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOTLP Exporter 1.9.0 - 2025-10-16\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/894\"\u003eAdd is_remote flag in exporter for spans and span links\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_html` from 4.2.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_html/blob/main/CHANGELOG.md\"\u003ephoenix_html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e for Duration\u003c/li\u003e\n\u003cli\u003eAdd function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e to improve documentation\u003c/li\u003e\n\u003cli\u003eAllow custom tags in options_for_select\u003c/li\u003e\n\u003cli\u003eAllow datetime as form option values\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive warnings on Elixir v1.19\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/phoenixframework/phoenix_html/commit/8cfd3e37ff9ef0924812a78cf6c9d27cdbd4e726\"\u003e\u003ccode\u003e8cfd3e3\u003c/code\u003e\u003c/a\u003e Release v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/053861d1894a10c7787678ab2d86a0b5cee9686f\"\u003e\u003ccode\u003e053861d\u003c/code\u003e\u003c/a\u003e Avoid false positive in Elixir v1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/671042cd441ef001ecba00904be2e5bc39c07dfe\"\u003e\u003ccode\u003e671042c\u003c/code\u003e\u003c/a\u003e allow datetime as form option values (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0f31c955865319f6fe5ac58b5e5c4c385bd80796\"\u003e\u003ccode\u003e0f31c95\u003c/code\u003e\u003c/a\u003e feat(custom option tags): allow custom tags in options_for_select (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0229e746a22d70093473a39946c9868a585181a3\"\u003e\u003ccode\u003e0229e74\u003c/code\u003e\u003c/a\u003e Add function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/49bb6e545e4799c30cdad97a0b71413bbd9f7c1d\"\u003e\u003ccode\u003e49bb6e5\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e to Duration (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/ddaf11e54f38627c03aa4da937ecb95259103926\"\u003e\u003ccode\u003eddaf11e\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/c11a9e3b87fa247b31a8ccf1265d6588e1ddaa04\"\u003e\u003ccode\u003ec11a9e3\u003c/code\u003e\u003c/a\u003e Implement Access for form fields\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_html/compare/v4.2.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/200","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/200","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/200/packages"},{"uuid":"2851123965","node_id":"PR_kwDONMZ1AM6p8LL9","number":198,"state":"closed","title":"chore(deps): bump the all group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T14:21:31.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T20:59:58.000Z","updated_at":"2025-09-29T14:21:31.000Z","time_to_close":580893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":15,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"gettext","old_version":"0.26.2","new_version":"1.0.0","repository_url":"https://github.com/elixir-gettext/gettext"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/mimiquate/tower_rollbar"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [gettext](https://github.com/elixir-gettext/gettext) | `0.26.2` | `1.0.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.9.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.4` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gettext` from 0.26.2 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-gettext/gettext/blob/main/CHANGELOG.md\"\u003egettext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the first 1.0 release of Gettext, a silly 10 years (and 6 months) after we started working on it. There are \u003cem\u003every few changes\u003c/em\u003e from the latest 0.26 release, and none of them are breaking.\u003c/p\u003e\n\u003cp\u003eHere are the new goodies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for concatenating sigils if all parts are known at compile time (such as \u003ccode\u003e\u0026quot;Hello \u0026quot; \u0026lt;\u0026gt; ~s(world)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSignificantly increase the timeout for \u003ccode\u003emix gettext.extract\u003c/code\u003e to two minutes.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGettext.put_locale!/1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHappy 10+ years of Elixir translations everyone! 🎉\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/elixir-gettext/gettext/commit/d1a8c86d0bb7b1edfd01538d6bce32b5b809363f\"\u003e\u003ccode\u003ed1a8c86\u003c/code\u003e\u003c/a\u003e Release v1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/e1df334b3bc77e21f457b38e4a76e3543814d016\"\u003e\u003ccode\u003ee1df334\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/962426d045cff9928e74681d54b6592beb0e44a2\"\u003e\u003ccode\u003e962426d\u003c/code\u003e\u003c/a\u003e Add new function put_locale!/2  (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/f436de77e5964fa5eb23838b8f97a2925c0c830a\"\u003e\u003ccode\u003ef436de7\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.20.2 to 1.20.4 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/54ccc9c865bbed89fdc20b670e66d083f89d1c59\"\u003e\u003ccode\u003e54ccc9c\u003c/code\u003e\u003c/a\u003e Don't time out when running the extract task (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/fc89178eb34933b909b3e78a2441308cbf13ecfc\"\u003e\u003ccode\u003efc89178\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.19.0 to 1.20.2 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/a44a2bf3a420af2a7f6c1448eb846c0b6f867f7b\"\u003e\u003ccode\u003ea44a2bf\u003c/code\u003e\u003c/a\u003e Harden CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/7405f841de22bd4df14774b746352965717334fc\"\u003e\u003ccode\u003e7405f84\u003c/code\u003e\u003c/a\u003e Fix concatenation of sigils (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/6a97765953bdec82233e6509c8df4f5feda62fc3\"\u003e\u003ccode\u003e6a97765\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/647d27f2dbfe2f1b0452a1879787bf5edd63098b\"\u003e\u003ccode\u003e647d27f\u003c/code\u003e\u003c/a\u003e Improve a deprecation warning (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-gettext/gettext/compare/v0.26.2...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/894\"\u003eAdd is_remote flag in exporter for spans and span links\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.13/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.13 (2025-09-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix invalid stream merging in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3993\"\u003e#3993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extra spaces when formatting nested inline tags (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3995\"\u003e#3995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure error reasons are serialized into message on the client (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent JavaScript exception when passing \u003ccode\u003e\u0026quot;*\u0026quot;\u003c/code\u003e to \u003ccode\u003eJS.ignore_attributes/3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.12 (2025-09-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent HEEx line from being reported as uncovered when using a pattern in \u003ccode\u003e:let={}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically symlink \u003ccode\u003eassets/node_modules\u003c/code\u003e folder for colocated hooks (see the documentation for \u003ccode\u003ePhoenix.LiveView.ColocatedJS\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/198","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/198","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/198/packages"},{"uuid":"3395639939","node_id":"PR_kwDONMZ1AM6ndfgP","number":195,"state":"open","title":"chore(deps): bump the all group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T20:32:37.000Z","updated_at":"2025-09-22T20:59:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":13,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/mimiquate/tower_rollbar"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.0` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.8.1` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.4` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003esoftware-mansion/live-debugger#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003esoftware-mansion/live-debugger#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: added event behaviour by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003esoftware-mansion/live-debugger#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add api for \u003ccode\u003e:dbg\u003c/code\u003e module by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003esoftware-mansion/live-debugger#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: implement event bus by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003esoftware-mansion/live-debugger#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: create \u003ccode\u003eSettingsStorage\u003c/code\u003e api by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003esoftware-mansion/live-debugger#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebuggerRefactor.API.LiveViewDebug\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/573\"\u003esoftware-mansion/live-debugger#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebuggerRefactor.API.TracesStorage\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/576\"\u003esoftware-mansion/live-debugger#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: create base for each service by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/578\"\u003esoftware-mansion/live-debugger#578\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/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/3344b9e0a954b86130555830e1c3dfec4db86a3a\"\u003e\u003ccode\u003e3344b9e\u003c/code\u003e\u003c/a\u003e Tests: add tests for elements inspection (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/81470e48e564361ca595f4d71941260a414d0302\"\u003e\u003ccode\u003e81470e4\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/13b3d11dd16eeae44104cce6b181050e17785123\"\u003e\u003ccode\u003e13b3d11\u003c/code\u003e\u003c/a\u003e Bug: fixed scrolling with debug options menu (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/711\"\u003e#711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/1ea6869df9e6c2543dade37de1c8779a76ed3646\"\u003e\u003ccode\u003e1ea6869\u003c/code\u003e\u003c/a\u003e Bug: Fix highlighting in dead view mode (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/e1da66cb351d460512c575e9a9d9b6c635e10fda\"\u003e\u003ccode\u003ee1da66c\u003c/code\u003e\u003c/a\u003e Docs: Elements Inspection (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/e4bc2258f185910b31e09b28ee27d57eee9d09e3\"\u003e\u003ccode\u003ee4bc225\u003c/code\u003e\u003c/a\u003e Enhancement: Disable inspecting in dead view mode (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/c6d00afa84c340ad807e209a5dae9dd7c996ee07\"\u003e\u003ccode\u003ec6d00af\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/ff1306d81e8b2f527d1603ccfb06316490251315\"\u003e\u003ccode\u003eff1306d\u003c/code\u003e\u003c/a\u003e Bug: disabling menu when inspect mode changed (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/706\"\u003e#706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.11/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.10 (2025-09-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in v1.1.9 - fix \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e crashing when using keywords lists and not properly handling atom keys (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.9 (2025-09-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix moved comprehension diff crashing LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003epush_patch\u003c/code\u003e works during form recovery (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix diff crash in LiveViewTest when rendering structs (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude form values from DOM in \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e to mimic browser behavior (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow assigning generic hooks to type \u003ccode\u003eHook\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3955\"\u003e#3955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow typing hook element when using TypeScript (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more metadata to \u003ccode\u003ephx:page-loading-start\u003c/code\u003e event in case of errors (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3910\"\u003e#3910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.8 (2025-08-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition where patches were discarded when a join was still pending (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3957\"\u003e#3957\u003c/a\u003e, big thank you to \u003ca href=\"https://github.com/DaTrader\"\u003e\u003ccode\u003e@​DaTrader\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.7 (2025-08-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression introduced in v1.1.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.6 (2025-08-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix live components in nested views accidentally destroying live components in parent views (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3953\"\u003e#3953\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/phoenixframework/phoenix_live_view/commit/f0ad89521248546b80ecab6e510951a8602bc3f6\"\u003e\u003ccode\u003ef0ad895\u003c/code\u003e\u003c/a\u003e release v1.1.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/15eb62034a7c9047841fe13553220e2bc76ff2d4\"\u003e\u003ccode\u003e15eb620\u003c/code\u003e\u003c/a\u003e Use lazydoc to find duplicate ids (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/bc1f95da30e1a41bc937bd66d049caea9ee55d81\"\u003e\u003ccode\u003ebc1f95d\u003c/code\u003e\u003c/a\u003e Fix warning in LiveViewTest when keyed comprehension is empty (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3982\"\u003e#3982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/d231aff76cf35528943cec1be6c7f201a270c510\"\u003e\u003ccode\u003ed231aff\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b4c0deaca45f1354a2e47a8dbb4d9f5f3b6246a8\"\u003e\u003ccode\u003eb4c0dea\u003c/code\u003e\u003c/a\u003e fix cids_destroyed check using wrong selector (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/5b983d4859b01387731325fe7e6a6da5c832fab9\"\u003e\u003ccode\u003e5b983d4\u003c/code\u003e\u003c/a\u003e release v1.1.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/074cd4019f4dd5bd21340d7af1f2be7362549cb2\"\u003e\u003ccode\u003e074cd40\u003c/code\u003e\u003c/a\u003e Account for keyword lists in follow_trigger_action / submit_form (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3976\"\u003e#3976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/ec09ec0e1c25140ed03cc3117bc842ea6fde5e53\"\u003e\u003ccode\u003eec09ec0\u003c/code\u003e\u003c/a\u003e release v1.1.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/994a87070f44ebabedff8eaa5bb9b7d72cff32ea\"\u003e\u003ccode\u003e994a870\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/8d13e069aa84e760a4ec4033d06e0b2ddc1a32a4\"\u003e\u003ccode\u003e8d13e06\u003c/code\u003e\u003c/a\u003e add unstructuredError and errorKind to phx:page-loading-start details (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.0.17...v1.1.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_rollbar` from 0.6.3 to 0.6.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_rollbar/blob/main/CHANGELOG.md\"\u003etower_rollbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.4] - 2025-08-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes compilation bug when \u003ccode\u003ecastore\u003c/code\u003e package is missing (possibly when updating \u003ccode\u003ephoenix\u003c/code\u003e to 1.8.0\u0026quot;)\u003c/li\u003e\n\u003c/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/mimiquate/tower_rollbar/commit/d8720f7e717069dba0005aede7e56c8c30f19dab\"\u003e\u003ccode\u003ed8720f7\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a1684b3cf85791ff341f3ec381f769385a3763b5\"\u003e\u003ccode\u003ea1684b3\u003c/code\u003e\u003c/a\u003e chore(deps): bumps x509\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/f1c1404dbef9484805c0464e7904a4f0b927d429\"\u003e\u003ccode\u003ef1c1404\u003c/code\u003e\u003c/a\u003e fix: fixes compilation when castore not available (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/3e7af805d40c944e69d7e2e63d9448c27027c137\"\u003e\u003ccode\u003e3e7af80\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump bandit from 1.7.0 to 1.8.0 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8d8e6a3116eb3d1db01e8b13d42f7e1f81351fb\"\u003e\u003ccode\u003ed8d8e6a\u003c/code\u003e\u003c/a\u003e build(deps): bump castore from 1.0.14 to 1.0.15 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/786852ee655ab642cd1a1fbb41167b9898abec6e\"\u003e\u003ccode\u003e786852e\u003c/code\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"},{"uuid":"2790537316","node_id":"PR_kwDOJjFobM6mVDhk","number":45,"state":"closed","title":"Bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-04T12:50:24.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T18:31:35.000Z","updated_at":"2025-09-04T12:50:24.000Z","time_to_close":238729,"merged_at":"2025-09-04T12:50:23.000Z","merged_by":"ygpark2","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/ygpark2/elixir_pheonix_app/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ygpark2%2Felixir_pheonix_app/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"},{"uuid":"2788296352","node_id":"PR_kwDOJZ6NbM6mMgag","number":186,"state":"open","title":"chore(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T02:04:02.000Z","updated_at":"2025-09-01T02:04:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"ash","old_version":"3.5.31","new_version":"3.5.37","repository_url":"https://github.com/ash-project/ash"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1"}],"path":null,"ecosystem":"hex"},"body":"Bumps the production-dependencies group with 2 updates in the / directory: [ash](https://github.com/ash-project/ash) and [oban](https://github.com/oban-bg/oban).\n\nUpdates `ash` from 3.5.31 to 3.5.37\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/ash/releases\"\u003eash's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.5.37\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eensure that count tasks are always stopped by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e) by \u003ca href=\"https://github.com/FugiTech\"\u003e\u003ccode\u003e@​FugiTech\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eproperly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e) by Jesse Williams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e) by \u003ca href=\"https://github.com/vonagam\"\u003e\u003ccode\u003e@​vonagam\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values by Rutgerdj\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd CompileError on duplicate Ash.Domain use by LambdaCalc\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle indexed maps when typecasting filter values by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edeterministic partial evaluation by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eensure that unions stored with tags actually have their tags by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve warning about \u003ccode\u003enil\u003c/code\u003e atomics by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etypespec fix for typedstruct info module (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2286\"\u003e#2286\u003c/a\u003e) by Matt Beanland\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eproperly short-circuit if, || and \u0026amp;\u0026amp; by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.36\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erevert typed_struct enhancements by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.35\u003c/h2\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/ash-project/ash/blob/main/CHANGELOG.md\"\u003eash's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.36...v3.5.37\"\u003ev3.5.37\u003c/a\u003e (2025-08-31)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eensure that count tasks are always stopped by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e) by \u003ca href=\"https://github.com/FugiTech\"\u003e\u003ccode\u003e@​FugiTech\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eproperly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e) by Jesse Williams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e) by \u003ca href=\"https://github.com/vonagam\"\u003e\u003ccode\u003e@​vonagam\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values by Rutgerdj\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd CompileError on duplicate Ash.Domain use by LambdaCalc\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle indexed maps when typecasting filter values by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edeterministic partial evaluation by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eensure that unions stored with tags actually have their tags by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve warning about \u003ccode\u003enil\u003c/code\u003e atomics by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etypespec fix for typedstruct info module (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2286\"\u003e#2286\u003c/a\u003e) by Matt Beanland\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eproperly short-circuit if, || and \u0026amp;\u0026amp; by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.35...v3.5.36\"\u003ev3.5.36\u003c/a\u003e (2025-08-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erevert typed_struct enhancements by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.34...v3.5.35\"\u003ev3.5.35\u003c/a\u003e (2025-08-21)\u003c/h2\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/4895845350572e832c088204dca7550ae75bde24\"\u003e\u003ccode\u003e4895845\u003c/code\u003e\u003c/a\u003e chore: release version v3.5.37\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/0d42e628dbff1b89a9e086f494378300eab252f9\"\u003e\u003ccode\u003e0d42e62\u003c/code\u003e\u003c/a\u003e fix: ensure that count tasks are always stopped\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/4cd97715729ccc535cdfe70850ecbe21681487bf\"\u003e\u003ccode\u003e4cd9771\u003c/code\u003e\u003c/a\u003e fix: Allow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/51da9a0c4ce3c7c837115410ec88373d0a02f43a\"\u003e\u003ccode\u003e51da9a0\u003c/code\u003e\u003c/a\u003e docs: Update actions.md (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2300\"\u003e#2300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/7e1816cf2838157ea45898cb72e622bed41a211f\"\u003e\u003ccode\u003e7e1816c\u003c/code\u003e\u003c/a\u003e docs: custom aggregate example (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2299\"\u003e#2299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/a95228e2cdfe6de7ba5e8148e9e4d125b9fe92da\"\u003e\u003ccode\u003ea95228e\u003c/code\u003e\u003c/a\u003e fix: properly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/8167d6a4d99221c9d5da7364582ea080121f441e\"\u003e\u003ccode\u003e8167d6a\u003c/code\u003e\u003c/a\u003e docs: fix docs for generic actions change -\u0026gt; prepare\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/bbbd8eae208941ac8763b066b15b5323ca69cf2c\"\u003e\u003ccode\u003ebbbd8ea\u003c/code\u003e\u003c/a\u003e fix: resolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/164acdd83cc806e78c505a994c0d71ee23985c24\"\u003e\u003ccode\u003e164acdd\u003c/code\u003e\u003c/a\u003e fix: handle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/d10bd592905702438bc2536f1691fffbd424f065\"\u003e\u003ccode\u003ed10bd59\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.31...v3.5.37\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/ash-project/ash_oban/pull/186","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ash-project%2Fash_oban/issues/186","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/186/packages"},{"uuid":"3356910992","node_id":"PR_kwDOKCjBAs6lekti","number":894,"state":"open","title":"chore(deps): bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-08-26T19:40:51.000Z","updated_at":"2025-09-11T09:01:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/zebbra/data_aggregator/pull/894","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebbra%2Fdata_aggregator/issues/894","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/894/packages"},{"uuid":"2767057302","node_id":"PR_kwDODTqMEM6k7fGW","number":1296,"state":"open","title":"chore(deps): bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-22T18:27:58.000Z","updated_at":"2025-08-22T18:27:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mbta/arrow/pull/1296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbta%2Farrow/issues/1296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1296/packages"}],"issue_packages":[{"old_version":"2.21.1","new_version":"2.22.1","update_type":"minor","path":null,"pr_created_at":"2026-05-22T02:50:37.000Z","version_change":"2.21.1 → 2.22.1","issue":{"uuid":"4499426716","node_id":"PR_kwDORaEq3M7eLqvw","number":215,"state":"open","title":"chore(deps): bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T02:50:37.000Z","updated_at":"2026-05-22T20:31:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/engram-app/Engram/pull/215","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/engram-app%2FEngram/issues/215","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/215/packages"}},{"old_version":"2.21.1","new_version":"2.22.1","update_type":"minor","path":null,"pr_created_at":"2026-05-11T23:53:19.000Z","version_change":"2.21.1 → 2.22.1","issue":{"uuid":"4425127430","node_id":"PR_kwDOQRuEzM7ad766","number":13,"state":"open","title":"Bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T23:53:19.000Z","updated_at":"2026-05-17T09:42:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/dimamik/phenom/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimamik%2Fphenom/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"2.21.1","new_version":"2.22.1","update_type":"minor","path":null,"pr_created_at":"2026-05-07T10:58:57.000Z","version_change":"2.21.1 → 2.22.1","issue":{"uuid":"4398206648","node_id":"PR_kwDOSK8CMc7ZHQ79","number":14,"state":"closed","title":"chore(deps): bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-09T00:01:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T10:58:57.000Z","updated_at":"2026-05-09T00:01:50.000Z","time_to_close":133365,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/szTheory/lockspire/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/szTheory%2Flockspire/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"2.21.1","new_version":"2.22.1","update_type":"minor","path":null,"pr_created_at":"2026-05-01T21:07:05.000Z","version_change":"2.21.1 → 2.22.1","issue":{"uuid":"4366678576","node_id":"PR_kwDOKESEYM7XiF-a","number":111,"state":"open","title":"Bump oban from 2.21.1 to 2.22.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T21:07:05.000Z","updated_at":"2026-05-02T02:21:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and \u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro expansion time when the corresponding driver isn't a project dependency. The missing module reference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually loaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;) parsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at least one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the out-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and risk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form 99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range values before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by default since 9.1. Under default settings, the backslash was treated literally and the quote terminated the string, allowing a crafted prefix to break out of the SQL literal in \u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple element. Connection failures surface as raised database exceptions, which the rescue clause above already handles. The catch now only matches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.1 — 2026-04-30\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Conditionally reference database driver errors\u003c/p\u003e\n\u003cp\u003eThe retryable_exceptions macro previously hard-coded references to \u003ccode\u003eMyXQL.Error\u003c/code\u003e and\n\u003ccode\u003ePostgrex.Error\u003c/code\u003e, which Elixir v1.20.0.rc.2+ flags as missing module references at macro\nexpansion time when the corresponding driver isn't a project dependency. The missing module\nreference could escalate into a deadlock, and compilation would halt entirely.\u003c/p\u003e\n\u003cp\u003eDriver error lists are now resolved at compile time and only include modules that are actually\nloaded, so projects using \u003ccode\u003ePostgrex\u003c/code\u003e without \u003ccode\u003eMyXQL\u003c/code\u003e (or vice versa) compile cleanly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Reject impossible combinations in cron expressions\u003c/p\u003e\n\u003cp\u003eCron strings whose day and month fields could never align (e.g. \u0026quot;0 0 30 2 *\u0026quot;, or \u0026quot;0 0 31 4 *\u0026quot;)\nparsed, but caused \u003ccode\u003enext_at/2\u003c/code\u003e and \u003ccode\u003elast_at/2\u003c/code\u003e to loop indefinitely.\u003c/p\u003e\n\u003cp\u003eNow expressions are validated to ensure at least one day fits within the maximum length of at\nleast one selected month.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Validate cron range bounds before expansion\u003c/p\u003e\n\u003cp\u003eRange parts like 0-99999999 were accepted and expanded into the full integer range before the\nout-of-bounds check fired. For sufficiently large upper bounds that could stall the BEAM and\nrisk OOM. The same path was reachable via the step variant 0-99999999/1 and the open-ended form\n99999999/1.\u003c/p\u003e\n\u003cp\u003eExpression parsing now compares against the field's allowed min/max and rejects out-of-range\nvalues before any range is materialized.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Migration] Fix prefix escaping in Postgres migrations\u003c/p\u003e\n\u003cp\u003eSwitch to the standard doubled-quote escape so it works under default Postgres configuration.\u003c/p\u003e\n\u003cp\u003eThe escaped_prefix value was using \u003ccode\u003e\\'\u003c/code\u003e to escape single quotes, which hasn't been enabled by\ndefault since 9.1. Under default settings, the backslash was treated literally and the quote\nterminated the string, allowing a crafted prefix to break out of the SQL literal in\n\u003ccode\u003emigrated_version/1\u003c/code\u003e and the notify trigger bodies.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Backoff] Narrow \u003ccode\u003ewith_retry\u003c/code\u003e exit catch to :timeout\u003c/p\u003e\n\u003cp\u003eExits never carry a database error module atom in the first tuple\nelement. Connection failures surface as raised database exceptions,\nwhich the rescue clause above already handles. The catch now only\nmatches \u003ccode\u003e:exit, {:timeout, _}\u003c/code\u003e, the one shape that's actually reachable.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/2a94028f57c4a8fa69bd5d57c726d8426745a3fb\"\u003e\u003ccode\u003e2a94028\u003c/code\u003e\u003c/a\u003e Release v1.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f210c4aac3f8bc0132ee106d0cac467c369c0fa6\"\u003e\u003ccode\u003ef210c4a\u003c/code\u003e\u003c/a\u003e Fix prefix escaping in Postgres migrations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/38a0242a4268df0fd0d40e0da3e855d69e58f923\"\u003e\u003ccode\u003e38a0242\u003c/code\u003e\u003c/a\u003e Reject impossible combinations in cron expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/dfa415b6af7b53e9db119423b14b6cc3a457c5c8\"\u003e\u003ccode\u003edfa415b\u003c/code\u003e\u003c/a\u003e Validate cron range bounds before expansion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/39702f220c6a46d5895ecc579f1bb8ae624eb54f\"\u003e\u003ccode\u003e39702f2\u003c/code\u003e\u003c/a\u003e Drop missing oban_peers safety net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/945855a9b767e23d50f8cbb9705b39c0ee744b7f\"\u003e\u003ccode\u003e945855a\u003c/code\u003e\u003c/a\u003e Narrow with_retry exit catch to :timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8a704aad7a22abf510cc9ce7e3e33e33d0cf2f0b\"\u003e\u003ccode\u003e8a704aa\u003c/code\u003e\u003c/a\u003e Conditionally reference database driver errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.21.1\u0026new-version=2.22.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/evilmarty/oban_live_dashboard/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilmarty%2Foban_live_dashboard/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"}},{"old_version":"2.21.1","new_version":"2.22.0","update_type":"minor","path":"/worker","pr_created_at":"2026-04-29T08:35:08.000Z","version_change":"2.21.1 → 2.22.0","issue":{"uuid":"4349025244","node_id":"PR_kwDOGhKp_c7Wogeh","number":420,"state":"closed","title":"Bump oban from 2.21.1 to 2.22.0 in /worker","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-01T09:43:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T08:35:08.000Z","updated_at":"2026-05-01T09:44:01.000Z","time_to_close":176931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/oban-bg/oban"}],"path":"/worker","ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.21.1 to 2.22.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003cp\u003eAdds a job querying API, migration checking in test mode, smarter notifier ping cadence, and a handful of bug fixes around recovery and resilience.\u003c/p\u003e\n\u003ch2\u003e📇 Job Querying\u003c/h2\u003e\n\u003cp\u003eTwo new functions make it easier to load jobs without hand-rolling Ecto queries. \u003ccode\u003eOban.Job.query/1\u003c/code\u003e builds a composable query from a keyword list of field filters, and \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e runs any queryable through the configured repo.\u003c/p\u003e\n\u003cp\u003eFor example, to fetch every \u003ccode\u003eavailable\u003c/code\u003e job for a worker with \u003ccode\u003eaccount_id: 1\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[args: %{account_id: 1}, worker: MyApp.Worker, state: :available]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; Oban.all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe result is an \u003ccode\u003eEcto.Queryable\u003c/code\u003e, so it composes with further \u003ccode\u003eEcto.Query\u003c/code\u003e calls, and pairs naturally with with \u003ccode\u003eOban.cancel_all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.delete_all_jobs/2\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e[state: :available, queue: :media]\r\n|\u0026gt; Oban.Job.query()\r\n|\u0026gt; limit(10)\r\n|\u0026gt; Oban.cancel_all_jobs()\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e📡 Smarter Sonar Pings\u003c/h2\u003e\n\u003cp\u003eSonar, the notifier monitor, used to ping every 5 seconds from every node. That resulted in 120 messages a minute to confirm connectivity, even in a stable environment.\u003c/p\u003e\n\u003cp\u003ePings are now status-aware and back off when the cluster is quiet. A solitary node settles to one ping a minute. A clustered group scales the per-node interval with peer count, so aggregate traffic stays roughly constant as the cluster grows.\u003c/p\u003e\n\u003cp\u003eThere is no configuration required. When a node joins, drops, or recovers, pings snap back to the fast cadence immediately.\u003c/p\u003e\n\u003ch2\u003e🧪 Migration Checks at Startup\u003c/h2\u003e\n\u003cp\u003eWhen Oban boots in a testing mode, it now verifies that the \u003ccode\u003eoban_jobs\u003c/code\u003e table exists and that the migration version is current. A missing or outdated migration fails fast with an actionable message instead of surfacing later as cryptic database errors mid-test.\u003c/p\u003e\n\u003cp\u003eFor example, forgetting to run the v2.21 migration after upgrading would previously fail somewhere deep in a test with an enum mismatch on the new \u003ccode\u003esuspended\u003c/code\u003e state. Now Oban refuses to start:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e** (RuntimeError) Oban migrations are outdated. Found version 12, but version 13 is required.\r\n\u003cpre\u003e\u003ccode\u003eRun migrations to update:\r\n\r\n    mix ecto.migrate\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThe check is limited to \u003ccode\u003etesting\u003c/code\u003e mode and geared toward catching migration requirements before they hit production.\u003c/p\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0 — 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Add \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e and \u003ccode\u003eOban.Job.query/1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIntroduce \u003ccode\u003eOban.Job.query/1\u003c/code\u003e, a keyword-based builder that composes Ecto queryable from a small\nset of field filters. Scalar values become equality matches, lists become \u003ccode\u003eIN\u003c/code\u003e matches, atoms\nare coerced, and \u003ccode\u003eargs\u003c/code\u003e or \u003ccode\u003emeta\u003c/code\u003e are compiled to a containment check.\u003c/p\u003e\n\u003cp\u003eThat pairs with \u003ccode\u003eOban.all_jobs/2\u003c/code\u003e, a thin function that runs any queryable through the\nconfigured repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Verify migrations at startup in testing mode\u003c/p\u003e\n\u003cp\u003eWhen Oban starts in a testing mode, it now verifies that migrations have been run and are up to\ndate. This catches migration issues early in CI rather than failing with confusing database\nerrors during test execution or worse, in production.\u003c/p\u003e\n\u003cp\u003eFor Postgres, the check verifies the migration version is current, while for SQLite and MySQL,\nthe check verifies the \u003ccode\u003eoban_jobs\u003c/code\u003e table exists.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sonar] Reduce ping rate with status-aware intervals\u003c/p\u003e\n\u003cp\u003eSonar previously pinged every 5s regardless of cluster state, which is aggressive for systems\nwhere nothing is changing. It now walks between a min and max interval, resetting on any status\nchange and otherwise backing off toward a status driven target:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:clustered\u003c/code\u003e scales with peer count so aggregate traffic stays ~1 ping per \u003ccode\u003emin_interval\u003c/code\u003e\nregardless of cluster size\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:solitary\u003c/code\u003e drifts to the max interval, since its only job is verifying the notifier channel\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:isolated\u003c/code\u003e and \u003ccode\u003e:unknown\u003c/code\u003e stay at \u003ccode\u003emin_interval\u003c/code\u003e to keep recovery probes\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStale-node pruning now uses an absolute window (default 120s) instead of a multiple of the\ncurrent interval, and scheduled pings are jittered to avoid synchronizing nodes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] The Repo retry behavior is now compile-time configurable, partially for\ntesting purposes, but also to allow tweaking the internal retry behavior\nbased on system requirements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Allow disabling \u003ccode\u003etransaction/3\u003c/code\u003e retries\u003c/p\u003e\n\u003cp\u003ePass \u003ccode\u003eretry: 0\u003c/code\u003e or \u003ccode\u003eretry: false\u003c/code\u003e to skip retries entirely, including for expected conflicts\nlike deadlocks and serialization failures. This is intended for callers invoking queries like\n\u003ccode\u003eOban.insert/2\u003c/code\u003e from within an existing transaction, where a retry inside a savepoint would mask\nthe real error from the outer transaction.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Stager] Notify queues regardless of staging success\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/oban-bg/oban/commit/67b004bb7b4b83061718bb37c9d38e528da62be9\"\u003e\u003ccode\u003e67b004b\u003c/code\u003e\u003c/a\u003e Release v2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1ef601ee08bedc7e272e58b1ff11099fe2b03fc4\"\u003e\u003ccode\u003e1ef601e\u003c/code\u003e\u003c/a\u003e Notify queues regardless of staging success\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/5c5d7e425187d1d54390c2e29eaef8ad96a6344b\"\u003e\u003ccode\u003e5c5d7e4\u003c/code\u003e\u003c/a\u003e Shared listen/notify helper in sonar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ca63f655b57eee217abd8c82de7aa7205b647d74\"\u003e\u003ccode\u003eca63f65\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.17 to 1.7.18 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1444\"\u003e#1444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3b5255c74cd131435856e6c0a42c8612cbf06698\"\u003e\u003ccode\u003e3b5255c\u003c/code\u003e\u003c/a\u003e Fix syntax error in validate function in Oban.Plugin (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1443\"\u003e#1443\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/9dd5106229ef3502ae5dce141c49d04221c44149\"\u003e\u003ccode\u003e9dd5106\u003c/code\u003e\u003c/a\u003e Fix duplicate pid accumulation in Notifier.Postgres put_channels/3 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1441\"\u003e#1441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/cbd74ab67fc388a7091a0f115199e715e176277e\"\u003e\u003ccode\u003ecbd74ab\u003c/code\u003e\u003c/a\u003e Allow disabling transaction/3 retries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0c23e68397e907715a7502a9e53faa638382f538\"\u003e\u003ccode\u003e0c23e68\u003c/code\u003e\u003c/a\u003e Shift UndefinedFunctionError handling into Repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0a5aa17229569b6a6df49f810aa2e5bc0fc27e30\"\u003e\u003ccode\u003e0a5aa17\u003c/code\u003e\u003c/a\u003e Reduce Sonar ping rate with status-aware intervals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c999e48164d3b750c050fc851fa44cace078d0d4\"\u003e\u003ccode\u003ec999e48\u003c/code\u003e\u003c/a\u003e Handle containment filtering on args/meta\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.21.1...v2.22.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=oban\u0026package-manager=hex\u0026previous-version=2.21.1\u0026new-version=2.22.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/Tornium/tornium/pull/420","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tornium%2Ftornium/issues/420","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/420/packages"}},{"old_version":"2.20.2","new_version":"2.20.3","update_type":"patch","path":null,"pr_created_at":"2026-02-09T11:32:49.000Z","version_change":"2.20.2 → 2.20.3","issue":{"uuid":"3915923078","node_id":"PR_kwDOQs46Ys7CdWu0","number":15,"state":"closed","title":"chore(hex): bump oban from 2.20.2 to 2.20.3","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-15T11:43:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T11:32:49.000Z","updated_at":"2026-04-15T11:43:53.000Z","time_to_close":5616655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(hex)","packages":[{"name":"oban","old_version":"2.20.2","new_version":"2.20.3","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.2 to 2.20.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw number of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one was actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now the \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a function message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop invalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO blocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an unsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones automatically. Without a compatible repo, it displays an error message listing the found repos and their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly against UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used, could be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried properly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing databases. This is a more accurate query that was avoided before because it didn't match the \u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3 — 2025-01-22\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw\nnumber of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one\nwas actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now\nthe \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a\nfunction message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop\ninvalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO\nblocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an\nunsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones\nautomatically. Without a compatible repo, it displays an error message listing the found repos\nand their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly\nagainst UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used,\ncould be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried\nproperly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing\ndatabases. This is a more accurate query that was avoided before because it didn't match the\n\u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/commit/584e86a8515b7cb8d6eff2f148fb880529fc68f8\"\u003e\u003ccode\u003e584e86a\u003c/code\u003e\u003c/a\u003e Release v2.20.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3494d8e69e8776201c3e28cc151ba14072c1e5ae\"\u003e\u003ccode\u003e3494d8e\u003c/code\u003e\u003c/a\u003e Use more efficient map_join for unsupported list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/385f68febe5a38b725fee3a511c4795c8eb350de\"\u003e\u003ccode\u003e385f68f\u003c/code\u003e\u003c/a\u003e Prevent installer crash with unsupported adapters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f9520e273e38f3efeb97bca2c3661b8ea4fd5583\"\u003e\u003ccode\u003ef9520e2\u003c/code\u003e\u003c/a\u003e Fix dropping invalid indexes from the reindexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c66526810ad1b57b742e68d7c13f7a04b121875f\"\u003e\u003ccode\u003ec665268\u003c/code\u003e\u003c/a\u003e Allow snoozing jobs by returning a tuple period (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e9f242f650291f0d6faf6c01a0bf34c20c1d0213\"\u003e\u003ccode\u003ee9f242f\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/68ec0a639d03a43205c55563a82dc939938f8d73\"\u003e\u003ccode\u003e68ec0a6\u003c/code\u003e\u003c/a\u003e Clean up oban pro section to include descriptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/7554bd9e5e61fcfb87842fbc64fa9951fbada9f7\"\u003e\u003ccode\u003e7554bd9\u003c/code\u003e\u003c/a\u003e Bump the development-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8e606c243efb9aae503893b9a34ff3cb1251d7d6\"\u003e\u003ccode\u003e8e606c2\u003c/code\u003e\u003c/a\u003e Bump ecto_sql from 3.13.2 to 3.13.3 in the production-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ce657120ab65c09bb5357166c7207f11786f08ae\"\u003e\u003ccode\u003ece65712\u003c/code\u003e\u003c/a\u003e Better sqlite timestamp default and pruning query\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.2...v2.20.3\"\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=oban\u0026package-manager=hex\u0026previous-version=2.20.2\u0026new-version=2.20.3)](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/benzlokzik/typster/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/benzlokzik%2Ftypster/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"2.20.2","new_version":"2.20.3","update_type":"patch","path":"/worker","pr_created_at":"2026-01-23T08:34:45.000Z","version_change":"2.20.2 → 2.20.3","issue":{"uuid":"3846439832","node_id":"PR_kwDOGhKp_c6-4O3K","number":378,"state":"closed","title":"Bump oban from 2.20.2 to 2.20.3 in /worker","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-23T18:58:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-23T08:34:45.000Z","updated_at":"2026-01-23T18:58:04.000Z","time_to_close":37397,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.20.2","new_version":"2.20.3","repository_url":"https://github.com/oban-bg/oban"}],"path":"/worker","ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.2 to 2.20.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.3 — 2025-01-22\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Allow snoozing jobs by returning a tuple period\u003c/p\u003e\n\u003cp\u003eIt's now possible to snooze jobs with a period such as \u003ccode\u003e{1, :minute}\u003c/code\u003e instead of just a raw\nnumber of seconds.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Validate no duplicate options are passed to config on init\u003c/p\u003e\n\u003cp\u003eBecause options are provided as a keyword list, duplicate options were accepted while only one\nwas actually used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Fix starting a queue on a specific node\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003e:node\u003c/code\u003e option was incorrectly preserved when starting a queue, which would crash it. Now\nthe \u003ccode\u003e:node\u003c/code\u003e is dropped after scoping the start signal.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Reindexer] Fix dropping invalid indexes from the reindexer\u003c/p\u003e\n\u003cp\u003eThe reindexer would fail sliently with \u0026quot;DROP INDEX CONCURRENTLY\u0026quot; cannot be executed from a\nfunction message because the deindex operation used a \u003ccode\u003eDO\u003c/code\u003e block to loop through and drop\ninvalid indexes, but PostgreSQL prohibits \u003ccode\u003eCONCURRENTLY\u003c/code\u003e operations inside functions or DO\nblocks. Now invalid indexes are fetched first, then dropped as individual queries.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Installer] Prevent installer crash with unsupported adapters\u003c/p\u003e\n\u003cp\u003eThe installer would crash with a \u003ccode\u003eCaseClauseError\u003c/code\u003e when a project had an Ecto repo using an\nunsupported adapter like \u003ccode\u003eEcto.Adapters.Tds\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNow the installer filters repos to find one with a supported adapter, skipping unsupported ones\nautomatically. Without a compatible repo, it displays an error message listing the found repos\nand their adapters, along with guidance on how to specify a repo explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Pruner] Better sqlite timestamp default and pruning query\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eCURRENT_TIMESTAMP\u003c/code\u003e type lacks a trailing \u003ccode\u003ez\u003c/code\u003e, which causes it to be compared incorrectly\nagainst UTC datetimes. Any jobs inserted without a \u003ccode\u003escheduled_at\u003c/code\u003e, where the default is used,\ncould be returned in queries that compare against a \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis prevents the issue in the future two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSwitch the default \u003ccode\u003einserted_at/scheduled_at\u003c/code\u003e timestamp to a format that can be queried\nproperly.\u003c/li\u003e\n\u003cli\u003eChange the pruning check to use \u003ccode\u003ecompleted_at\u003c/code\u003e rather than \u003ccode\u003escheduled_at\u003c/code\u003e for existing\ndatabases. This is a more accurate query that was avoided before because it didn't match the\n\u003ccode\u003eBasic\u003c/code\u003e engine.\u003c/li\u003e\n\u003c/ol\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/oban-bg/oban/commit/584e86a8515b7cb8d6eff2f148fb880529fc68f8\"\u003e\u003ccode\u003e584e86a\u003c/code\u003e\u003c/a\u003e Release v2.20.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3494d8e69e8776201c3e28cc151ba14072c1e5ae\"\u003e\u003ccode\u003e3494d8e\u003c/code\u003e\u003c/a\u003e Use more efficient map_join for unsupported list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/385f68febe5a38b725fee3a511c4795c8eb350de\"\u003e\u003ccode\u003e385f68f\u003c/code\u003e\u003c/a\u003e Prevent installer crash with unsupported adapters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f9520e273e38f3efeb97bca2c3661b8ea4fd5583\"\u003e\u003ccode\u003ef9520e2\u003c/code\u003e\u003c/a\u003e Fix dropping invalid indexes from the reindexer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/c66526810ad1b57b742e68d7c13f7a04b121875f\"\u003e\u003ccode\u003ec665268\u003c/code\u003e\u003c/a\u003e Allow snoozing jobs by returning a tuple period (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e9f242f650291f0d6faf6c01a0bf34c20c1d0213\"\u003e\u003ccode\u003ee9f242f\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/68ec0a639d03a43205c55563a82dc939938f8d73\"\u003e\u003ccode\u003e68ec0a6\u003c/code\u003e\u003c/a\u003e Clean up oban pro section to include descriptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/7554bd9e5e61fcfb87842fbc64fa9951fbada9f7\"\u003e\u003ccode\u003e7554bd9\u003c/code\u003e\u003c/a\u003e Bump the development-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/8e606c243efb9aae503893b9a34ff3cb1251d7d6\"\u003e\u003ccode\u003e8e606c2\u003c/code\u003e\u003c/a\u003e Bump ecto_sql from 3.13.2 to 3.13.3 in the production-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/ce657120ab65c09bb5357166c7207f11786f08ae\"\u003e\u003ccode\u003ece65712\u003c/code\u003e\u003c/a\u003e Better sqlite timestamp default and pruning query\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.2...v2.20.3\"\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=oban\u0026package-manager=hex\u0026previous-version=2.20.2\u0026new-version=2.20.3)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/Tornium/tornium/pull/378","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tornium%2Ftornium/issues/378","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/378/packages"}},{"old_version":"2.20.1","new_version":"2.20.2","update_type":"patch","path":null,"pr_created_at":"2026-01-19T19:01:57.000Z","version_change":"2.20.1 → 2.20.2","issue":{"uuid":"3830865848","node_id":"PR_kwDOGxXjWs6-EWFW","number":4335,"state":"open","title":"build(deps): bump oban from 2.20.1 to 2.20.2","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T19:01:57.000Z","updated_at":"2026-01-19T19:08:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"oban","old_version":"2.20.1","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.20.1 to 2.20.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.1...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.20.1\u0026new-version=2.20.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/OpenFn/lightning/pull/4335","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenFn%2Flightning/issues/4335","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4335/packages"}},{"old_version":"2.19.4","new_version":"2.20.2","update_type":"minor","path":null,"pr_created_at":"2026-01-12T11:27:21.000Z","version_change":"2.19.4 → 2.20.2","issue":{"uuid":"3803903464","node_id":"PR_kwDOK8o3K868rbVR","number":346,"state":"closed","title":"chore(deps): bump oban from 2.19.4 to 2.20.2","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T12:00:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T11:27:21.000Z","updated_at":"2026-02-16T12:00:27.000Z","time_to_close":3025984,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.2)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/kitsteam/wordcharts/pull/346","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitsteam%2Fwordcharts/issues/346","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/346/packages"}},{"old_version":"2.20.1","new_version":"2.20.2","update_type":"patch","path":null,"pr_created_at":"2025-12-22T06:15:27.000Z","version_change":"2.20.1 → 2.20.2","issue":{"uuid":"3752471784","node_id":"PR_kwDOE7v5Zc66Epbx","number":662,"state":"closed","title":"Build(deps): Bump the all-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-22T15:08:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:15:27.000Z","updated_at":"2025-12-22T15:08:42.000Z","time_to_close":31994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","group_name":"all-dependencies","update_count":5,"packages":[{"name":"credo","old_version":"1.7.13","new_version":"1.7.14","repository_url":"https://github.com/rrrene/credo"},{"name":"ecto_sql","old_version":"3.13.2","new_version":"3.13.3","repository_url":"https://github.com/elixir-ecto/ecto_sql"},{"name":"oban","old_version":"2.20.1","new_version":"2.20.2","repository_url":"https://github.com/oban-bg/oban"},{"name":"phoenix_live_reload","old_version":"1.6.1","new_version":"1.6.2","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"phoenix_live_view","old_version":"1.1.17","new_version":"1.1.19","repository_url":"https://github.com/phoenixframework/phoenix_live_view"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [credo](https://github.com/rrrene/credo) | `1.7.13` | `1.7.14` |\n| [ecto_sql](https://github.com/elixir-ecto/ecto_sql) | `3.13.2` | `3.13.3` |\n| [oban](https://github.com/oban-bg/oban) | `2.20.1` | `2.20.2` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.1` | `1.6.2` |\n| [phoenix_live_view](https://github.com/phoenixframework/phoenix_live_view) | `1.1.17` | `1.1.19` |\n\n\nUpdates `credo` from 1.7.13 to 1.7.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rrrene/credo/releases\"\u003ecredo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.14\u003c/h2\u003e\n\u003cp\u003eCheck it out on Hex: \u003ca href=\"https://hex.pm/packages/credo/1.7.14\"\u003ehttps://hex.pm/packages/credo/1.7.14\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression for \u003ccode\u003eDuplicatedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpanded \u003ccode\u003eCredo.Check.Warning.ExpensiveEmptyEnumCheck\u003c/code\u003e to cover less obvious cases\u003c/li\u003e\n\u003cli\u003eNew Check: \u003ccode\u003eCredo.Check.Warning.StructFieldAmount\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rrrene/credo/blob/master/CHANGELOG.md\"\u003ecredo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression for \u003ccode\u003eDuplicatedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003eCredo.Check.Warning.ExpensiveEmptyEnumCheck\u003c/code\u003e to cover less obvious cases\u003c/li\u003e\n\u003cli\u003eNew Check: \u003ccode\u003eCredo.Check.Warning.StructFieldAmount\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/rrrene/credo/commit/b3a8c4ac73b155c21a02683d37dcb523b74f465d\"\u003e\u003ccode\u003eb3a8c4a\u003c/code\u003e\u003c/a\u003e Bump version to 1.7.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/677f6389a6d38a957811d1df3b71374ea9081cda\"\u003e\u003ccode\u003e677f638\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/57deb6fdfbb1e1d3b481a7e395ba732c0e757800\"\u003e\u003ccode\u003e57deb6f\u003c/code\u003e\u003c/a\u003e Fix warnings for slow usage of \u003ccode\u003elength/1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/ace6edda853c9b9163ab0dc55fca843d8e62633d\"\u003e\u003ccode\u003eace6edd\u003c/code\u003e\u003c/a\u003e Fix missing dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/1ffd3b235d1f920a8b54b3baf416af7c9b8b89f7\"\u003e\u003ccode\u003e1ffd3b2\u003c/code\u003e\u003c/a\u003e Inline pipe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/d182b847f282c69ac73355526e87a4dfb0980418\"\u003e\u003ccode\u003ed182b84\u003c/code\u003e\u003c/a\u003e Add inch_ex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/a006b49aa56b9bfce0e1e74ef7ea3c445827c681\"\u003e\u003ccode\u003ea006b49\u003c/code\u003e\u003c/a\u003e Fix housekeeping workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/cef51ea8b5c8e0586b51e5da02c51e94d49f2362\"\u003e\u003ccode\u003ecef51ea\u003c/code\u003e\u003c/a\u003e Refactor ExpensiveEmptyEnumCheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/e781dbb93149c2de4671ed9b76b4bca8d15cb85b\"\u003e\u003ccode\u003ee781dbb\u003c/code\u003e\u003c/a\u003e Merge branch 'comparison-against-1' of github.com:hauleth/credo into 1226-emp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rrrene/credo/commit/c20779e6c09c32d250354bf1262aef8759245f16\"\u003e\u003ccode\u003ec20779e\u003c/code\u003e\u003c/a\u003e Update Elixir to 1.19.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rrrene/credo/compare/v1.7.13...v1.7.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ecto_sql` from 3.13.2 to 3.13.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/ecto_sql/blob/master/CHANGELOG.md\"\u003eecto_sql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.3 (2025-12-08)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[sql] Tag generated functions as \u003ccode\u003e:generated\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[sql] Add \u003ccode\u003e:wrap_in_transaction\u003c/code\u003e option to explain\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[mysql] Fix \u003ccode\u003estructure_load/2\u003c/code\u003e for MySQL 9.4+\u003c/li\u003e\n\u003c/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/elixir-ecto/ecto_sql/commit/912cb3489bec72f4a961d4fdf58df68c2b6dc647\"\u003e\u003ccode\u003e912cb34\u003c/code\u003e\u003c/a\u003e Release v3.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/5d6d82b1beb502762c46bc15fa3ae97100ee504c\"\u003e\u003ccode\u003e5d6d82b\u003c/code\u003e\u003c/a\u003e Add generated option to quote in SQL adapter (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/bddc7bcc949fdd2ffd772967e8c224becdb9c45a\"\u003e\u003ccode\u003ebddc7bc\u003c/code\u003e\u003c/a\u003e chore(docs): Update Safe Ecto Migrations link (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/074a2718fd3d3e536de05b4b4b9483335f19d248\"\u003e\u003ccode\u003e074a271\u003c/code\u003e\u003c/a\u003e Improve sandbox docs (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/e223a377c407c6886eb4d1fe72778e2e03f987ab\"\u003e\u003ccode\u003ee223a37\u003c/code\u003e\u003c/a\u003e Fix structure_load/2 for MySQL 9.4+ (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/69954cb7596403d5127bb2f06d7f2ef414988e9e\"\u003e\u003ccode\u003e69954cb\u003c/code\u003e\u003c/a\u003e Updated myxql to 0.8 (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/ecto_sql/commit/4752ad25666584846e83c1b44dc297c2a6ed3525\"\u003e\u003ccode\u003e4752ad2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e:wrap_in_transaction\u003c/code\u003e option to explain (\u003ca href=\"https://redirect.github.com/elixir-ecto/ecto_sql/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/elixir-ecto/ecto_sql/compare/v3.13.2...v3.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.20.1 to 2.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.2 — 2025-12-04\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Telemetry] Add domain to \u003ccode\u003eattach_default_logger\u003c/code\u003e metadata\u003c/p\u003e\n\u003cp\u003eAlthough this information is present in the source attribute, it’s not part of the metadata,\nit’s part of the attributes. And when \u003ccode\u003eencode = true\u003c/code\u003e, it’s generated as a string, which makes\nit less convenient to work with.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Cron] Add unique cron entry identifiers to job meta\u003c/p\u003e\n\u003cp\u003eA id value is generated for each cron entry and stored in the job's meta to distinguish between\ndifferent cron jobs with the same expression.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Stager] Order staging query to maximize compound index usage\u003c/p\u003e\n\u003cp\u003eThe core compound index couldn't be utilized by staging queries when the planner estimated a\nlarge number of hits. Changing the query to order by \u003ccode\u003escheduled_at\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e, it becomes an\nindex scan.\u003c/p\u003e\n\u003cp\u003eIt would still be more efficient to use a dedicated index, but OSS doesn't have any mechanisms\nfor automatic concurrent index creation and we have to save it for later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Executor] Take measurements from the executing process\u003c/p\u003e\n\u003cp\u003eWhen Producer starts jobs, it calls \u003ccode\u003eExecutor.new\u003c/code\u003e in its own process, before handing it off to\n\u003ccode\u003eTask.Supervisor.async_nolink\u003c/code\u003e to call \u003ccode\u003eExecutor.call\u003c/code\u003e. That means it used the Producer \u003ccode\u003epid\u003c/code\u003e,\nand took measurements from that process.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Set \u003ccode\u003escheduled\u003c/code\u003e state correctly when updating with \u003ccode\u003eupdate_job/3\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWhen the \u003ccode\u003escheduled_at\u003c/code\u003e timestamp is set during \u003ccode\u003eupdate_job\u003c/code\u003e, the state is automatically set to\n\u003ccode\u003escheduled\u003c/code\u003e. This mirrors the functionality of \u003ccode\u003einsert_job\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote that the value of the timestamp isn't considered. Setting a timestamp in the past will set\nthe job as \u003ccode\u003escheduled\u003c/code\u003e. This isn't a problem in practice because the stager will change the\nstate to \u003ccode\u003eavailable\u003c/code\u003e on the next cycle anyhow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Repo] Include \u003ccode\u003e:deadlock_detected\u003c/code\u003e in expected errors\u003c/p\u003e\n\u003cp\u003eDeadlocks are automatically resolved by Postgres because it aborts one transaction. At that\npoint, the retry should succeed quickly since the blocking transaction is gone.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/6e57e4b0eb219395275a97fae96eab224a091218\"\u003e\u003ccode\u003e6e57e4b\u003c/code\u003e\u003c/a\u003e Release v2.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/e13b0711fc96291e9cdf65bf96a1f6e0aed6eb21\"\u003e\u003ccode\u003ee13b071\u003c/code\u003e\u003c/a\u003e Include :deadlock_detected in expected errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/3f67421ebc6fb43d5bf5f8aa8d5400ed287d07c6\"\u003e\u003ccode\u003e3f67421\u003c/code\u003e\u003c/a\u003e Bump credo from 1.7.13 to 1.7.14 in the development-dependencies group (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1376\"\u003e#1376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/854b7fdff8ca4df2da222eedd60fa2118962b9bd\"\u003e\u003ccode\u003e854b7fd\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1375\"\u003e#1375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/1d2c1f852b7cd8843f5068f7eff8331cc8dd6534\"\u003e\u003ccode\u003e1d2c1f8\u003c/code\u003e\u003c/a\u003e Update development dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/106f3eaa264ca5b101cce6bd5f78e08e4c25c66d\"\u003e\u003ccode\u003e106f3ea\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1789f166f77a5ae8e6548efa1431ed7199e1e63\"\u003e\u003ccode\u003ed1789f1\u003c/code\u003e\u003c/a\u003e README.md: Update explanatory link for queues (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a92ca5e4e011bfb7d5200ee0162a54801225e117\"\u003e\u003ccode\u003ea92ca5e\u003c/code\u003e\u003c/a\u003e Add domain to log metadata (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1364\"\u003e#1364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/aa24e3b9af04e4cb29321b275db0ec3e9f7e8307\"\u003e\u003ccode\u003eaa24e3b\u003c/code\u003e\u003c/a\u003e Update matrix for Elixir v1.19 and OTP 28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/a1d20f283e46e58e6ed9786ec93bb1cb4cf0cebd\"\u003e\u003ccode\u003ea1d20f2\u003c/code\u003e\u003c/a\u003e Order stage query to maximize compound index usage\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.20.1...v2.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.1 to 1.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.2 (2025-12-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eProperly deal with Unicode when forwarding logs\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/phoenixframework/phoenix_live_reload/commit/6e139d29d9f1873b8f3427cb3adc97ffc4e97fdd\"\u003e\u003ccode\u003e6e139d2\u003c/code\u003e\u003c/a\u003e Release v1.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/e09911e865685060ac14d2439265b60f9e26d026\"\u003e\u003ccode\u003ee09911e\u003c/code\u003e\u003c/a\u003e Deal with charlists in logger\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.1...v1.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.1.17 to 1.1.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.19/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.19 (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure stale token redirect uses the correct URL (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4068\"\u003e#4068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore events from elements that are not connected to the DOM (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003ephx-click-away\u003c/code\u003e if clicked element is hidden (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4070\"\u003e#4070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4057\"\u003e#4057\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.18 (2025-11-25)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix boolean attributes not being properly ignored when using \u003ccode\u003eJS.ignore_attributes\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Phoenix.Component.assign/2] allow passing a function as second argument assign(socket, fn _existing_assigns -\u0026gt; %{this_gets: \u0026quot;merged\u0026quot;} end) (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4051\"\u003e#4051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate \u003ccode\u003ephx-drop-target\u003c/code\u003e elements with the \u003ccode\u003ephx-drop-target-active\u003c/code\u003e class when items are being dropped (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4012\"\u003e#4012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eonDocumentPatch\u003c/code\u003e dom callback and allow specifying the event dispatch phase (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4043\"\u003e#4043\u003c/a\u003e)\nThis allows users to use view transitions, see \u003ca href=\"https://gist.github.com/SteffenDE/cf7cdb91ba037b08cdc583763e4ffc69\"\u003ethe linked gist in the PR\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWarn in \u003ccode\u003ecreateHook\u003c/code\u003e if passed element has no ID (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4010\"\u003e#4010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003ePhoenix.Component.portal/1\u003c/code\u003e to be nested (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4048\"\u003e#4048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ephx-viewport-overrun-target\u003c/code\u003e to make infinitely scrolled tables easier to implement (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4053\"\u003e#4053\u003c/a\u003e) (\u003ca href=\"https://gist.github.com/SteffenDE/613125993362e30443e58558aa3c8ba0\"\u003eExample\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to disable the symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/4057\"\u003e#4057\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/phoenixframework/phoenix_live_view/commit/d37acf13b3b217756fb4dd83a2b5248059a1fc10\"\u003e\u003ccode\u003ed37acf1\u003c/code\u003e\u003c/a\u003e release v1.1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f8922e3b6a1fef18b528fde7e873d83f739e8923\"\u003e\u003ccode\u003ef8922e3\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/85d74d8b28d0c020142211abad92277f368f18ac\"\u003e\u003ccode\u003e85d74d8\u003c/code\u003e\u003c/a\u003e Skip phx-click-away if clicked target is hidden (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/29c2af8507e06780803c3b2d20418fc56922c12c\"\u003e\u003ccode\u003e29c2af8\u003c/code\u003e\u003c/a\u003e ignore events for elements that are not connected (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4074\"\u003e#4074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b9307d2cc2277590801e22154c46b0d51431413a\"\u003e\u003ccode\u003eb9307d2\u003c/code\u003e\u003c/a\u003e use main view for stale redirect (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4069\"\u003e#4069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b3a145e5dca66137c66b970d0c44ec3871cd6f37\"\u003e\u003ccode\u003eb3a145e\u003c/code\u003e\u003c/a\u003e Raise if JS.dispatch detail is not a map (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4062\"\u003e#4062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/5bf52e60ca4558a0a328ff1f9e207b459e1a3d6d\"\u003e\u003ccode\u003e5bf52e6\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ephx-no-format\u003c/code\u003e and \u003ccode\u003ephx-no-curly-interpolation\u003c/code\u003e to cheatsheet (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4065\"\u003e#4065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/7ab8e7df93220214e82c1a36541603bd7b54bf53\"\u003e\u003ccode\u003e7ab8e7d\u003c/code\u003e\u003c/a\u003e allow disabling symlink warning for colocated js (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/4057\"\u003e#4057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/a8541d7502ae1ed68f76823d73581e3ac8a0d903\"\u003e\u003ccode\u003ea8541d7\u003c/code\u003e\u003c/a\u003e format for 1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f821d9c7a34032dc44448acd44e278ae103f919b\"\u003e\u003ccode\u003ef821d9c\u003c/code\u003e\u003c/a\u003e release v1.1.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.1.17...v1.1.19\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/b310-digital/mindwendel/pull/662","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fmindwendel/issues/662","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/662/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-29T23:39:52.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2872412362","node_id":"PR_kwDONMZ1AM6rNYjK","number":208,"state":"open","title":"chore(deps): bump the all group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T23:39:52.000Z","updated_at":"2025-09-29T23:39:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":13,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.5","repository_url":"https://github.com/mimiquate/tower_rollbar"},{"name":"tower_slack","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/mimiquate/tower_slack"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.5` |\n| [tower_slack](https://github.com/mimiquate/tower_slack) | `0.6.1` | `0.6.2` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_html` from 4.2.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_html/blob/main/CHANGELOG.md\"\u003ephoenix_html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e for Duration\u003c/li\u003e\n\u003cli\u003eAdd function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e to improve documentation\u003c/li\u003e\n\u003cli\u003eAllow custom tags in options_for_select\u003c/li\u003e\n\u003cli\u003eAllow datetime as form option values\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive warnings on Elixir v1.19\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/phoenixframework/phoenix_html/commit/8cfd3e37ff9ef0924812a78cf6c9d27cdbd4e726\"\u003e\u003ccode\u003e8cfd3e3\u003c/code\u003e\u003c/a\u003e Release v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/053861d1894a10c7787678ab2d86a0b5cee9686f\"\u003e\u003ccode\u003e053861d\u003c/code\u003e\u003c/a\u003e Avoid false positive in Elixir v1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/671042cd441ef001ecba00904be2e5bc39c07dfe\"\u003e\u003ccode\u003e671042c\u003c/code\u003e\u003c/a\u003e allow datetime as form option values (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0f31c955865319f6fe5ac58b5e5c4c385bd80796\"\u003e\u003ccode\u003e0f31c95\u003c/code\u003e\u003c/a\u003e feat(custom option tags): allow custom tags in options_for_select (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0229e746a22d70093473a39946c9868a585181a3\"\u003e\u003ccode\u003e0229e74\u003c/code\u003e\u003c/a\u003e Add function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/49bb6e545e4799c30cdad97a0b71413bbd9f7c1d\"\u003e\u003ccode\u003e49bb6e5\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e to Duration (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/ddaf11e54f38627c03aa4da937ecb95259103926\"\u003e\u003ccode\u003eddaf11e\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/c11a9e3b87fa247b31a8ccf1265d6588e1ddaa04\"\u003e\u003ccode\u003ec11a9e3\u003c/code\u003e\u003c/a\u003e Implement Access for form fields\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_html/compare/v4.2.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.13/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.13 (2025-09-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix invalid stream merging in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3993\"\u003e#3993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extra spaces when formatting nested inline tags (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3995\"\u003e#3995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure error reasons are serialized into message on the client (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent JavaScript exception when passing \u003ccode\u003e\u0026quot;*\u0026quot;\u003c/code\u003e to \u003ccode\u003eJS.ignore_attributes/3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.12 (2025-09-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent HEEx line from being reported as uncovered when using a pattern in \u003ccode\u003e:let={}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically symlink \u003ccode\u003eassets/node_modules\u003c/code\u003e folder for colocated hooks (see the documentation for \u003ccode\u003ePhoenix.LiveView.ColocatedJS\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.10 (2025-09-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in v1.1.9 - fix \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e crashing when using keywords lists and not properly handling atom keys (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.9 (2025-09-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix moved comprehension diff crashing LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003epush_patch\u003c/code\u003e works during form recovery (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix diff crash in LiveViewTest when rendering structs (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude form values from DOM in \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e to mimic browser behavior (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow assigning generic hooks to type \u003ccode\u003eHook\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3955\"\u003e#3955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow typing hook element when using TypeScript (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more metadata to \u003ccode\u003ephx:page-loading-start\u003c/code\u003e event in case of errors (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3910\"\u003e#3910\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/phoenixframework/phoenix_live_view/commit/975bc91a8f1348bac0d6b718432e3c9c067773dd\"\u003e\u003ccode\u003e975bc91\u003c/code\u003e\u003c/a\u003e release v1.1.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/c1f1de9abf5f9ea7120b12c78d1ba575be776111\"\u003e\u003ccode\u003ec1f1de9\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/ff403bb5c2f239c18ba8a27c68c93b2ca4866fcd\"\u003e\u003ccode\u003eff403bb\u003c/code\u003e\u003c/a\u003e prevent crash when passing * to ignore_attributes (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3997\"\u003e#3997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/67a3bc071aeef9065dce071ccc691f976f479856\"\u003e\u003ccode\u003e67a3bc0\u003c/code\u003e\u003c/a\u003e Fix extra spaces being continually added when formatting nested inline tags (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/68619fb6e0b5d404f8e9e9eba733102f0eb96803\"\u003e\u003ccode\u003e68619fb\u003c/code\u003e\u003c/a\u003e fix merging of streams in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/e898d68f5b998b75536d419d7bbe9f50f105fbfb\"\u003e\u003ccode\u003ee898d68\u003c/code\u003e\u003c/a\u003e Serialize error reason as JSON (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/72189f63b784e0b2dec44d41810beb8d37a694b2\"\u003e\u003ccode\u003e72189f6\u003c/code\u003e\u003c/a\u003e release v1.1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/f6c87c4f76e6415eb8d8938fe50adf814e03ddcb\"\u003e\u003ccode\u003ef6c87c4\u003c/code\u003e\u003c/a\u003e allow auto-symlinking node_modules for ColocatedJS (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/a60512c4f258c52bf3bab7919710b1eeb3ac6c49\"\u003e\u003ccode\u003ea60512c\u003c/code\u003e\u003c/a\u003e Prevent pattern in \u003ccode\u003e:let\u003c/code\u003e from leading to uncovered line (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/05191936285dd96b59a3e4da7b4ebb0b190866bc\"\u003e\u003ccode\u003e0519193\u003c/code\u003e\u003c/a\u003e Fix heading in CHANGELOG (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3986\"\u003e#3986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.0.17...v1.1.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tailwind` from 0.3.1 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/tailwind/blob/main/CHANGELOG.md\"\u003etailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0 (2025-09-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer copy assets in \u003ccode\u003emix tailwind.install\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDiscard empty proxy env vars\u003c/li\u003e\n\u003cli\u003eEnsure watcher picks up rule changes on Windows\u003c/li\u003e\n\u003c/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/phoenixframework/tailwind/commit/e8e289195534780a342c5bb24912eab8b4e318a3\"\u003e\u003ccode\u003ee8e2891\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/d09a32b421bbaa37ee575b916d09361e8518a5a6\"\u003e\u003ccode\u003ed09a32b\u003c/code\u003e\u003c/a\u003e Add comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/3e495133fad3aeee3cd23954566ef9f1c5692707\"\u003e\u003ccode\u003e3e49513\u003c/code\u003e\u003c/a\u003e Normalize windows driver\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/5f8a6b9b18e4bb25960df9e08b77c6e00d05148a\"\u003e\u003ccode\u003e5f8a6b9\u003c/code\u003e\u003c/a\u003e Update versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/e9887900add55b5b3a245098699a0c52fdd5d540\"\u003e\u003ccode\u003ee988790\u003c/code\u003e\u003c/a\u003e Sanitize empty strings when getting Proxy Environment variables (\u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/2bf28d7cd8c0f81a74931dbc48c87c62b8b766bc\"\u003e\u003ccode\u003e2bf28d7\u003c/code\u003e\u003c/a\u003e Revert config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/327cef38cd5e439b6d71bb6b05856e18e494b741\"\u003e\u003ccode\u003e327cef3\u003c/code\u003e\u003c/a\u003e Remove outdated docs, closes \u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/102\"\u003e#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/21c4b7689f0026fcb1e4c9c54b4aa62788d60713\"\u003e\u003ccode\u003e21c4b76\u003c/code\u003e\u003c/a\u003e Fix path in message, closes \u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/126\"\u003e#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/be2c7b6ad0131050edf077bd8137072d218ca708\"\u003e\u003ccode\u003ebe2c7b6\u003c/code\u003e\u003c/a\u003e Update tests, readme, and simplify install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/tailwind/commit/f7e3037a29fb68368501dc4e711c4bcf5999cea5\"\u003e\u003ccode\u003ef7e3037\u003c/code\u003e\u003c/a\u003e Update README.md (\u003ca href=\"https://redirect.github.com/phoenixframework/tailwind/issues/132\"\u003e#132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/tailwind/compare/v0.3.1...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_rollbar` from 0.6.3 to 0.6.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_rollbar/blob/main/CHANGELOG.md\"\u003etower_rollbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.5] - 2025-09-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003emix tower_rollbar.install\u003c/code\u003e task.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.6.4] - 2025-08-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes compilation bug when \u003ccode\u003ecastore\u003c/code\u003e package is missing (possibly when updating \u003ccode\u003ephoenix\u003c/code\u003e to 1.8.0\u0026quot;)\u003c/li\u003e\n\u003c/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/mimiquate/tower_rollbar/commit/128cb33121f3a39b25d0b5c1d2cab7514292854a\"\u003e\u003ccode\u003e128cb33\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/8db64b9d11c1c9b88baee66dbb636bf3654edd27\"\u003e\u003ccode\u003e8db64b9\u003c/code\u003e\u003c/a\u003e test: updates tested igniter version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a415d8a3d3fec54ce0981268395079ff3254bfe2\"\u003e\u003ccode\u003ea415d8a\u003c/code\u003e\u003c/a\u003e docs: bumps ex_doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/cd841844fdc5b89934e0ea0f7d0110e1822980b8\"\u003e\u003ccode\u003ecd84184\u003c/code\u003e\u003c/a\u003e feat(igniter): \u003ccode\u003emix tower_rollbar.install\u003c/code\u003e task (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/86\"\u003e#86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/5517ad3e3043238aa39c284579ed576abd8f930e\"\u003e\u003ccode\u003e5517ad3\u003c/code\u003e\u003c/a\u003e chore(deps): tower 0.8.3 =\u0026gt; 0.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8720f7e717069dba0005aede7e56c8c30f19dab\"\u003e\u003ccode\u003ed8720f7\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a1684b3cf85791ff341f3ec381f769385a3763b5\"\u003e\u003ccode\u003ea1684b3\u003c/code\u003e\u003c/a\u003e chore(deps): bumps x509\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/f1c1404dbef9484805c0464e7904a4f0b927d429\"\u003e\u003ccode\u003ef1c1404\u003c/code\u003e\u003c/a\u003e fix: fixes compilation when castore not available (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/3e7af805d40c944e69d7e2e63d9448c27027c137\"\u003e\u003ccode\u003e3e7af80\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump bandit from 1.7.0 to 1.8.0 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8d8e6a3116eb3d1db01e8b13d42f7e1f81351fb\"\u003e\u003ccode\u003ed8d8e6a\u003c/code\u003e\u003c/a\u003e build(deps): bump castore from 1.0.14 to 1.0.15 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mimiquate/tower_rollbar/compare/v0.6.3...v0.6.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_slack` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_slack/blob/main/CHANGELOG.md\"\u003etower_slack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.2] - 2025-09-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003emix tower_slack.install\u003c/code\u003e task.\u003c/li\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/208","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/208","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/208/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-29T20:36:12.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2871986922","node_id":"PR_kwDONMZ1AM6rLwrq","number":207,"state":"closed","title":"chore(deps): bump the oban group with 2 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T23:39:58.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T20:36:12.000Z","updated_at":"2025-09-29T23:39:58.000Z","time_to_close":11026,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"oban","update_count":2,"packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"}],"path":null,"ecosystem":"hex"},"body":"Bumps the oban group with 2 updates: [oban](https://github.com/oban-bg/oban) and [oban_web](https://github.com/oban-bg/oban_web).\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mimiquate/elixir_observer/pull/207","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/207","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/207/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-29T19:23:19.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"3466303865","node_id":"PR_kwDOE7v5Zc6rK_aB","number":632,"state":"open","title":"Build(deps): Bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T19:23:19.000Z","updated_at":"2025-10-01T11:34:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/b310-digital/mindwendel/pull/632","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/b310-digital%2Fmindwendel/issues/632","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/632/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-29T14:34:05.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2870903416","node_id":"PR_kwDONMZ1AM6rHoJ4","number":200,"state":"open","title":"chore(deps): bump the all group with 17 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T14:34:05.000Z","updated_at":"2025-09-29T14:34:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":17,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"gettext","old_version":"0.26.2","new_version":"1.0.0","repository_url":"https://github.com/elixir-gettext/gettext"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_api","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_html","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/phoenixframework/phoenix_html"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"phoenix_live_view","old_version":"1.0.17","new_version":"1.1.13","repository_url":"https://github.com/phoenixframework/phoenix_live_view"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.5","repository_url":"https://github.com/mimiquate/tower_rollbar"},{"name":"tower_slack","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/mimiquate/tower_slack"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [gettext](https://github.com/elixir-gettext/gettext) | `0.26.2` | `1.0.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_api](https://github.com/open-telemetry/opentelemetry-erlang) | `1.4.0` | `1.4.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.9.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_html](https://github.com/phoenixframework/phoenix_html) | `4.2.1` | `4.3.0` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [phoenix_live_view](https://github.com/phoenixframework/phoenix_live_view) | `1.0.17` | `1.1.13` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.5` |\n| [tower_slack](https://github.com/mimiquate/tower_slack) | `0.6.1` | `0.6.2` |\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gettext` from 0.26.2 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-gettext/gettext/blob/main/CHANGELOG.md\"\u003egettext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the first 1.0 release of Gettext, a silly 10 years (and 6 months) after we started working on it. There are \u003cem\u003every few changes\u003c/em\u003e from the latest 0.26 release, and none of them are breaking.\u003c/p\u003e\n\u003cp\u003eHere are the new goodies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for concatenating sigils if all parts are known at compile time (such as \u003ccode\u003e\u0026quot;Hello \u0026quot; \u0026lt;\u0026gt; ~s(world)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSignificantly increase the timeout for \u003ccode\u003emix gettext.extract\u003c/code\u003e to two minutes.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGettext.put_locale!/1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHappy 10+ years of Elixir translations everyone! 🎉\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/elixir-gettext/gettext/commit/d1a8c86d0bb7b1edfd01538d6bce32b5b809363f\"\u003e\u003ccode\u003ed1a8c86\u003c/code\u003e\u003c/a\u003e Release v1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/e1df334b3bc77e21f457b38e4a76e3543814d016\"\u003e\u003ccode\u003ee1df334\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/962426d045cff9928e74681d54b6592beb0e44a2\"\u003e\u003ccode\u003e962426d\u003c/code\u003e\u003c/a\u003e Add new function put_locale!/2  (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/f436de77e5964fa5eb23838b8f97a2925c0c830a\"\u003e\u003ccode\u003ef436de7\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.20.2 to 1.20.4 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/54ccc9c865bbed89fdc20b670e66d083f89d1c59\"\u003e\u003ccode\u003e54ccc9c\u003c/code\u003e\u003c/a\u003e Don't time out when running the extract task (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/fc89178eb34933b909b3e78a2441308cbf13ecfc\"\u003e\u003ccode\u003efc89178\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.19.0 to 1.20.2 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/a44a2bf3a420af2a7f6c1448eb846c0b6f867f7b\"\u003e\u003ccode\u003ea44a2bf\u003c/code\u003e\u003c/a\u003e Harden CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/7405f841de22bd4df14774b746352965717334fc\"\u003e\u003ccode\u003e7405f84\u003c/code\u003e\u003c/a\u003e Fix concatenation of sigils (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/6a97765953bdec82233e6509c8df4f5feda62fc3\"\u003e\u003ccode\u003e6a97765\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/647d27f2dbfe2f1b0452a1879787bf5edd63098b\"\u003e\u003ccode\u003e647d27f\u003c/code\u003e\u003c/a\u003e Improve a deprecation warning (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-gettext/gettext/compare/v0.26.2...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOTLP Exporter 1.9.0 - 2025-10-16\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/894\"\u003eAdd is_remote flag in exporter for spans and span links\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_html` from 4.2.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_html/blob/main/CHANGELOG.md\"\u003ephoenix_html's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e for Duration\u003c/li\u003e\n\u003cli\u003eAdd function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e to improve documentation\u003c/li\u003e\n\u003cli\u003eAllow custom tags in options_for_select\u003c/li\u003e\n\u003cli\u003eAllow datetime as form option values\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive warnings on Elixir v1.19\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/phoenixframework/phoenix_html/commit/8cfd3e37ff9ef0924812a78cf6c9d27cdbd4e726\"\u003e\u003ccode\u003e8cfd3e3\u003c/code\u003e\u003c/a\u003e Release v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/053861d1894a10c7787678ab2d86a0b5cee9686f\"\u003e\u003ccode\u003e053861d\u003c/code\u003e\u003c/a\u003e Avoid false positive in Elixir v1.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/671042cd441ef001ecba00904be2e5bc39c07dfe\"\u003e\u003ccode\u003e671042c\u003c/code\u003e\u003c/a\u003e allow datetime as form option values (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0f31c955865319f6fe5ac58b5e5c4c385bd80796\"\u003e\u003ccode\u003e0f31c95\u003c/code\u003e\u003c/a\u003e feat(custom option tags): allow custom tags in options_for_select (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/0229e746a22d70093473a39946c9868a585181a3\"\u003e\u003ccode\u003e0229e74\u003c/code\u003e\u003c/a\u003e Add function head for argument names of \u003ccode\u003enormalize_value/2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/49bb6e545e4799c30cdad97a0b71413bbd9f7c1d\"\u003e\u003ccode\u003e49bb6e5\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePhoenix.HTML.Safe\u003c/code\u003e to Duration (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/ddaf11e54f38627c03aa4da937ecb95259103926\"\u003e\u003ccode\u003eddaf11e\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_html/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_html/commit/c11a9e3b87fa247b31a8ccf1265d6588e1ddaa04\"\u003e\u003ccode\u003ec11a9e3\u003c/code\u003e\u003c/a\u003e Implement Access for form fields\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_html/compare/v4.2.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/200","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/200","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/200/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-22T20:59:58.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2851123965","node_id":"PR_kwDONMZ1AM6p8LL9","number":198,"state":"closed","title":"chore(deps): bump the all group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T14:21:31.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T20:59:58.000Z","updated_at":"2025-09-29T14:21:31.000Z","time_to_close":580893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":15,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"gettext","old_version":"0.26.2","new_version":"1.0.0","repository_url":"https://github.com/elixir-gettext/gettext"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.1","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tailwind","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/phoenixframework/tailwind"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/mimiquate/tower_rollbar"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [gettext](https://github.com/elixir-gettext/gettext) | `0.26.2` | `1.0.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.1` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.9.0` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tailwind](https://github.com/phoenixframework/tailwind) | `0.3.1` | `0.4.0` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.4` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gettext` from 0.26.2 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-gettext/gettext/blob/main/CHANGELOG.md\"\u003egettext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the first 1.0 release of Gettext, a silly 10 years (and 6 months) after we started working on it. There are \u003cem\u003every few changes\u003c/em\u003e from the latest 0.26 release, and none of them are breaking.\u003c/p\u003e\n\u003cp\u003eHere are the new goodies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for concatenating sigils if all parts are known at compile time (such as \u003ccode\u003e\u0026quot;Hello \u0026quot; \u0026lt;\u0026gt; ~s(world)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSignificantly increase the timeout for \u003ccode\u003emix gettext.extract\u003c/code\u003e to two minutes.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eGettext.put_locale!/1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHappy 10+ years of Elixir translations everyone! 🎉\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/elixir-gettext/gettext/commit/d1a8c86d0bb7b1edfd01538d6bce32b5b809363f\"\u003e\u003ccode\u003ed1a8c86\u003c/code\u003e\u003c/a\u003e Release v1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/e1df334b3bc77e21f457b38e4a76e3543814d016\"\u003e\u003ccode\u003ee1df334\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/962426d045cff9928e74681d54b6592beb0e44a2\"\u003e\u003ccode\u003e962426d\u003c/code\u003e\u003c/a\u003e Add new function put_locale!/2  (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/f436de77e5964fa5eb23838b8f97a2925c0c830a\"\u003e\u003ccode\u003ef436de7\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.20.2 to 1.20.4 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/54ccc9c865bbed89fdc20b670e66d083f89d1c59\"\u003e\u003ccode\u003e54ccc9c\u003c/code\u003e\u003c/a\u003e Don't time out when running the extract task (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/fc89178eb34933b909b3e78a2441308cbf13ecfc\"\u003e\u003ccode\u003efc89178\u003c/code\u003e\u003c/a\u003e Bump erlef/setup-beam from 1.19.0 to 1.20.2 (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/a44a2bf3a420af2a7f6c1448eb846c0b6f867f7b\"\u003e\u003ccode\u003ea44a2bf\u003c/code\u003e\u003c/a\u003e Harden CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/7405f841de22bd4df14774b746352965717334fc\"\u003e\u003ccode\u003e7405f84\u003c/code\u003e\u003c/a\u003e Fix concatenation of sigils (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/6a97765953bdec82233e6509c8df4f5feda62fc3\"\u003e\u003ccode\u003e6a97765\u003c/code\u003e\u003c/a\u003e Update Elixir/Erlang versions in CI (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-gettext/gettext/commit/647d27f2dbfe2f1b0452a1879787bf5edd63098b\"\u003e\u003ccode\u003e647d27f\u003c/code\u003e\u003c/a\u003e Improve a deprecation warning (\u003ca href=\"https://redirect.github.com/elixir-gettext/gettext/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-gettext/gettext/compare/v0.26.2...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003esoftware-mansion/live-debugger#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Weird css behaviour on flash and fullscreen by \u003ca href=\"https://github.com/srzeszut\"\u003e\u003ccode\u003e@​srzeszut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003esoftware-mansion/live-debugger#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix truncated tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003esoftware-mansion/live-debugger#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Lack of exception trace by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003esoftware-mansion/live-debugger#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/software-mansion/live-debugger/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\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/software-mansion/live-debugger/blob/main/CHANGELOG.md\"\u003elive_debugger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1 (2025-09-09)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChecking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/731\"\u003e#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWeird css behaviour on flash and fullscreen in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/727\"\u003e#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix truncated tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/733\"\u003e#733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLack of exception trace in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/732\"\u003e#732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd search to query api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003e#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search bar to global traces in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate debug websocket with client browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd menu to debug button in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003e#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from the browser in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003e#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSending window initialized event to LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003e#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter handling of nested LiveViews inspection in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003e#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate successor discoverer serivce in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003e#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisplay node info during highlighting in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003e#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspecting elements from LiveDebugger in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003e#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedirect to active live views in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight search phrase inside callback trace body in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003e#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvent struct in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd inspect button tooltip in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable inspecting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveViewDebugService in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003e#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PubSub name as config value in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003e#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix displaying maps with structs as keys in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with duplicated windowID in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003e#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search query limited by page size in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix collapsible not cloasing on refresh in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003e#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed typo in debug button and removed event context in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003e#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting on dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003e#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisabling debug menu when inspect mode changed in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003e#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix highlighting in dead view mode in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003e#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed scrolling with debug options menu in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to debug module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003e#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplified pubsub routing in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003e#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd link in global traces view to preview given node in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003e#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003e#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003e#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded event behaviour in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd api for \u003ccode\u003e:dbg\u003c/code\u003e module in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement event bus in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003eSettingsStorage\u003c/code\u003e api in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003e#574\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/software-mansion/live-debugger/commit/0db55c15a5171f002eec6a581d4e892ed822cf7c\"\u003e\u003ccode\u003e0db55c1\u003c/code\u003e\u003c/a\u003e Release v0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/66bdc3328cd42ae6215a0b6cb924e90583db0ebb\"\u003e\u003ccode\u003e66bdc33\u003c/code\u003e\u003c/a\u003e Bug: Lack of exception trace (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/da9d9881ce15366d0b16bd996f2b5ca98a55fab9\"\u003e\u003ccode\u003eda9d988\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/0e4a44e406ab0767067e98c8cf524e06499dcdea\"\u003e\u003ccode\u003e0e4a44e\u003c/code\u003e\u003c/a\u003e Bug: Fix truncated tooltip (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/caec742264ec20b6503801f29cf4473eb273a6a7\"\u003e\u003ccode\u003ecaec742\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/bf31828914458b5fc2fdff4e2ee651ec0ddda50d\"\u003e\u003ccode\u003ebf31828\u003c/code\u003e\u003c/a\u003e Enhancement: Add :info flash (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/75cfc26259548c271f28f2dffb8976bedd616c13\"\u003e\u003ccode\u003e75cfc26\u003c/code\u003e\u003c/a\u003e Bug: Checking if module has \u003ccode\u003e:module_info\u003c/code\u003e exported (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/838a7fe37de403012d96557df4638c13847cc39a\"\u003e\u003ccode\u003e838a7fe\u003c/code\u003e\u003c/a\u003e Docs: Update documentation, add survey (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/894\"\u003eAdd is_remote flag in exporter for spans and span links\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.13/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.13 (2025-09-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix invalid stream merging in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3993\"\u003e#3993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extra spaces when formatting nested inline tags (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3995\"\u003e#3995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure error reasons are serialized into message on the client (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3984\"\u003e#3984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent JavaScript exception when passing \u003ccode\u003e\u0026quot;*\u0026quot;\u003c/code\u003e to \u003ccode\u003eJS.ignore_attributes/3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.12 (2025-09-14)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent HEEx line from being reported as uncovered when using a pattern in \u003ccode\u003e:let={}\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically symlink \u003ccode\u003eassets/node_modules\u003c/code\u003e folder for colocated hooks (see the documentation for \u003ccode\u003ePhoenix.LiveView.ColocatedJS\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/198","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/198","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/198/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-08T20:32:37.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"3395639939","node_id":"PR_kwDONMZ1AM6ndfgP","number":195,"state":"open","title":"chore(deps): bump the all group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T20:32:37.000Z","updated_at":"2025-09-22T20:59:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all","update_count":13,"packages":[{"name":"bandit","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/mtrudel/bandit"},{"name":"live_debugger","old_version":"0.3.1","new_version":"0.4.0","repository_url":"https://github.com/software-mansion/live-debugger"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"oban_web","old_version":"2.11.3","new_version":"2.11.4","repository_url":"https://github.com/oban-bg/oban_web"},{"name":"opentelemetry","old_version":"1.5.0","new_version":"1.5.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"opentelemetry_bandit","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang-contrib"},{"name":"opentelemetry_exporter","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/open-telemetry/opentelemetry-erlang"},{"name":"phoenix","old_version":"1.7.21","new_version":"1.8.1","repository_url":"https://github.com/phoenixframework/phoenix"},{"name":"phoenix_live_reload","old_version":"1.6.0","new_version":"1.6.1","repository_url":"https://github.com/phoenixframework/phoenix_live_reload"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1","repository_url":"https://github.com/elixir-ecto/postgrex"},{"name":"tower_rollbar","old_version":"0.6.3","new_version":"0.6.4","repository_url":"https://github.com/mimiquate/tower_rollbar"}],"path":null,"ecosystem":"hex"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bandit](https://github.com/mtrudel/bandit) | `1.7.0` | `1.8.0` |\n| [live_debugger](https://github.com/software-mansion/live-debugger) | `0.3.1` | `0.4.0` |\n| [oban](https://github.com/oban-bg/oban) | `2.19.4` | `2.20.1` |\n| [oban_web](https://github.com/oban-bg/oban_web) | `2.11.3` | `2.11.4` |\n| [opentelemetry](https://github.com/open-telemetry/opentelemetry-erlang) | `1.5.0` | `1.5.1` |\n| [opentelemetry_bandit](https://github.com/open-telemetry/opentelemetry-erlang-contrib) | `0.2.0` | `0.3.0` |\n| [opentelemetry_exporter](https://github.com/open-telemetry/opentelemetry-erlang) | `1.8.0` | `1.8.1` |\n| [phoenix](https://github.com/phoenixframework/phoenix) | `1.7.21` | `1.8.1` |\n| [phoenix_live_reload](https://github.com/phoenixframework/phoenix_live_reload) | `1.6.0` | `1.6.1` |\n| [postgrex](https://github.com/elixir-ecto/postgrex) | `0.20.0` | `0.21.1` |\n| [tower_rollbar](https://github.com/mimiquate/tower_rollbar) | `0.6.3` | `0.6.4` |\n\n\nUpdates `bandit` from 1.7.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mtrudel/bandit/blob/main/CHANGELOG.md\"\u003ebandit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0 (18 Aug 2025)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf the user has set a \u003ccode\u003econtent-length\u003c/code\u003e header when calling \u003ccode\u003esend_chunked/3\u003c/code\u003e,\nthe response is streamed via content-length delimited framing and not chunked (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/510\"\u003e#510\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/mtrudel/bandit/commit/d15dd87082a0cc48530b5ad71f5e270fd94c69c9\"\u003e\u003ccode\u003ed15dd87\u003c/code\u003e\u003c/a\u003e Version bump to 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/441573bc1c4adc33202b280bdc3db6bf4f78cf23\"\u003e\u003ccode\u003e441573b\u003c/code\u003e\u003c/a\u003e Bump dialyxir from 1.4.5 to 1.4.6 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/a0110ac39151d4c2a1126c9ddfb3a7acfd419d8a\"\u003e\u003ccode\u003ea0110ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/619e53610370a9d2d16f95d5f82f7f4b0ec7fc7f\"\u003e\u003ccode\u003e619e536\u003c/code\u003e\u003c/a\u003e Add support for streaming responses if content-length is set when chunking (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/e3f29e8465602d73c5df6a843cabb21ba8fc7ba4\"\u003e\u003ccode\u003ee3f29e8\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.12 to 0.5.15 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b812b2d94e00ebc9fea58d3daae07b0454d49274\"\u003e\u003ccode\u003eb812b2d\u003c/code\u003e\u003c/a\u003e Bump plug from 1.18.0 to 1.18.1 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/112ff4331ab27eab4d89d9abf2fe6d68facad9b7\"\u003e\u003ccode\u003e112ff43\u003c/code\u003e\u003c/a\u003e Add changelog link to package metadata (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/b1ec62bde883c5a3606b33239794c9d3da8034ad\"\u003e\u003ccode\u003eb1ec62b\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.11 to 0.5.12 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/82ffbbf75adc2057a2d56343866be1cfef5de5a0\"\u003e\u003ccode\u003e82ffbbf\u003c/code\u003e\u003c/a\u003e Bump req from 0.5.10 to 0.5.11 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtrudel/bandit/commit/98918c67792b0f27e5bfcc1c295d2ed37d52a3c6\"\u003e\u003ccode\u003e98918c6\u003c/code\u003e\u003c/a\u003e Bump mix_test_watch from 1.2.0 to 1.3.0 (\u003ca href=\"https://redirect.github.com/mtrudel/bandit/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mtrudel/bandit/compare/1.7.0...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `live_debugger` from 0.3.1 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/software-mansion/live-debugger/releases\"\u003elive_debugger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e484 add search to query api by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/538\"\u003esoftware-mansion/live-debugger#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Add search bar to global traces by \u003ca href=\"https://github.com/samrobinsonsauce\"\u003e\u003ccode\u003e@​samrobinsonsauce\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/570\"\u003esoftware-mansion/live-debugger#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: create debug websocket with client browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/619\"\u003esoftware-mansion/live-debugger#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: add menu to debug button by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/623\"\u003esoftware-mansion/live-debugger#623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from the browser by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/642\"\u003esoftware-mansion/live-debugger#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: sending window initialized event to LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/651\"\u003esoftware-mansion/live-debugger#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: better handling of nested LiveViews inspection by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/650\"\u003esoftware-mansion/live-debugger#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Create successor discoverer serivce by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/655\"\u003esoftware-mansion/live-debugger#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: display node info during highlighting by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/679\"\u003esoftware-mansion/live-debugger#679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: inspecting elements from LiveDebugger by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/685\"\u003esoftware-mansion/live-debugger#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: redirect to active live views by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/691\"\u003esoftware-mansion/live-debugger#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature: Highlight search phrase inside callback trace body by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/692\"\u003esoftware-mansion/live-debugger#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Event struct by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/703\"\u003esoftware-mansion/live-debugger#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add inspect button tooltip by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/705\"\u003esoftware-mansion/live-debugger#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Disable inspecting in dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/707\"\u003esoftware-mansion/live-debugger#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBug: Fix LiveViewDebugService by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/534\"\u003esoftware-mansion/live-debugger#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhancement: Add PubSub name as config value by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/537\"\u003esoftware-mansion/live-debugger#537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix displaying maps with structs as keys by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/571\"\u003esoftware-mansion/live-debugger#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix issue with duplicated windowID by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/686\"\u003esoftware-mansion/live-debugger#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix search query limited by page size by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/682\"\u003esoftware-mansion/live-debugger#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix collapsible not cloasing on refresh by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/693\"\u003esoftware-mansion/live-debugger#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fixed typo in debug button and removed event context by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/698\"\u003esoftware-mansion/live-debugger#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fix highlighting on dead view mode by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/694\"\u003esoftware-mansion/live-debugger#694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: disabling debug menu when inspect mode changed by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/706\"\u003esoftware-mansion/live-debugger#706\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: Fix highlighting in dead view mode by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/710\"\u003esoftware-mansion/live-debugger#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBug: fixed scrolling with debug options menu by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/711\"\u003esoftware-mansion/live-debugger#711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor: Switch to debug module by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/496\"\u003esoftware-mansion/live-debugger#496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Simplified pubsub routing by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/529\"\u003esoftware-mansion/live-debugger#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add link in global traces view to preview given node by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/528\"\u003esoftware-mansion/live-debugger#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebugger.API.System.Module\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/565\"\u003esoftware-mansion/live-debugger#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebugger.API.System.Process\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/568\"\u003esoftware-mansion/live-debugger#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: added event behaviour by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/567\"\u003esoftware-mansion/live-debugger#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTask: Add api for \u003ccode\u003e:dbg\u003c/code\u003e module by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/566\"\u003esoftware-mansion/live-debugger#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: implement event bus by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/572\"\u003esoftware-mansion/live-debugger#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: create \u003ccode\u003eSettingsStorage\u003c/code\u003e api by \u003ca href=\"https://github.com/GuzekAlan\"\u003e\u003ccode\u003e@​GuzekAlan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/574\"\u003esoftware-mansion/live-debugger#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebuggerRefactor.API.LiveViewDebug\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/573\"\u003esoftware-mansion/live-debugger#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: Create \u003ccode\u003eLiveDebuggerRefactor.API.TracesStorage\u003c/code\u003e by \u003ca href=\"https://github.com/hhubert6\"\u003e\u003ccode\u003e@​hhubert6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/576\"\u003esoftware-mansion/live-debugger#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: create base for each service by \u003ca href=\"https://github.com/kraleppa\"\u003e\u003ccode\u003e@​kraleppa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/pull/578\"\u003esoftware-mansion/live-debugger#578\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/software-mansion/live-debugger/commit/26a81c2d44736c50c316d66141d8c3864dc1317d\"\u003e\u003ccode\u003e26a81c2\u003c/code\u003e\u003c/a\u003e Release v0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/beb56029d19fbb447eee4c613e0d2d713fb19a7f\"\u003e\u003ccode\u003ebeb5602\u003c/code\u003e\u003c/a\u003e Enhancement: Update existing docs to new version (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/3344b9e0a954b86130555830e1c3dfec4db86a3a\"\u003e\u003ccode\u003e3344b9e\u003c/code\u003e\u003c/a\u003e Tests: add tests for elements inspection (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/81470e48e564361ca595f4d71941260a414d0302\"\u003e\u003ccode\u003e81470e4\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/13b3d11dd16eeae44104cce6b181050e17785123\"\u003e\u003ccode\u003e13b3d11\u003c/code\u003e\u003c/a\u003e Bug: fixed scrolling with debug options menu (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/711\"\u003e#711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/1ea6869df9e6c2543dade37de1c8779a76ed3646\"\u003e\u003ccode\u003e1ea6869\u003c/code\u003e\u003c/a\u003e Bug: Fix highlighting in dead view mode (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/e1da66cb351d460512c575e9a9d9b6c635e10fda\"\u003e\u003ccode\u003ee1da66c\u003c/code\u003e\u003c/a\u003e Docs: Elements Inspection (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/e4bc2258f185910b31e09b28ee27d57eee9d09e3\"\u003e\u003ccode\u003ee4bc225\u003c/code\u003e\u003c/a\u003e Enhancement: Disable inspecting in dead view mode (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/c6d00afa84c340ad807e209a5dae9dd7c996ee07\"\u003e\u003ccode\u003ec6d00af\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/software-mansion/live-debugger/commit/ff1306d81e8b2f527d1603ccfb06316490251315\"\u003e\u003ccode\u003eff1306d\u003c/code\u003e\u003c/a\u003e Bug: disabling menu when inspect mode changed (\u003ca href=\"https://redirect.github.com/software-mansion/live-debugger/issues/706\"\u003e#706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/software-mansion/live-debugger/compare/v0.3.1...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban_web` from 2.11.3 to 2.11.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/releases\"\u003eoban_web's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity. This should make it easier to identify metric issues on solo nodes, e.g. in dev or a staging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate with app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma with an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than hoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md\"\u003eoban_web's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.4 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Connectivity] Consider metric checks for disconnected status.\u003c/p\u003e\n\u003cp\u003eThe connectivity status is now determined by \u003ccode\u003eMet\u003c/code\u003e output as well as pubsub connectivity.\nThis should make it easier to identify metric issues on solo nodes, e.g. in dev or a\nstaging environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Dashboard] Read phoenix js assets at compile time.\u003c/p\u003e\n\u003cp\u003eStop bundling phoenix and liveview assets. Instead, read them at compile time and concatenate\nwith app js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Trim strings when splitting to parse integers.\u003c/p\u003e\n\u003cp\u003eThis prevents \u0026quot;not a textual representation of an integer\u0026quot; errors when splitting on a comma\nwith an empty string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Search] Move all regexes out of module attributes.\u003c/p\u003e\n\u003cp\u003eRegexes aren't allowed in module attributes as of OTP 28. This moves them inline rather than\nhoisted at the top of the module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Sidebar] Fix column header mismatch in sidebar.\u003c/p\u003e\n\u003cp\u003eThe headers and values in the sidebar were misaligned and showed the wrong values.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/563f3fb20fd357a3e344c4b26553d8be8b117113\"\u003e\u003ccode\u003e563f3fb\u003c/code\u003e\u003c/a\u003e Release v2.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/403bba6f680962d63e4f79e0b8e499bc156d7cd9\"\u003e\u003ccode\u003e403bba6\u003c/code\u003e\u003c/a\u003e Read phoenix js assests at compile time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/f718ad979eead50393e4ec6d87586fb11dc671ad\"\u003e\u003ccode\u003ef718ad9\u003c/code\u003e\u003c/a\u003e Trim strings when splitting to parse ints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/b143f9b1e99f7905dbfe5e77cf49754cc4e4b0d2\"\u003e\u003ccode\u003eb143f9b\u003c/code\u003e\u003c/a\u003e Consider metric checks for disconnected status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/1b391e0fb0c6a38a5abf15b3d2a1611e1088cb54\"\u003e\u003ccode\u003e1b391e0\u003c/code\u003e\u003c/a\u003e Upgrade all packages within constraints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/3d9f986645c231b2c55077f91426e173ed5892f6\"\u003e\u003ccode\u003e3d9f986\u003c/code\u003e\u003c/a\u003e Move all regexes out of module attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/6b8d45e110e651baccb50300891262b5fe34d061\"\u003e\u003ccode\u003e6b8d45e\u003c/code\u003e\u003c/a\u003e Run pro migrations for the private schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/dd9892e80e791824fb3d0bebd4455218693a410e\"\u003e\u003ccode\u003edd9892e\u003c/code\u003e\u003c/a\u003e Include :stop_queues in resolver actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/491c5436a49df7026b62fc775e8f9a2dd3ac4cf5\"\u003e\u003ccode\u003e491c543\u003c/code\u003e\u003c/a\u003e Update overview.md (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/126\"\u003e#126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban_web/commit/40ba39ef7809baa56c53738d186518b6fb18fa90\"\u003e\u003ccode\u003e40ba39e\u003c/code\u003e\u003c/a\u003e Fix column header mismatch in sidebar (\u003ca href=\"https://redirect.github.com/oban-bg/oban_web/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oban-bg/oban_web/compare/v2.11.3...v2.11.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry` from 1.5.0 to 1.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/737\"\u003eBREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\nadding to the\nattributes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAPI 1.4.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eChanges\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_api` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI 1.4.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type spec fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSDK 1.5.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/836\"\u003efix the batch export timeout to default to 30 seconds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExporter 1.8.0 - 2024-10-05\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[BREAKING: Fixes support for attribute values that are lists when the elements\nare strings. Lists of strings in attribute values are no longer flattened but\nremain lists. Meaning to use an Erlang charlist string or iolist as a value in\nan attribute you must convert with \u003ccode\u003eunicode:characters_to_binary\u003c/code\u003e before\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/open-telemetry/opentelemetry-erlang/commit/c1be48a790e9033a5bee678859523ebe1a69f8f5\"\u003e\u003ccode\u003ec1be48a\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/95aa0e659cf566c534b33bdd50bf70cb7b53a663\"\u003e\u003ccode\u003e95aa0e6\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v4.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/e48a97ba424f99938f627817965e56c24af542b6\"\u003e\u003ccode\u003ee48a97b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency python to 3.13 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/5f3d1cc279e926ce9672a622ae38092f5ad086bd\"\u003e\u003ccode\u003e5f3d1cc\u003c/code\u003e\u003c/a\u003e chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.131...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/d8db1bd9bc46e04cbed66be18407b01b91b0b3ef\"\u003e\u003ccode\u003ed8db1bd\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.8 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/37e47aff94b8c65632f485e71f883f710f882c27\"\u003e\u003ccode\u003e37e47af\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.29.7 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/dc6712610cb4c56f36b66e352ef829cf7d627904\"\u003e\u003ccode\u003edc67126\u003c/code\u003e\u003c/a\u003e bump patch version of api, sdk and exporter (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/44f7339f452e2d0896a5e94cebca90d9c1eb5ad0\"\u003e\u003ccode\u003e44f7339\u003c/code\u003e\u003c/a\u003e Sort contributor listings and remove affiliation from emeriti (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/872\"\u003e#872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/189ba951276b7f32209caf71f1759c1e0364b6ab\"\u003e\u003ccode\u003e189ba95\u003c/code\u003e\u003c/a\u003e Add minimum token permissions for all github workflow files (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commit/ba1d54396744bb191307e9a8bd564177b6f258e9\"\u003e\u003ccode\u003eba1d543\u003c/code\u003e\u003c/a\u003e Create repository-settings.md (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/compare/v1.4.0...v1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_bandit` from 0.2.0 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/releases\"\u003eopentelemetry_bandit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOpentelemetry Process Propagator - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcess Propagator: Allow looking up parent when parent is a named process \u003ca href=\"https://github.com/jeffutter\"\u003e\u003ccode\u003e@​jeffutter\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Elixir 1.15 and OTP 26 \u003ca href=\"https://github.com/tomtaylor\"\u003e\u003ccode\u003e@​tomtaylor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix documentation example for OpentelemetryProcessPropagator \u003ca href=\"https://github.com/bamorim\"\u003e\u003ccode\u003e@​bamorim\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix tiny typos \u003ca href=\"https://github.com/davydog187\"\u003e\u003ccode\u003e@​davydog187\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/propagators/opentelemetry_process_propagator/CHANGELOG.MD\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOpentelemetry Cowboy - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🧰 Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate cowboy to opentelemetry_api 1.2 \u003ca href=\"https://github.com/bryannaegele\"\u003e\u003ccode\u003e@​bryannaegele\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOpentelemetry Bandit - v0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse public interfaces in Bandit module \u003ca href=\"https://github.com/mtrudel\"\u003e\u003ccode\u003e@​mtrudel\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(bandit): handles bandit throw/exit events \u003ca href=\"https://github.com/grzuy\"\u003e\u003ccode\u003e@​grzuy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc typo \u003ca href=\"https://github.com/zorbash\"\u003e\u003ccode\u003e@​zorbash\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003ca href=\"https://opentelemetry-erlang-contrib/blob/main/instrumentation/opentelemetry_bandit/CHANGELOG.MD\"\u003eChangelog\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/open-telemetry/opentelemetry-erlang-contrib/commit/07e5711214eda992dd50cc7122196ecddc25b762\"\u003e\u003ccode\u003e07e5711\u003c/code\u003e\u003c/a\u003e Prep release v0.3.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/5ce723d7e57e96bccf970949e6e9b485c9f9f133\"\u003e\u003ccode\u003e5ce723d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency opentelemetry_telemetry to v1.1.2 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/7969e8e1d408798a4ef4988bb609c31064d2444f\"\u003e\u003ccode\u003e7969e8e\u003c/code\u003e\u003c/a\u003e chore(deps): update postgres docker tag to v17.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/59affdfc81cc58444490dc79aea7d19219caab8b\"\u003e\u003ccode\u003e59affdf\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency ex_doc to ~\u0026gt; 0.38 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/67db41fc8e5a748209eadd3ba9cf1fbb87a63080\"\u003e\u003ccode\u003e67db41f\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency tesla to v1.14.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/6ce31376b8069a7408eb5cf708f8afd188a25790\"\u003e\u003ccode\u003e6ce3137\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency nebulex to v2.6.5 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/c98d26a915f701f54eccea034dac4f22bab4568c\"\u003e\u003ccode\u003ec98d26a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency plug to v1.18.0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/0569321cfa06147fd1f0813460a836e0019c890b\"\u003e\u003ccode\u003e0569321\u003c/code\u003e\u003c/a\u003e Use public interfaces in Bandit module (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/70f561d4f92f9233ade373351d0e97287588eb30\"\u003e\u003ccode\u003e70f561d\u003c/code\u003e\u003c/a\u003e chore(deps): update opentelemetry-erlang monorepo (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/commit/4809933ebd55def444348ccbf88d8a47456f2525\"\u003e\u003ccode\u003e4809933\u003c/code\u003e\u003c/a\u003e chore(deps): update mysql docker tag to v9.3 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang-contrib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang-contrib/compare/otel-http-v0.2.0...opentelemetry-bandit-v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry_exporter` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/releases\"\u003eopentelemetry_exporter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAPI/SDK/OTLP Exporter 1.0.2 and Zipking Exporter 1.0.0\u003c/h2\u003e\n\u003ch2\u003e[API 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/362\"\u003eDocs for Erlang and Elixir macros added\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[SDK 1.0.2] - 2022-02-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/357\"\u003eSimpler configuration of span processors\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpan Status: Ignore status changes that don't follow the \u003ca href=\"https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/trace/api.md#set-status\"\u003edefine precedence in\nthe spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Zipkin Exporter 1.0.0] - 2022-2-22\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eAttribute values that are lists are converted to strings in Zipkin tags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/363\"\u003eStatus converted to Zipkin tags\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/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md\"\u003eopentelemetry_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eOTLP Exporter 1.8.1 - 2025-07-31\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/789\"\u003efix: key for otlp traces protocol app configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental API 0.5.2 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv values\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eExperimental SDK 0.6.0 - 2024-11-22\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/720\"\u003emove metrics and logs to separate exporter modules from\ntraces\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/709\"\u003emake the console metric exporter handle all\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/782\"\u003emetric exporter: nothing to do for an empty list of\nmetrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/780\"\u003eHard code semconv\nvalues\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-erlang/pull/715\"\u003eremoved old unused otel_metric_exporter\nmodule\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-erlang/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix` from 1.7.21 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix/blob/main/CHANGELOG.md\"\u003ephoenix's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1 (2025-08-28)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Fix AGENTS.md failing to include CSS and JavaScript sections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0 (2025-08-05)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Don't include node_modules override in generated \u003ccode\u003etsconfig.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live|html|json] - Make context argument optional. Defaults to the plural name.\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003emix precommit\u003c/code\u003e alias\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eAGENTS.md\u003c/code\u003e generation compatible with \u003ca href=\"https://hexdocs.pm/usage_rules/\"\u003e\u003ccode\u003eusage_rules\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[phx.new] Add \u003ccode\u003eusage_rules\u003c/code\u003e folder to installer, allowing to sync generic Phoenix rules into new projects\u003c/li\u003e\n\u003cli\u003e[phx.new] Use LiveView 1.1 release in generated code\u003c/li\u003e\n\u003cli\u003e[phx.new] Ensure theme selector and flash closing works without LiveView\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.4 (2025-07-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix phx.gen.presence PubSub server name for umbrella apps\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ephx.gen.live\u003c/code\u003e subscribing to pubsub in disconnected mounts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.new] Initialize initial git repo when git is installed\u003c/li\u003e\n\u003cli\u003e[phx.new] Opt-in to HEEx \u003ccode\u003e:debug_tags_location\u003c/code\u003e in development\u003c/li\u003e\n\u003cli\u003e[phx.gen.live|html|json|context] Make context name optional and inflect based on schema when missing\u003c/li\u003e\n\u003cli\u003e[phx.gen.*] Use new Ecto 3.13 \u003ccode\u003eRepo.transact/2\u003c/code\u003e in generators\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Warn when using \u003ccode\u003ephx.gen.auth\u003c/code\u003e without esbuild as features assume \u003ccode\u003ephoenix_html.js\u003c/code\u003e in bundle\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esecurity.md\u003c/code\u003e guide for security best practices\u003c/li\u003e\n\u003cli\u003e[phoenix.js] - Add fetch() support to LongPoll when XMLHTTPRequest is not available\u003c/li\u003e\n\u003cli\u003eOptimize parameter scrubbing by precompiling patterns\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.3 (2025-05-07)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.auth] Allow configuring the scope's assign key in phx.gen.auth\u003c/li\u003e\n\u003cli\u003e[phx.new] Do not override theme in root layout if explicitly set\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.2 (2025-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[phx.gen.live] Only subscribe to pubsub if connected\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Remove unused current_password field\u003c/li\u003e\n\u003cli\u003e[phx.gen.auth] Use context_app for scopes to fix generated scopes in umbrella apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0-rc.1 (2025-04-16)\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/675e924f73da1a594e07ba22fcbda6636790ce4a\"\u003e\u003ccode\u003e675e924\u003c/code\u003e\u003c/a\u003e Release 1.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/21ee2610ab20557a9ad1fd8f7599f5b5fe5d9b5d\"\u003e\u003ccode\u003e21ee261\u003c/code\u003e\u003c/a\u003e Bump eslint from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6440\"\u003e#6440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a280eedf8a9850e45076977e368c7397c310db2a\"\u003e\u003ccode\u003ea280eed\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​eslint/js\u003c/code\u003e from 9.33.0 to 9.34.0 (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6439\"\u003e#6439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/c3d2fa919eb4cd19fa5fef95e97a36c71f936247\"\u003e\u003ccode\u003ec3d2fa9\u003c/code\u003e\u003c/a\u003e Touchup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/8502ed0107f0420498f1e3fac235bc80c86c6912\"\u003e\u003ccode\u003e8502ed0\u003c/code\u003e\u003c/a\u003e Clarify timestamp further. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/820b0badf4ad6eebdcafa88c3bcd67259dd9b9ee\"\u003e\u003ccode\u003e820b0ba\u003c/code\u003e\u003c/a\u003e Clarify timestamp. Closes \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6438\"\u003e#6438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a64dd8c698785e6593c0a707a7f20190bc02a279\"\u003e\u003ccode\u003ea64dd8c\u003c/code\u003e\u003c/a\u003e Run mix compile before assets.build in generated aliases (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6407\"\u003e#6407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/b0fe7ecd788ecc0d8c0bfbe6eb67b4fd4de57bb4\"\u003e\u003ccode\u003eb0fe7ec\u003c/code\u003e\u003c/a\u003e Update controllers documentation (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6416\"\u003e#6416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/a5646dfcf099e09d031081516efcc60835c73bef\"\u003e\u003ccode\u003ea5646df\u003c/code\u003e\u003c/a\u003e Fix some typos (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6386\"\u003e#6386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix/commit/14faee2ebebca4151572e9f3f1677fcac29a6c9d\"\u003e\u003ccode\u003e14faee2\u003c/code\u003e\u003c/a\u003e Fix controller.ex documentation typo (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix/issues/6417\"\u003e#6417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix/compare/v1.7.21...v1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_reload` from 1.6.0 to 1.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/blob/main/CHANGELOG.md\"\u003ephoenix_live_reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.1 (2025-08-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnhancements\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e:phoenix_live_reload\u003c/code\u003e private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e@import\u003c/code\u003e directive support to CSS reload strategy\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/phoenixframework/phoenix_live_reload/commit/a2a3702554e95a3ad50887436d98ef1dce598e38\"\u003e\u003ccode\u003ea2a3702\u003c/code\u003e\u003c/a\u003e Release v1.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/36447061a49f23eca22a019399eef8d0ed823ea7\"\u003e\u003ccode\u003e3644706\u003c/code\u003e\u003c/a\u003e Set :phoenix_live_reload private field to downstream instrumentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/1c5c15042c112e4f3bee22d1d9a620a235c5746a\"\u003e\u003ccode\u003e1c5c150\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/import\"\u003e\u003ccode\u003e@​import\u003c/code\u003e\u003c/a\u003e directive support to CSS reload strategy (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/5e8c104fe92b9ac24e810e8c64453e7496424322\"\u003e\u003ccode\u003e5e8c104\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_reload/issues/170\"\u003e#170\u003c/a\u003e from cloud8421/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/commit/2c864c8cb9cf90defd0379c5e9e750a43b7f7570\"\u003e\u003ccode\u003e2c864c8\u003c/code\u003e\u003c/a\u003e Fix default target window mention in CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.0...v1.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phoenix_live_view` from 1.0.17 to 1.1.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/blob/v1.1.11/CHANGELOG.md\"\u003ephoenix_live_view's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.11 (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix LiveComponents being destroyed when their DOM ID changes, even though they are still rendered (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix warning when an empty comprehension is rendered in LiveViewTest\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up duplicate ID check in LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.10 (2025-09-03)\u003c/h2\u003e\n\u003ch3\u003eBug fixxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegression in v1.1.9 - fix \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e crashing when using keywords lists and not properly handling atom keys (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.9 (2025-09-02)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix moved comprehension diff crashing LiveViewTest (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003epush_patch\u003c/code\u003e works during form recovery (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix diff crash in LiveViewTest when rendering structs (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/pull/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude form values from DOM in \u003ccode\u003ePhoenix.LiveViewTest.submit_form/2\u003c/code\u003e and \u003ccode\u003ePhoenix.LiveViewTest.follow_trigger_action/2\u003c/code\u003e to mimic browser behavior (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow assigning generic hooks to type \u003ccode\u003eHook\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3955\"\u003e#3955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow typing hook element when using TypeScript (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more metadata to \u003ccode\u003ephx:page-loading-start\u003c/code\u003e event in case of errors (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3910\"\u003e#3910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.8 (2025-08-20)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition where patches were discarded when a join was still pending (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3957\"\u003e#3957\u003c/a\u003e, big thank you to \u003ca href=\"https://github.com/DaTrader\"\u003e\u003ccode\u003e@​DaTrader\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.7 (2025-08-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression introduced in v1.1.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.6 (2025-08-18)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix live components in nested views accidentally destroying live components in parent views (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3953\"\u003e#3953\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/phoenixframework/phoenix_live_view/commit/f0ad89521248546b80ecab6e510951a8602bc3f6\"\u003e\u003ccode\u003ef0ad895\u003c/code\u003e\u003c/a\u003e release v1.1.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/15eb62034a7c9047841fe13553220e2bc76ff2d4\"\u003e\u003ccode\u003e15eb620\u003c/code\u003e\u003c/a\u003e Use lazydoc to find duplicate ids (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/bc1f95da30e1a41bc937bd66d049caea9ee55d81\"\u003e\u003ccode\u003ebc1f95d\u003c/code\u003e\u003c/a\u003e Fix warning in LiveViewTest when keyed comprehension is empty (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3982\"\u003e#3982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/d231aff76cf35528943cec1be6c7f201a270c510\"\u003e\u003ccode\u003ed231aff\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/b4c0deaca45f1354a2e47a8dbb4d9f5f3b6246a8\"\u003e\u003ccode\u003eb4c0dea\u003c/code\u003e\u003c/a\u003e fix cids_destroyed check using wrong selector (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/5b983d4859b01387731325fe7e6a6da5c832fab9\"\u003e\u003ccode\u003e5b983d4\u003c/code\u003e\u003c/a\u003e release v1.1.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/074cd4019f4dd5bd21340d7af1f2be7362549cb2\"\u003e\u003ccode\u003e074cd40\u003c/code\u003e\u003c/a\u003e Account for keyword lists in follow_trigger_action / submit_form (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3976\"\u003e#3976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/ec09ec0e1c25140ed03cc3117bc842ea6fde5e53\"\u003e\u003ccode\u003eec09ec0\u003c/code\u003e\u003c/a\u003e release v1.1.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/994a87070f44ebabedff8eaa5bb9b7d72cff32ea\"\u003e\u003ccode\u003e994a870\u003c/code\u003e\u003c/a\u003e Update assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/commit/8d13e069aa84e760a4ec4033d06e0b2ddc1a32a4\"\u003e\u003ccode\u003e8d13e06\u003c/code\u003e\u003c/a\u003e add unstructuredError and errorKind to phx:page-loading-start details (\u003ca href=\"https://redirect.github.com/phoenixframework/phoenix_live_view/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/phoenixframework/phoenix_live_view/compare/v1.0.17...v1.1.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tower_rollbar` from 0.6.3 to 0.6.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mimiquate/tower_rollbar/blob/main/CHANGELOG.md\"\u003etower_rollbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.6.4] - 2025-08-23\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixes compilation bug when \u003ccode\u003ecastore\u003c/code\u003e package is missing (possibly when updating \u003ccode\u003ephoenix\u003c/code\u003e to 1.8.0\u0026quot;)\u003c/li\u003e\n\u003c/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/mimiquate/tower_rollbar/commit/d8720f7e717069dba0005aede7e56c8c30f19dab\"\u003e\u003ccode\u003ed8720f7\u003c/code\u003e\u003c/a\u003e build: bumps version to v0.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/a1684b3cf85791ff341f3ec381f769385a3763b5\"\u003e\u003ccode\u003ea1684b3\u003c/code\u003e\u003c/a\u003e chore(deps): bumps x509\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/f1c1404dbef9484805c0464e7904a4f0b927d429\"\u003e\u003ccode\u003ef1c1404\u003c/code\u003e\u003c/a\u003e fix: fixes compilation when castore not available (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/3e7af805d40c944e69d7e2e63d9448c27027c137\"\u003e\u003ccode\u003e3e7af80\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump bandit from 1.7.0 to 1.8.0 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/d8d8e6a3116eb3d1db01e8b13d42f7e1f81351fb\"\u003e\u003ccode\u003ed8d8e6a\u003c/code\u003e\u003c/a\u003e build(deps): bump castore from 1.0.14 to 1.0.15 (\u003ca href=\"https://redirect.github.com/mimiquate/tower_rollbar/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mimiquate/tower_rollbar/commit/786852ee655ab642cd1a1fbb41167b9898abec6e\"\u003e\u003ccode\u003e786852e\u003c/code\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/mimiquate/elixir_observer/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimiquate%2Felixir_observer/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-01T18:31:35.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2790537316","node_id":"PR_kwDOJjFobM6mVDhk","number":45,"state":"closed","title":"Bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-04T12:50:24.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T18:31:35.000Z","updated_at":"2025-09-04T12:50:24.000Z","time_to_close":238729,"merged_at":"2025-09-04T12:50:23.000Z","merged_by":"ygpark2","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/ygpark2/elixir_pheonix_app/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ygpark2%2Felixir_pheonix_app/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-09-01T02:04:02.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2788296352","node_id":"PR_kwDOJZ6NbM6mMgag","number":186,"state":"open","title":"chore(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T02:04:02.000Z","updated_at":"2025-09-01T02:04:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"ash","old_version":"3.5.31","new_version":"3.5.37","repository_url":"https://github.com/ash-project/ash"},{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"},{"name":"postgrex","old_version":"0.20.0","new_version":"0.21.1"}],"path":null,"ecosystem":"hex"},"body":"Bumps the production-dependencies group with 2 updates in the / directory: [ash](https://github.com/ash-project/ash) and [oban](https://github.com/oban-bg/oban).\n\nUpdates `ash` from 3.5.31 to 3.5.37\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/ash/releases\"\u003eash's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.5.37\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eensure that count tasks are always stopped by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e) by \u003ca href=\"https://github.com/FugiTech\"\u003e\u003ccode\u003e@​FugiTech\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eproperly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e) by Jesse Williams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e) by \u003ca href=\"https://github.com/vonagam\"\u003e\u003ccode\u003e@​vonagam\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values by Rutgerdj\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd CompileError on duplicate Ash.Domain use by LambdaCalc\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle indexed maps when typecasting filter values by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edeterministic partial evaluation by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eensure that unions stored with tags actually have their tags by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve warning about \u003ccode\u003enil\u003c/code\u003e atomics by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etypespec fix for typedstruct info module (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2286\"\u003e#2286\u003c/a\u003e) by Matt Beanland\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eproperly short-circuit if, || and \u0026amp;\u0026amp; by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.36\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erevert typed_struct enhancements by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.5.35\u003c/h2\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/ash-project/ash/blob/main/CHANGELOG.md\"\u003eash's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.36...v3.5.37\"\u003ev3.5.37\u003c/a\u003e (2025-08-31)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eensure that count tasks are always stopped by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e) by \u003ca href=\"https://github.com/FugiTech\"\u003e\u003ccode\u003e@​FugiTech\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eproperly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e) by Jesse Williams\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e) by \u003ca href=\"https://github.com/vonagam\"\u003e\u003ccode\u003e@​vonagam\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values by Rutgerdj\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd CompileError on duplicate Ash.Domain use by LambdaCalc\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ehandle indexed maps when typecasting filter values by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edeterministic partial evaluation by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eensure that unions stored with tags actually have their tags by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresolve warning about \u003ccode\u003enil\u003c/code\u003e atomics by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etypespec fix for typedstruct info module (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2286\"\u003e#2286\u003c/a\u003e) by Matt Beanland\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eproperly short-circuit if, || and \u0026amp;\u0026amp; by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.35...v3.5.36\"\u003ev3.5.36\u003c/a\u003e (2025-08-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erevert typed_struct enhancements by \u003ca href=\"https://github.com/zachdaniel\"\u003e\u003ccode\u003e@​zachdaniel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.34...v3.5.35\"\u003ev3.5.35\u003c/a\u003e (2025-08-21)\u003c/h2\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/4895845350572e832c088204dca7550ae75bde24\"\u003e\u003ccode\u003e4895845\u003c/code\u003e\u003c/a\u003e chore: release version v3.5.37\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/0d42e628dbff1b89a9e086f494378300eab252f9\"\u003e\u003ccode\u003e0d42e62\u003c/code\u003e\u003c/a\u003e fix: ensure that count tasks are always stopped\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/4cd97715729ccc535cdfe70850ecbe21681487bf\"\u003e\u003ccode\u003e4cd9771\u003c/code\u003e\u003c/a\u003e fix: Allow ^actor() in upsert_condition (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2297\"\u003e#2297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/51da9a0c4ce3c7c837115410ec88373d0a02f43a\"\u003e\u003ccode\u003e51da9a0\u003c/code\u003e\u003c/a\u003e docs: Update actions.md (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2300\"\u003e#2300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/7e1816cf2838157ea45898cb72e622bed41a211f\"\u003e\u003ccode\u003e7e1816c\u003c/code\u003e\u003c/a\u003e docs: custom aggregate example (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2299\"\u003e#2299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/a95228e2cdfe6de7ba5e8148e9e4d125b9fe92da\"\u003e\u003ccode\u003ea95228e\u003c/code\u003e\u003c/a\u003e fix: properly add aggregate with \u003ccode\u003eadd_new_aggregate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/8167d6a4d99221c9d5da7364582ea080121f441e\"\u003e\u003ccode\u003e8167d6a\u003c/code\u003e\u003c/a\u003e docs: fix docs for generic actions change -\u0026gt; prepare\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/bbbd8eae208941ac8763b066b15b5323ca69cf2c\"\u003e\u003ccode\u003ebbbd8ea\u003c/code\u003e\u003c/a\u003e fix: resolve variable swapping in authorizer reducer (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2296\"\u003e#2296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/164acdd83cc806e78c505a994c0d71ee23985c24\"\u003e\u003ccode\u003e164acdd\u003c/code\u003e\u003c/a\u003e fix: handle notification without set domain in telemetry spans (\u003ca href=\"https://redirect.github.com/ash-project/ash/issues/2293\"\u003e#2293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/ash/commit/d10bd592905702438bc2536f1691fffbd424f065\"\u003e\u003ccode\u003ed10bd59\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003e:unsafe_to_atom?\u003c/code\u003e constraint when casting stored atom values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ash-project/ash/compare/v3.5.31...v3.5.37\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oban` from 2.19.4 to 2.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrex` from 0.20.0 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/elixir-ecto/postgrex/blob/master/CHANGELOG.md\"\u003epostgrex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.21.1 (2025-08-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.21.0 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eThis release requires Erlang/OTP 25+\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd query timeout option on ReplicationConnection\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBug fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePGHOST option does not override explicitly given endpoint configuration\u003c/li\u003e\n\u003cli\u003eAdd ltxtquery support\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/elixir-ecto/postgrex/commit/b419affa58b61cc67eba400de6e086ae964fe723\"\u003e\u003ccode\u003eb419aff\u003c/code\u003e\u003c/a\u003e Release v0.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/567ea8a8f1ceef72499c37d5a22d19dad4c01130\"\u003e\u003ccode\u003e567ea8a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003essl: true\u003c/code\u003e with missing ssl_opts handling (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/0eb228f1ba3fb96330a5aad389fbe7710d84fd97\"\u003e\u003ccode\u003e0eb228f\u003c/code\u003e\u003c/a\u003e Release v0.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/2660c6bf58bc5567ac44dca11a1316c3f39b1c0c\"\u003e\u003ccode\u003e2660c6b\u003c/code\u003e\u003c/a\u003e List options given when setopts fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/d990017f5bf9ba2866e73f9111b126a2fd9b860b\"\u003e\u003ccode\u003ed990017\u003c/code\u003e\u003c/a\u003e Add query timeout option on ReplicationConnection (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/412b55567b6f0f3feb587e38466fcab047581c0f\"\u003e\u003ccode\u003e412b555\u003c/code\u003e\u003c/a\u003e Prioritize explicit endpoint options over PGHOST-derived defaults (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/257daa773a7558d574df3aa3b558664275787ff8\"\u003e\u003ccode\u003e257daa7\u003c/code\u003e\u003c/a\u003e Require Erlang/OTP 25 for cacerts (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/14a8a58bea1edf92b6f93d29eaea3b78a0151a03\"\u003e\u003ccode\u003e14a8a58\u003c/code\u003e\u003c/a\u003e Update CI (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/3bb2ee2bb0219027c00acb7c8a67ebdc97558fd1\"\u003e\u003ccode\u003e3bb2ee2\u003c/code\u003e\u003c/a\u003e Add example with ANY() (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elixir-ecto/postgrex/commit/f7f9a4e3a2bdea68f6072c5a7c9960bed6bfb500\"\u003e\u003ccode\u003ef7f9a4e\u003c/code\u003e\u003c/a\u003e Add ltxtquery support (\u003ca href=\"https://redirect.github.com/elixir-ecto/postgrex/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/elixir-ecto/postgrex/compare/v0.20.0...v0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/ash-project/ash_oban/pull/186","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ash-project%2Fash_oban/issues/186","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/186/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-08-26T19:40:51.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"3356910992","node_id":"PR_kwDOKCjBAs6lekti","number":894,"state":"open","title":"chore(deps): bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-08-26T19:40:51.000Z","updated_at":"2025-09-11T09:01:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/zebbra/data_aggregator/pull/894","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebbra%2Fdata_aggregator/issues/894","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/894/packages"}},{"old_version":"2.19.4","new_version":"2.20.1","update_type":"minor","path":null,"pr_created_at":"2025-08-22T18:27:58.000Z","version_change":"2.19.4 → 2.20.1","issue":{"uuid":"2767057302","node_id":"PR_kwDODTqMEM6k7fGW","number":1296,"state":"open","title":"chore(deps): bump oban from 2.19.4 to 2.20.1","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-22T18:27:58.000Z","updated_at":"2025-08-22T18:27:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"oban","old_version":"2.19.4","new_version":"2.20.1","repository_url":"https://github.com/oban-bg/oban"}],"path":null,"ecosystem":"hex"},"body":"Bumps [oban](https://github.com/oban-bg/oban) from 2.19.4 to 2.20.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oban-bg/oban/releases\"\u003eoban's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.0\u003c/h2\u003e\n\u003cp\u003eThis release brings a fantastic new helper function, an optional migration to aid pruning, some stability improvements, and a bevy of documentation updates.\u003c/p\u003e\n\u003ch2\u003e🦋 Update Job\u003c/h2\u003e\n\u003cp\u003eThis introduces the \u003ccode\u003eOban.update_job/2,3\u003c/code\u003e function to simplify updating existing jobs while ensuring data consistency and safety. Previously, updating jobs required manually constructing change operations or complex queries that could lead to race conditions or invalid state changes.\u003c/p\u003e\n\u003cp\u003eOnly a curated subset of job fields, e.g. \u003ccode\u003e:args\u003c/code\u003e, \u003ccode\u003e:max_attempts\u003c/code\u003e, \u003ccode\u003e:meta\u003c/code\u003e, etc. may be updated and they use the same validation rules as insertion to prevent invalid data. Updates are also wrapped in a transaction with locking clauses to prevent concurrent modifications.\u003c/p\u003e\n\u003cp\u003eThe function supports direct map changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, %{priority: 0, tags: [\u0026quot;urgent\u0026quot;]})\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt also has a convenient function-based mode for dynamic changes:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eOban.update_job(job, fn job -\u0026gt; \n  %{meta: Map.put(job.meta, \u0026quot;processed_by\u0026quot;, current_node())} \nend)\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e❄️ Unique State Groups\u003c/h2\u003e\n\u003cp\u003eThere are now named unique state groups to replace custom state lists for unique jobs, promoting better uniqueness design and reducing configuration errors.\u003c/p\u003e\n\u003cp\u003ePreviously, developers had to manually specify lists of job states for uniqueness, which was error-prone and could lead to subtle bugs when states were omitted or incorrectly combined. The new predefined groups ensure correctness and consistency across applications.\u003c/p\u003e\n\u003cp\u003eThe new state groups are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:all\u003c/code\u003e\u003c/strong\u003e - All job states\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:incomplete\u003c/code\u003e\u003c/strong\u003e - Jobs that haven't finished (\u003ccode\u003e~w(available scheduled executing retryable)a\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:scheduled\u003c/code\u003e\u003c/strong\u003e - Only scheduled jobs (\u003ccode\u003e[:scheduled]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003e:successful\u003c/code\u003e\u003c/strong\u003e - Jobs that completed successfully (\u003ccode\u003e~w(available scheduled executing retryable completed)a\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese groups eliminate the risk of accidentally creating incomplete or incorrect state lists that could allow duplicate jobs to be created when they shouldn't be, or prevent valid job creation when duplicates should be allowed.\u003c/p\u003e\n\u003ch2\u003e🪺 Nested Plugin Supervision\u003c/h2\u003e\n\u003cp\u003ePlugins and the internal Stager are now nested within a secondary supervision tree to improve system resilience and stability.\u003c/p\u003e\n\u003cp\u003ePreviously, plugins were supervised directly under the main Oban supervisor alongside core process. This meant that plugin failures could potentially impact the entire Oban system, and frequent plugin restarts could trigger cascading failures in the primary supervision tree.\u003c/p\u003e\n\u003cp\u003eThe new supervisor has more lenient restart limits to allow for more plugin restart attempts before giving up. This change makes Oban more robust in production environments where plugins may experience transient failures due to database or connectivity issues.\u003c/p\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\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/oban-bg/oban/blob/main/CHANGELOG.md\"\u003eoban's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.20.1 — 2025-08-15\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Handle missing fields in unique Worker validation.\u003c/p\u003e\n\u003cp\u003eWorkers that specified \u003ccode\u003ekeys\u003c/code\u003e without \u003ccode\u003efields\u003c/code\u003e would fail validation at compile time. Now\ndefault values are considered for \u003ccode\u003euse Oban.Worker\u003c/code\u003e as well as \u003ccode\u003eJob.new/2\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.20.0 — 2025-08-13\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMigration\u003c/code\u003e Add V13 migration for indexing cancelled and discarded states.\u003c/p\u003e\n\u003cp\u003eA new V13 migration adds compound indexes to significantly improve \u003ccode\u003eOban.Plugins.Pruner\u003c/code\u003e\nperformance when cleaning up \u003ccode\u003ediscarded\u003c/code\u003e and \u003ccode\u003ecancelled\u003c/code\u003e jobs. This is especially beneficial for\napplications that process large volumes of jobs and retain them for extended periods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eRepo\u003c/code\u003e Expose dynamic repo switching as \u003ccode\u003ewith_dynamic_repo/2\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThe function was previously internal, which made impossible to use in external modules or extend\nupon. Now custom plugins and extensions can use \u003ccode\u003eRepo.with_dynamic_repo/2\u003c/code\u003e to use the configured\ndynamic repo options.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e[Oban] Allow \u003ccode\u003einsert_all/1,3\u003c/code\u003e via Oban facade\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003einsert_all/1\u003c/code\u003e and \u003ccode\u003einsert_all/3\u003c/code\u003e function variants were missing from the generated Oban\nfacade functions when using a named instance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Generate correct \u003ccode\u003eperform_job/1,2,3\u003c/code\u003e clauses.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eperform_job/2,3\u003c/code\u003e clauses generated by \u003ccode\u003euse Oban.Testing\u003c/code\u003e didn't handle the \u003ccode\u003eperform_job/2\u003c/code\u003e\nvariant designed to run jobs created with \u003ccode\u003ebuild_job/3\u003c/code\u003e. This caused test failures when trying\nto execute jobs built using the \u003ccode\u003ebuild_job/3\u003c/code\u003e helper function.\u003c/p\u003e\n\u003cp\u003eThe fix generates the missing \u003ccode\u003eperform_job/2\u003c/code\u003e clause along with a convenient \u003ccode\u003eperform_job/1\u003c/code\u003e\nvariant, ensuring all testing scenarios work seamlessly regardless of how jobs are constructed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Testing] Restrict inline execution to \u003ccode\u003eavailable\u003c/code\u003e and \u003ccode\u003escheduled\u003c/code\u003e states.\u003c/p\u003e\n\u003cp\u003eJobs in the \u003ccode\u003ecompleted\u003c/code\u003e state or other non-runnable states were incorrectly attempted by the\ninline engine, potentially causing errors or unexpected behavior during testing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[Worker] Disallow \u003ccode\u003e:keys\u003c/code\u003e when \u003ccode\u003e:fields\u003c/code\u003e doesn't contain \u003ccode\u003e:args\u003c/code\u003e or \u003ccode\u003e:meta\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eUnique job configurations using \u003ccode\u003e:keys\u003c/code\u003e were allowed even when \u003ccode\u003e:fields\u003c/code\u003e didn't include \u003ccode\u003e:args\u003c/code\u003e\nor \u003ccode\u003e:meta\u003c/code\u003e, which would result in runtime errors since keys can only extract values from these\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/oban-bg/oban/commit/d177b524adde38d517740f6ed66c9fcfb4a5e9ba\"\u003e\u003ccode\u003ed177b52\u003c/code\u003e\u003c/a\u003e Release v2.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/74756b32698d2d745c890b362ebb70b7e563e406\"\u003e\u003ccode\u003e74756b3\u003c/code\u003e\u003c/a\u003e Handle missing fields in Worker unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/65016963a8ecf5956e8e345cd3165da82024d41a\"\u003e\u003ccode\u003e6501696\u003c/code\u003e\u003c/a\u003e Release v2.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/baec2df2ef58a924c325f93283b07990fa8729bf\"\u003e\u003ccode\u003ebaec2df\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/215981e3bb38a7dbcea0d3faf0a6e53761406caa\"\u003e\u003ccode\u003e215981e\u003c/code\u003e\u003c/a\u003e Restrict inline execution to available/scheduled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/f2c26cc147e9e068ef50a06874d9726c9e532ca9\"\u003e\u003ccode\u003ef2c26cc\u003c/code\u003e\u003c/a\u003e Remove commented out dead code from installer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d07f740f29c726453f770a4fbc209d0d3f781f99\"\u003e\u003ccode\u003ed07f740\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/0d462e9d51aebbc40096608172e821e9b90cae1f\"\u003e\u003ccode\u003e0d462e9\u003c/code\u003e\u003c/a\u003e Fix duplicate word typo (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/d1124e68dfdc8b2716d50063a794834c6832a312\"\u003e\u003ccode\u003ed1124e6\u003c/code\u003e\u003c/a\u003e Bump the production-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/oban-bg/oban/issues/1325\"\u003e#1325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oban-bg/oban/commit/902d8c9b978588e74d624c3f9050b30e4a3e7b07\"\u003e\u003ccode\u003e902d8c9\u003c/code\u003e\u003c/a\u003e Nest plugins within a secondary supervision tree\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oban-bg/oban/compare/v2.19.4...v2.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=oban\u0026package-manager=hex\u0026previous-version=2.19.4\u0026new-version=2.20.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mbta/arrow/pull/1296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbta%2Farrow/issues/1296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1296/packages"}}]}