chore(deps): update mix dependencies #562

Open
renovate wants to merge 1 commit from renovate/mix-dependencies into main
Collaborator

This PR contains the following updates:

Package Type Update Change
ash (source) prod minor 3.29.33.31.2
ash_admin (source) prod minor 1.1.01.2.0
ash_authentication prod minor ~> 4.13.0~> 4.14.0
ash_authentication_phoenix (source) prod minor 2.16.02.17.2
ash_phoenix (source) prod patch 2.3.222.3.24
ash_postgres (source) prod minor 2.10.02.11.0
bandit (source) prod patch 1.12.01.12.4
credo (source) dev patch 1.7.181.7.19
hammer (source) prod minor 7.3.07.4.0
igniter (source) dev patch 0.8.20.8.3
lazy_html (source) dev patch 0.1.110.1.12
live_debugger (source) dev patch 1.0.01.0.2
phoenix (source) prod patch 1.8.81.8.9
phoenix_live_reload (source) dev minor 1.6.21.7.0
phoenix_live_view (source) prod patch 1.2.51.2.8
postgrex (source) prod patch 0.22.20.22.4
req (source) prod minor ~> 0.6~> 0.7
sobelow (source) dev minor ~> 0.14~> 0.15
swoosh (source) prod minor 1.25.11.27.0
tidewave (source) dev minor ~> 0.6~> 0.8
tz (source) prod patch 0.28.10.28.2

Release Notes

ash-project/ash (ash)

v3.31.2

Compare Source

Bug Fixes:
  • undo breaking change where we started honoring :allow_forbidden_field_for_relationships_by_default? by @​zachdaniel

v3.31.1

Compare Source

Bug Fixes:
Improvements:

v3.31.0

Compare Source

Features:
Bug Fixes:
Improvements:

v3.30.1

Compare Source

Bug Fixes:

v3.30.0

Compare Source

Features:
Bug Fixes:
Improvements:
ash-project/ash_admin (ash_admin)

v1.2.0

Compare Source

Features:
  • Add drag-and-drop reordering for primitive array fields in forms (#​407) by JoyceJ53
Bug Fixes:
  • support tenant option labels (#​406) by Jakub Skałecki

  • Ensure mobile and desktiop sidebar ids are unique (#​404) by capoccias

  • update for LV 1.2.0 by Zach Daniel

  • format array attribtues in ash_admin by Zach Daniel

Improvements:
  • add support for uuidv7 primary keys (#​413) by StephanH90
team-alembic/ash_authentication_phoenix (ash_authentication_phoenix)

v2.17.2

Compare Source

Breaking Changes:
  • prevent logout CSRF by replacing GET sign-out with confirmation page by @​jimsynz
Bug Fixes:
Improvements:

v2.17.1

Compare Source

v2.17.0

Compare Source

ash-project/ash_phoenix (ash_phoenix)

v2.3.24

Compare Source

Bug Fixes:
  • Rename Ash.Resource.record() -> Ash.Resource.Record.t() by @​jimsynz

v2.3.23

Compare Source

Bug Fixes:
ash-project/ash_postgres (ash_postgres)

v2.11.0

Compare Source

Features:
  • allow custom indexes to exclude base filters (#​796) by Jechol Lee
Bug Fixes:
  • fix generated reference type value for identity and bigserial (#​800) by Dmitry Maganov

  • return skipped upserts with nil identity values (#​794) by Jechol Lee

  • warn when resources are skipped due to migrate?: false during mi… (#​792) by Jsime34

  • set tenant on destroy so exists() subqueries resolve against the tenant schema (#​790) by Francisco-Castro

  • resolve actor/context templates in through relationship filters (#​789) by Barnabas Jovanovics

  • correlate bulk upsert records by identity on the MERGE path (#​786) by Johannes Welebil

  • ensure timeouts applied at repo level (#​784) by torazar

Improvements:
  • Add partial index conditions for references (#​795) by Jechol Lee

  • avoid generating uuidv7 by default, once postgres v18 is detected (#​793) by Luca Venir

  • Added sort direction support to custom_indexes fields. (#​775) by Thomas Lucas

mtrudel/bandit (bandit)

v1.12.4

Compare Source

Fixes
  • Properly send Connection: close header when client requests closure (#​617)
  • Disallow transfer-encoding on HTTP/1.0 connections (#​618)
  • Reject requests with multiple Host headers (#​619)
  • Reject malformed header lines (#​620)
  • Fix handling of chunk extensions (#​621)
Enhancements
  • Tighten up CI against supply chain attacks (#​623, thanks @​Totara-thib!)
  • Reorganize and increase coverage of HTTP/1 tests to better match RFC structure (#​616)
  • Tolerate a leading newline on HTTP/1 requests (#​622)
  • Send "100 Continue" interim response before reading body if client requests it (#​624)

v1.12.3

Compare Source

Enhancements
  • Cache connection-level data between HTTP/1 keepalives (#​603, thanks @​preciz!)

v1.12.2

Compare Source

Enhancements
  • Improve internal HTTP/2 error handling to be better about closing stream/connection
  • Coalesce header and body in to single transport send (#​606, thanks @​NelsonVides!)
  • Improve compression behaviour when streaming an explicitly length delimited body (#​605, thanks @​elibosley!)
  • Quiet WebSocket deserialization errors, add verbosity config lever (#​610, thanks @​ericmj!)
  • Send connection: close when we're at max_requests (#​613, thanks @​joshdchang!)
Fixes

v1.12.1

Compare Source

Fixes
  • Fix DoS issue with fragmented WebSocket frames (CVE-2026-65623, thanks @​PJUllrich!)
rrrene/credo (credo)

v1.7.19

Compare Source

  • Fix compatibility & compiler warnings with Elixir 1.20.0
ExHammer/hammer (hammer)

v7.4.0

Compare Source

  • Add :fix_window_per_key algorithm for ETS and Atomic backends — a fixed-window variant whose window is anchored to first hit per key instead of a globally-aligned wall-clock epoch. Same one-entry-per-key memory profile as :fix_window. The 2x boundary burst is still possible per key, but boundaries are no longer globally synchronized. (#​181)
ash-project/igniter (igniter)

v0.8.3

Compare Source

Bug Fixes:
  • ensure verbose is passed all the way down by Zach Daniel

  • properly check igniter.rms in --check by Zach Daniel

  • resolve Elixir 1.20 type-check warnings (#​387) by Gilbert

Improvements:
  • add Igniter.Libs.Phoenix.web_module_for_router/2 (#​393) by James Harton

  • update to Elixir 1.20 (#​391) by ESmithByui

  • direct users to format command for unless refactor by Zach Daniel

dashbitco/lazy_html (lazy_html)

v0.1.12

Compare Source

Changed
  • Relaxed elixir_make requirement (#​35)
software-mansion/live-debugger (live_debugger)

v1.0.2

Compare Source

Bug fixes
  • Fix recurring DETS "not properly closed" log in #​997

v1.0.1

Compare Source

Enhancements
  • Enhancement: Improve tracing performance in #​989
Bug fixes
  • Fix MapSet assign summary updates in #​988

phoenixframework/phoenix (phoenix)

v1.8.9

Compare Source

phoenixframework/phoenix_live_reload (phoenix_live_reload)

v1.7.0

Compare Source

  • Enhancements
    • Add JavaScript helper function to capture keyboard shortcuts to open HEEx components
    • Forward log events to window for custom behaviour
phoenixframework/phoenix_live_view (phoenix_live_view)

v1.2.8

Compare Source

Enhancements
  • Allow cancelling client-side navigation (#​4332)
    You can now listen for the phx:before-navigate event and call event.preventDefault() to cancel the navigation synchronously.
    This is mostly useful to prevent a "do you really want to leave" scenario when a user has unsaved changes, combined with a beforeunload listener.
  • Sign LiveView upload tokens as :local to avoid node names being included in the token
  • Ensure async tasks exit gracefully in LiveView tests (#​4348)
  • Allow opting focused form elements into DOM patching (#​4339)
Bug fixes
  • Fix server close handler not being reattached after a manual disconnect + connect (#​4341)
  • Fix detail.lock() promise in phx:push event never resolving (#​4351)
  • Fix live components not being correctly patched when changing their DOM ID (#​4338)
  • Gracefully handle missing upload refs (#​4354)

v1.2.7

Compare Source

Security fixes
  • CVE-2026-58228: Fix scheme validation bypass in Phoenix.LiveView.Utils

v1.2.6

Compare Source

Bug fixes
  • Fix HTMLFormatter inserting extra characters in template with multi-codepoint emojis (#​4321)
elixir-ecto/postgrex (postgrex)

v0.22.4

Compare Source

  • Security
    • Escape comments on Postgrex.stream/4 (CVE-2026-66838)

v0.22.3

Compare Source

  • Security
    • Escape dollar signs in channel names in Postgrex.Notifications.listen/3 (CVE-2026-58225)
wojtekmach/req (req)

v0.7.2

Compare Source

  • [encode_body]: Bring back form_multipart: [{string_name, value}].
    • [put_aws_sigv4]: Fix AWS SigV4 compatibility with Supabase Storage S3.

v0.7.1

Compare Source

  • Deprecate cache: true/[cache] step. It will be removed in Req v0.8. I plan a comprehensive cache solution for Req v1.0+.

v0.7.0

Compare Source

  • [Req]: Add Req.new(req, options).

    • [Req]: Treat URL userinfo as Basic Authentication.

    • [Req], [Req.Request]: Deprecate adapter: fun in favour of adapter: mod.

    • [Req.Request]: (BREAKING CHANGE) Remove current_request_steps field.

    • [Req.Request]: Fix redacting remaining auth values.

    • (BREAKING CHANGE) Replace run_finch step with [Req.Finch] adapter module.

    • (BREAKING CHANGE) Replace put_plug and run_plug steps with [Req.Plug] adapter module.

    • [Req.Finch]: Support finch: options.

    • [Req.Finch]: Support :request_timeout.

    • [Req.Finch]: Fix handling duplicate response headers.

    • [Req.Finch]: Deprecate finch: name in favour of finch: [name: name].

    • [Req.Finch]: Deprecate pool_timeout: value in favour of finch: [pool_timeout: value].

    • [Req.Finch]: Deprecate pool_max_idle_time: value in favour of finch: [pool_max_idle_time: value].

    • [Req.Finch]: Deprecate :finch_request.

    • [Req.Plug]: Handle individual response body chunks.

    • [Req.Plug]: Support non-UTF8 request params.

    • [Req.Plug]: Put original request private data in conn.private.

    • [Req.Test]: Allow descendant processes.

    • [Req.Test]: Fix concurrent plug fetches immediately after switching to shared mode.

    • [compress_body]: Do nothing when request content-encoding is already set.

    • [compress_body]: Update multipart boundary when re-running the step.

    • [compressed], [decode_body]: Replace optional ezstd dependency with Erlang/OTP 28+
      built-in :zstd.

    • [decode_body]: Deprecate :decode_json in favour of setting a custom JSON
      decoder via :decoders:

before:

    Req.get!(url, decode_json: [keys: :atoms])

after:

    Req.get!(url, decoders: [json: &Jason.decode(&1, keys: :atoms)])
  • [encode_body]: (BREAKING CHANGE) Automatically change GET to POST when request body is set.

  • [put_aws_sigv4]: Exclude accept-encoding, x-amzn-trace-id, and
    hop-by-hop headers from the signature.

  • [put_aws_sigv4]: Correctly sign duplicate header values.

  • [put_params]: (BREAKING CHANGE) Overwrite existing query params instead of appending.

  • [put_path_params]: Preserve the path template when re-running the step.

  • [redirect]: Strip userinfo from redirect locations and log a warning.

    Previously, redirecting to a URL with userinfo (e.g. http://user:pass@host)
    kept the userinfo in the request URL (without converting it to auth). It is
    now dropped so credentials supplied by the redirecting server aren't sent.

  • [redirect]: Clear the request body, body options, and content headers when
    changing POST to GET after a 301, 302, or 303 response.

  • [retry]: Use jitter by default.

  • [retry]: Honor configured :retry_delay over Retry-After.

  • (BREAKING CHANGE) Remove deprecated follow_redirects step.

  • (BREAKING CHANGE) Remove deprecated output step.

  • Require Elixir 1.15 or later.

v0.6.3

Compare Source

  • [Req.Test]: Fix __fetch_plug__/1 when called immediately after switching to shared mode.
sobelow/sobelow (sobelow)

v0.15.0

Compare Source

  • Bug fixes
    • Config.Secrets no longer crashes the scan when a secret is written as
      anything other than a plain double-quoted string. Heredoc values and values
      containing escaped quotes previously raised a MatchError and aborted the
      entire run. These secrets are now reported, using the line of the enclosing
      config call.
    • A corrupt or unreadable version-check cache file no longer aborts the scan.
      Sobelow previously printed "This does not appear to be a Phoenix application"
      and exited 0 — a CI gate could pass having scanned nothing.
    • --strict now reports syntax errors instead of raising. It has been broken
      since Elixir 1.13 changed the error shape returned by
      Code.string_to_quoted/2. Errors are now reported as file:line:column:.
    • A template that cannot be parsed is now skipped (or reported under
      --strict) rather than aborting the scan with an EEx.SyntaxError. The
      error now names the offending template instead of nofile.
    • A malformed .sobelow-conf now produces an actionable message instead of a
      raw MatchError stacktrace. This mattered more since v0.14.1 began reading
      the file automatically.
    • An empty, whitespace-only, or comment-only .sobelow-conf is now read as
      no options rather than aborting the scan. Such a file parses to an empty
      block instead of a keyword list, so it originally crashed with a
      FunctionClauseError and then, once that was fixed, exited 1 with a
      configuration error. Since the file is read automatically, a stray
      touch .sobelow-conf or a truncated write was enough to break every scan
      in a project. Contents that cannot be interpreted are still an error.
    • --save-config now stores ignore_files relative to the project root.
      Absolute paths were previously baked into .sobelow-conf, breaking the
      committed file on every other machine and in CI.
    • Config.Secrets now reports the line of the secret itself when a config
      call spans multiple lines. The line search compared a tuple against an
      integer, so it never worked as intended.
    • An unwritable ~/.sobelow no longer fails a scan.
    • Fixed a string-interpolation typo that rendered dot-access variables as
      conn.${atom_to_string(field)}.
    • .sobelow-conf keys are now genuinely sorted alphabetically.
    • A .sobelow-conf can no longer stop Sobelow from scanning. --save-config
      wrote version into every file it generated, so
      mix sobelow --version --save-config produced a committed file that made
      every later run print the version and exit 0 — a CI gate reading that
      as a clean scan. version, details, all-details, save-config, and
      diff choose what Sobelow does rather than configure a scan, and are now
      accepted on the command line only. One in the file is ignored, with a
      warning when it would have changed anything. version is no longer
      written to the file in the first place.
    • # sobelow_skip comments are no longer thrown away over whitespace. The
      pattern demanded exactly one space after the # and exactly one before
      the list, so # sobelow_skip["XSS.Raw"], # sobelow_skip ["XSS.Raw"],
      and # sobelow_skip [ "XSS.Raw" ] were all ignored — silently, and
      indistinguishably from a skip that had simply not applied. Spacing around
      the marker, inside the list, and around commas is now irrelevant.
    • SQL.Query no longer reports a project's own query/1 as SQL injection.
      An unqualified query/query! call was matched regardless of what it
      referred to, so every call to a local function that happened to carry one
      of those very ordinary names produced a finding. The unqualified form is
      now only considered in a file that has import Ecto.Adapters.SQL or
      use Ecto.Repo — the two ways the bare name can actually reach Ecto.
      Qualified calls, such as Repo.query/1 and Ecto.Adapters.SQL.query/3,
      are unaffected.
    • Enhancements
      • Added --no-router, for scanning a project that has no Phoenix router.
        Sobelow warned that it could not find one and offered no way to silence it,
        which was noise for plain Elixir libraries. It is shorthand for
        --router :none, which can also be set in .sobelow-conf as
        router: :none. The router-dependent checks are skipped either way.
      • .sobelow-skips is now written in sorted order, so regenerating it after
        fixing or adding a finding produces a small diff instead of reshuffling the
        file. Entries sort by type, file, and line number — numerically, so line 10
        follows line 9 rather than line 1. The whole file is sorted, not just the
        newly added entries, so the ordering holds however many times it is
        regenerated. Comments and pre-v0.14 bare-fingerprint lines are preserved.
        Pass --legacy-skips for the previous append-only behaviour, which never
        rewrites lines it did not add.
      • # sobelow_skip comments now work on Phoenix router pipelines, not just
        functions. This makes Config.CSRF, Config.Headers, and Config.CSP
        suppressible per pipeline instead of only via --mark-skip-all, so an API
        pipeline that legitimately has no :protect_from_forgery can be annotated
        in place. Listing the parent Config module skips every Config check on
        that pipeline. As with function-level skips, this only takes effect under
        --skip.
      • A # sobelow_skip comment that cannot be read now warns on stderr, naming
        the file and line, instead of being dropped without a word. Single quotes
        and a list broken across several comment lines are still not accepted, but
        they now say so rather than leaving you to wonder why the finding came
        back.
      • --private now skips the version check entirely rather than still writing
        the cache file. It makes no network requests and touches no files outside
        the scanned project.
      • SOBELOW_HOME is now documented, and is treated as the directory holding
        the version-check cache.
      • Added usage-rules.md, following the usage_rules convention, so projects
        using AI coding assistants can pull Sobelow's guidance into their agent's
        context with mix usage_rules.sync. It is shipped in the Hex package.
      • Added AGENTS.md documenting the checker-module contract for contributors.
      • Added support for Elixir v1.20.x.
    • Testing
      • Added an end-to-end test harness (Sobelow.ScanCase) that runs full scans
        against fixture applications under test/fixtures/apps, plus regression
        coverage for every bug above. Line coverage went from 29% to 67%.
      • Added coverage for CLI option parsing, .sobelow-conf precedence, --exit
        and --threshold mapping, and the json/sarif/quiet/txt renderers.
      • Added end-to-end coverage for pipeline-level # sobelow_skip comments, and
        unit coverage for how skips associate with pipelines in the AST.
      • Sobelow.ScanCase.temp_fixture_file/3 now restores a committed fixture's
        original contents instead of deleting the file, so a test can vary a
        checked-in fixture without destroying it.
    • Misc
      • Replaced the deprecated :preferred_cli_env project key with def cli.
      • Bumped credo to ~> 1.7.19; 1.7.12 crashed on Elixir 1.20.
      • Removed a dead Elixir 1.5 version guard and fixed an always-true conditional
        in the SARIF renderer.
Upgrade notes
  • Config.Secrets line numbers may change for config calls that span
    multiple lines, and for files where the same secret value appears more than
    once. Finding fingerprints include the line number, so any affected
    .sobelow-skips entries will stop matching and those findings will resurface.
    Re-run mix sobelow --mark-skip-all if you rely on a committed skip file.
  • Secrets that previously crashed the scan are now reported. If a heredoc or
    escaped-quote secret exists in your config, you will see new findings where the
    scan previously failed outright.
  • SOBELOW_HOME semantics changed from "path to the cache file" to "directory
    holding the cache file". The previous behaviour raised a MatchError for the
    natural usage, so this is unlikely to affect anyone.
swoosh/swoosh (swoosh)

v1.27.0

Compare Source

Features

v1.26.3

Compare Source

🔒 Security
  • Fix URL path injection via unencoded sender address in MsGraph adapter (GHSA-754j-98wh-57rf / CVE-2026-54893)

v1.26.2

Compare Source

🐛 Bug Fixes

v1.26.1

Compare Source

🐛 Bug Fixes

v1.26.0

Compare Source

Features
📝 Documentation
  • Document the new Mailpit adapter in the README

v1.25.3

Compare Source

📝 Documentation
🧰 Maintenance

v1.25.2

Compare Source

🐛 Bug Fixes
tidewave-ai/tidewave_phoenix (tidewave)

v0.8.2

  • Use action_inputs for browser_eval

v0.8.1

Compare Source

  • Add Tidewave Connect support

v0.8.0

Compare Source

  • Add the Tidewave Toolbar
  • Align minor version across Tidewave packages
mathieuprog/tz (tz)

v0.28.2

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between day 1 and 7 of the month (* * 1-7 * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ash](https://hex.pm/packages/ash) ([source](https://github.com/ash-project/ash)) | prod | minor | `3.29.3` → `3.31.2` | | [ash_admin](https://hex.pm/packages/ash_admin) ([source](https://github.com/ash-project/ash_admin)) | prod | minor | `1.1.0` → `1.2.0` | | [ash_authentication](https://hex.pm/packages/ash_authentication) | prod | minor | `~> 4.13.0` → `~> 4.14.0` | | [ash_authentication_phoenix](https://hex.pm/packages/ash_authentication_phoenix) ([source](https://github.com/team-alembic/ash_authentication_phoenix)) | prod | minor | `2.16.0` → `2.17.2` | | [ash_phoenix](https://hex.pm/packages/ash_phoenix) ([source](https://github.com/ash-project/ash_phoenix)) | prod | patch | `2.3.22` → `2.3.24` | | [ash_postgres](https://hex.pm/packages/ash_postgres) ([source](https://github.com/ash-project/ash_postgres)) | prod | minor | `2.10.0` → `2.11.0` | | [bandit](https://hex.pm/packages/bandit) ([source](https://github.com/mtrudel/bandit)) | prod | patch | `1.12.0` → `1.12.4` | | [credo](https://hex.pm/packages/credo) ([source](https://github.com/rrrene/credo)) | dev | patch | `1.7.18` → `1.7.19` | | [hammer](https://hex.pm/packages/hammer) ([source](https://github.com/ExHammer/hammer)) | prod | minor | `7.3.0` → `7.4.0` | | [igniter](https://hex.pm/packages/igniter) ([source](https://github.com/ash-project/igniter)) | dev | patch | `0.8.2` → `0.8.3` | | [lazy_html](https://hex.pm/packages/lazy_html) ([source](https://github.com/dashbitco/lazy_html)) | dev | patch | `0.1.11` → `0.1.12` | | [live_debugger](https://hex.pm/packages/live_debugger) ([source](https://github.com/software-mansion/live-debugger)) | dev | patch | `1.0.0` → `1.0.2` | | [phoenix](https://hex.pm/packages/phoenix) ([source](https://github.com/phoenixframework/phoenix)) | prod | patch | `1.8.8` → `1.8.9` | | [phoenix_live_reload](https://hex.pm/packages/phoenix_live_reload) ([source](https://github.com/phoenixframework/phoenix_live_reload)) | dev | minor | `1.6.2` → `1.7.0` | | [phoenix_live_view](https://hex.pm/packages/phoenix_live_view) ([source](https://github.com/phoenixframework/phoenix_live_view)) | prod | patch | `1.2.5` → `1.2.8` | | [postgrex](https://hex.pm/packages/postgrex) ([source](https://github.com/elixir-ecto/postgrex)) | prod | patch | `0.22.2` → `0.22.4` | | [req](https://hex.pm/packages/req) ([source](https://github.com/wojtekmach/req)) | prod | minor | `~> 0.6` → `~> 0.7` | | [sobelow](https://hex.pm/packages/sobelow) ([source](https://github.com/sobelow/sobelow)) | dev | minor | `~> 0.14` → `~> 0.15` | | [swoosh](https://hex.pm/packages/swoosh) ([source](https://github.com/swoosh/swoosh)) | prod | minor | `1.25.1` → `1.27.0` | | [tidewave](https://hex.pm/packages/tidewave) ([source](https://github.com/tidewave-ai/tidewave_phoenix)) | dev | minor | `~> 0.6` → `~> 0.8` | | [tz](https://hex.pm/packages/tz) ([source](https://github.com/mathieuprog/tz)) | prod | patch | `0.28.1` → `0.28.2` | --- ### Release Notes <details> <summary>ash-project/ash (ash)</summary> ### [`v3.31.2`](https://github.com/ash-project/ash/blob/HEAD/CHANGELOG.md#v3312-2026-08-09) [Compare Source](https://github.com/ash-project/ash/compare/v3.31.1...v3.31.2) ##### Bug Fixes: - undo breaking change where we started honoring `:allow_forbidden_field_for_relationships_by_default?` by [@&#8203;zachdaniel](https://github.com/zachdaniel) ### [`v3.31.1`](https://github.com/ash-project/ash/blob/HEAD/CHANGELOG.md#v3311-2026-08-09) [Compare Source](https://github.com/ash-project/ash/compare/v3.31.0...v3.31.1) ##### Bug Fixes: - limit keyset binary size by [@&#8203;zachdaniel](https://github.com/zachdaniel) Patches CVE-2026-69659 <https://github.com/ash-project/ash/security/advisories/GHSA-j35q-v8h8-7mwq> - sanitize managed relationship lookup filters by [@&#8203;zachdaniel](https://github.com/zachdaniel) Patches CVE-2026-69659 <https://github.com/ash-project/ash/security/advisories/GHSA-j35q-v8h8-7mwq> - resolve bulk index from changeset in after\_batch filter ([#&#8203;2842](https://github.com/ash-project/ash/issues/2842)) by [@&#8203;emadshaaban92](https://github.com/emadshaaban92) [(#&#8203;2842)](https://github.com/ash-project/ash/pull/2842) - ci: pass --all to `mix igniter.upgrade` ([#&#8203;2841](https://github.com/ash-project/ash/issues/2841)) by [@&#8203;jimsynz](https://github.com/jimsynz) [(#&#8203;2841)](https://github.com/ash-project/ash/pull/2841) - report the primary key in the combination fieldset ([#&#8203;2836](https://github.com/ash-project/ash/issues/2836)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2836)](https://github.com/ash-project/ash/pull/2836) - resolve a combinations reference in the outer filter ([#&#8203;2838](https://github.com/ash-project/ash/issues/2838)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2838)](https://github.com/ash-project/ash/pull/2838) - dispatch on whether a comparator is implemented ([#&#8203;2840](https://github.com/ash-project/ash/issues/2840)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2840)](https://github.com/ash-project/ash/pull/2840) - decide an ETS aggregate is empty after rejecting nil values ([#&#8203;2833](https://github.com/ash-project/ash/issues/2833)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2833)](https://github.com/ash-project/ash/pull/2833) - compare the combination fieldset by name so shadowing calcs are applied ([#&#8203;2830](https://github.com/ash-project/ash/issues/2830)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2830)](https://github.com/ash-project/ash/pull/2830) - sort a ranked union in ETS, not only a ranked union\_all ([#&#8203;2828](https://github.com/ash-project/ash/issues/2828)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2828)](https://github.com/ash-project/ash/pull/2828) - order ETS min/max aggregates with Comp instead of Erlang term order ([#&#8203;2824](https://github.com/ash-project/ash/issues/2824)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2824)](https://github.com/ash-project/ash/pull/2824) - reset the combinations accumulator after an intersect in ETS ([#&#8203;2822](https://github.com/ash-project/ash/issues/2822)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2822)](https://github.com/ash-project/ash/pull/2822) - ci: reference the unused-deps input by its declared name by [@&#8203;joshprice](https://github.com/joshprice) [(#&#8203;2813)](https://github.com/ash-project/ash/pull/2813) - allow\_forbidden\_field\_for\_relationships\_by\_default? missing the ? ([#&#8203;2812](https://github.com/ash-project/ash/issues/2812)) by [@&#8203;frankdugan3](https://github.com/frankdugan3) [(#&#8203;2812)](https://github.com/ash-project/ash/pull/2812) ##### Improvements: - memoize Comparable's type-pair dispatch in a release ([#&#8203;2819](https://github.com/ash-project/ash/issues/2819)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2819)](https://github.com/ash-project/ash/pull/2819) - index runtime\_sort rekey by primary key instead of scanning by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2818)](https://github.com/ash-project/ash/pull/2818) ### [`v3.31.0`](https://github.com/ash-project/ash/blob/HEAD/CHANGELOG.md#v3310-2026-07-28) [Compare Source](https://github.com/ash-project/ash/compare/v3.30.1...v3.31.0) ##### Features: - add units constraint to Ash.Type.Duration ([#&#8203;2811](https://github.com/ash-project/ash/issues/2811)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2811)](https://github.com/ash-project/ash/pull/2811) - add mfa constraint to Ash.Type.Function for portable persistence ([#&#8203;2807](https://github.com/ash-project/ash/issues/2807)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2807)](https://github.com/ash-project/ash/pull/2807) - add all/1 builtin validation as the complement to any/1 ([#&#8203;2800](https://github.com/ash-project/ash/issues/2800)) by [@&#8203;barnabasJ](https://github.com/barnabasJ) [(#&#8203;2800)](https://github.com/ash-project/ash/pull/2800) ##### Bug Fixes: - order durations semantically instead of by struct field layout ([#&#8203;2809](https://github.com/ash-project/ash/issues/2809)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2809)](https://github.com/ash-project/ash/pull/2809) - compare with `Comp` in `intersects` function by [@&#8203;zachdaniel](https://github.com/zachdaniel) - ensure related aggregates set the proper resource by [@&#8203;zachdaniel](https://github.com/zachdaniel) - enforce sortable fasle consistently ([#&#8203;2793](https://github.com/ash-project/ash/issues/2793)) by Dominik [(#&#8203;2793)](https://github.com/ash-project/ash/pull/2793) ##### Improvements: - avoid quadratic cost evaluating in-list filters at runtime ([#&#8203;2802](https://github.com/ash-project/ash/issues/2802)) by [@&#8203;matt-beanland](https://github.com/matt-beanland) [(#&#8203;2802)](https://github.com/ash-project/ash/pull/2802) - add strict? constraint to Ash.Type.UUIDv7 ([#&#8203;2795](https://github.com/ash-project/ash/issues/2795)) by olivermt [(#&#8203;2795)](https://github.com/ash-project/ash/pull/2795) ### [`v3.30.1`](https://github.com/ash-project/ash/blob/HEAD/CHANGELOG.md#v3301-2026-07-21) [Compare Source](https://github.com/ash-project/ash/compare/v3.30.0...v3.30.1) ##### Bug Fixes: - fix `Ash.Type.load` on array returns by [@&#8203;zachdaniel](https://github.com/zachdaniel) ### [`v3.30.0`](https://github.com/ash-project/ash/blob/HEAD/CHANGELOG.md#v3300-2026-07-21) [Compare Source](https://github.com/ash-project/ash/compare/v3.29.3...v3.30.0) ##### Features: - pass relationship read action arguments ([#&#8203;2775](https://github.com/ash-project/ash/issues/2775)) by [@&#8203;jechol](https://github.com/jechol) [(#&#8203;2775)](https://github.com/ash-project/ash/pull/2775) - support for aggregated Policy evaluation ([#&#8203;2778](https://github.com/ash-project/ash/issues/2778)) by CyanideDragon [(#&#8203;2778)](https://github.com/ash-project/ash/pull/2778) - add action\_changes function to combine global and action-specific changes by Aaron Heiner [(#&#8203;2776)](https://github.com/ash-project/ash/pull/2776) - mix: add `mix ash.set.domains` configuration task via Igniter ([#&#8203;2762](https://github.com/ash-project/ash/issues/2762)) by Okoye (Nature) Andrew [(#&#8203;2762)](https://github.com/ash-project/ash/pull/2762) ##### Bug Fixes: - expand calculations no matter where they appear by [@&#8203;zachdaniel](https://github.com/zachdaniel) - use final relationship read action for aggregates ([#&#8203;2792](https://github.com/ash-project/ash/issues/2792)) by [@&#8203;jechol](https://github.com/jechol) [(#&#8203;2792)](https://github.com/ash-project/ash/pull/2792) - fix negate atomic validation field interpolation ([#&#8203;2787](https://github.com/ash-project/ash/issues/2787)) by [@&#8203;stevebrambilla](https://github.com/stevebrambilla) [(#&#8203;2787)](https://github.com/ash-project/ash/pull/2787) - propagate shared context when loading bulk create results ([#&#8203;2783](https://github.com/ash-project/ash/issues/2783)) by [@&#8203;nallwhy](https://github.com/nallwhy) [(#&#8203;2783)](https://github.com/ash-project/ash/pull/2783) - don't clobber bulk destroy context by [@&#8203;zachdaniel](https://github.com/zachdaniel) - don't carry over query context to changesets by [@&#8203;zachdaniel](https://github.com/zachdaniel) - ensure manual action module is loaded before bulk dispatch ([#&#8203;2768](https://github.com/ash-project/ash/issues/2768)) by diogomrts [(#&#8203;2768)](https://github.com/ash-project/ash/pull/2768) - on\_match :destroy for many\_to\_many now destroys both join and destination ([#&#8203;2638](https://github.com/ash-project/ash/issues/2638)) by [@&#8203;nallwhy](https://github.com/nallwhy) [(#&#8203;2638)](https://github.com/ash-project/ash/pull/2638) - manifest reachability for repeated action roots ([#&#8203;2766](https://github.com/ash-project/ash/issues/2766)) by olivermt [(#&#8203;2766)](https://github.com/ash-project/ash/pull/2766) - pass NotLoaded/ForbiddenField through Ash.Type.rewrite/4 for array types ([#&#8203;2765](https://github.com/ash-project/ash/issues/2765)) by Oshoma Momoh [(#&#8203;2765)](https://github.com/ash-project/ash/pull/2765) - load and rewrite array-member union types correctly ([#&#8203;2763](https://github.com/ash-project/ash/issues/2763)) by skanderm [(#&#8203;2763)](https://github.com/ash-project/ash/pull/2763) ##### Improvements: - redact keyset values in `InvalidKeyset` messages ([#&#8203;2788](https://github.com/ash-project/ash/issues/2788)) by nseaSeb [(#&#8203;2788)](https://github.com/ash-project/ash/pull/2788) - add `error_handler` to generic actions ([#&#8203;2782](https://github.com/ash-project/ash/issues/2782)) by [@&#8203;jimsynz](https://github.com/jimsynz) [(#&#8203;2782)](https://github.com/ash-project/ash/pull/2782) - add default\_bulk\_batch\_size data layer callback([#&#8203;2780](https://github.com/ash-project/ash/issues/2780)) by alfieV [(#&#8203;2780)](https://github.com/ash-project/ash/pull/2780) - Syntax Error for Exists improved [#&#8203;2274](https://github.com/ash-project/ash/issues/2274) ([#&#8203;2767](https://github.com/ash-project/ash/issues/2767)) by torazar [(#&#8203;2767)](https://github.com/ash-project/ash/pull/2767) - support predicate (question mark endings) in code interfaces ([#&#8203;2761](https://github.com/ash-project/ash/issues/2761)) by colenelson0 [(#&#8203;2761)](https://github.com/ash-project/ash/pull/2761) </details> <details> <summary>ash-project/ash_admin (ash_admin)</summary> ### [`v1.2.0`](https://github.com/ash-project/ash_admin/blob/HEAD/CHANGELOG.md#v120-2026-07-20) [Compare Source](https://github.com/ash-project/ash_admin/compare/v1.1.0...v1.2.0) ##### Features: - Add drag-and-drop reordering for primitive array fields in forms ([#&#8203;407](https://github.com/ash-project/ash_admin/issues/407)) by JoyceJ53 ##### Bug Fixes: - support tenant option labels ([#&#8203;406](https://github.com/ash-project/ash_admin/issues/406)) by Jakub Skałecki - Ensure mobile and desktiop sidebar ids are unique ([#&#8203;404](https://github.com/ash-project/ash_admin/issues/404)) by capoccias - update for LV 1.2.0 by Zach Daniel - format array attribtues in ash\_admin by Zach Daniel ##### Improvements: - add support for uuidv7 primary keys ([#&#8203;413](https://github.com/ash-project/ash_admin/issues/413)) by StephanH90 </details> <details> <summary>team-alembic/ash_authentication_phoenix (ash_authentication_phoenix)</summary> ### [`v2.17.2`](https://github.com/team-alembic/ash_authentication_phoenix/releases/tag/v2.17.2) [Compare Source](https://github.com/team-alembic/ash_authentication_phoenix/compare/v2.17.1...v2.17.2) ##### Breaking Changes: - prevent logout CSRF by replacing GET sign-out with confirmation page by [@&#8203;jimsynz](https://github.com/jimsynz) ##### Bug Fixes: - add form IDs for liveview forms ([#&#8203;759](https://github.com/team-alembic/ash_authentication_phoenix/issues/759)) by [@&#8203;jimsynz](https://github.com/jimsynz) [(#&#8203;759)](https://github.com/team-alembic/ash_authentication_phoenix/pull/759) - read session data from Plug session in generate\_session ([#&#8203;716](https://github.com/team-alembic/ash_authentication_phoenix/issues/716)) ([#&#8203;747](https://github.com/team-alembic/ash_authentication_phoenix/issues/747)) by [@&#8203;jimsynz](https://github.com/jimsynz) [(#&#8203;747)](https://github.com/team-alembic/ash_authentication_phoenix/pull/747) ##### Improvements: - handle `ConfirmationRequired` in the generated auth controller ([#&#8203;744](https://github.com/team-alembic/ash_authentication_phoenix/issues/744)) by [@&#8203;jimsynz](https://github.com/jimsynz) [(#&#8203;744)](https://github.com/team-alembic/ash_authentication_phoenix/pull/744) ### [`v2.17.1`](https://github.com/team-alembic/ash_authentication_phoenix/compare/2.17.0...v2.17.1) [Compare Source](https://github.com/team-alembic/ash_authentication_phoenix/compare/2.17.0...v2.17.1) ### [`v2.17.0`](https://github.com/team-alembic/ash_authentication_phoenix/compare/v2.16.0...2.17.0) [Compare Source](https://github.com/team-alembic/ash_authentication_phoenix/compare/v2.16.0...2.17.0) </details> <details> <summary>ash-project/ash_phoenix (ash_phoenix)</summary> ### [`v2.3.24`](https://github.com/ash-project/ash_phoenix/blob/HEAD/CHANGELOG.md#v2324-2026-07-08) [Compare Source](https://github.com/ash-project/ash_phoenix/compare/v2.3.23...v2.3.24) ##### Bug Fixes: - Rename Ash.Resource.record() -> Ash.Resource.Record.t() by [@&#8203;jimsynz](https://github.com/jimsynz) ### [`v2.3.23`](https://github.com/ash-project/ash_phoenix/blob/HEAD/CHANGELOG.md#v2323-2026-06-05) [Compare Source](https://github.com/ash-project/ash_phoenix/compare/v2.3.22...v2.3.23) ##### Bug Fixes: - unwrap `NewType` in auto-form `map_type?` check ([#&#8203;475](https://github.com/ash-project/ash_phoenix/issues/475)) by sevenseacat [(#&#8203;475)](https://github.com/ash-project/ash_phoenix/pull/475) - Skip embed form standalone validation ([#&#8203;474](https://github.com/ash-project/ash_phoenix/issues/474)) by sevenseacat [(#&#8203;474)](https://github.com/ash-project/ash_phoenix/pull/474) - propagate shared context to nested forms in add\_form and validate ([#&#8203;472](https://github.com/ash-project/ash_phoenix/issues/472)) by [@&#8203;nallwhy](https://github.com/nallwhy) [(#&#8203;472)](https://github.com/ash-project/ash_phoenix/pull/472) </details> <details> <summary>ash-project/ash_postgres (ash_postgres)</summary> ### [`v2.11.0`](https://github.com/ash-project/ash_postgres/blob/HEAD/CHANGELOG.md#v2110-2026-07-22) [Compare Source](https://github.com/ash-project/ash_postgres/compare/v2.10.0...v2.11.0) ##### Features: - allow custom indexes to exclude base filters ([#&#8203;796](https://github.com/ash-project/ash_postgres/issues/796)) by Jechol Lee ##### Bug Fixes: - fix generated reference type value for identity and bigserial ([#&#8203;800](https://github.com/ash-project/ash_postgres/issues/800)) by Dmitry Maganov - return skipped upserts with nil identity values ([#&#8203;794](https://github.com/ash-project/ash_postgres/issues/794)) by Jechol Lee - warn when resources are skipped due to migrate?: false during mi… ([#&#8203;792](https://github.com/ash-project/ash_postgres/issues/792)) by Jsime34 - set tenant on destroy so exists() subqueries resolve against the tenant schema ([#&#8203;790](https://github.com/ash-project/ash_postgres/issues/790)) by Francisco-Castro - resolve actor/context templates in through relationship filters ([#&#8203;789](https://github.com/ash-project/ash_postgres/issues/789)) by Barnabas Jovanovics - correlate bulk upsert records by identity on the MERGE path ([#&#8203;786](https://github.com/ash-project/ash_postgres/issues/786)) by Johannes Welebil - ensure timeouts applied at repo level ([#&#8203;784](https://github.com/ash-project/ash_postgres/issues/784)) by torazar ##### Improvements: - Add partial index conditions for references ([#&#8203;795](https://github.com/ash-project/ash_postgres/issues/795)) by Jechol Lee - avoid generating uuidv7 by default, once postgres v18 is detected ([#&#8203;793](https://github.com/ash-project/ash_postgres/issues/793)) by Luca Venir - Added sort direction support to custom\_indexes fields. ([#&#8203;775](https://github.com/ash-project/ash_postgres/issues/775)) by Thomas Lucas </details> <details> <summary>mtrudel/bandit (bandit)</summary> ### [`v1.12.4`](https://github.com/mtrudel/bandit/blob/HEAD/CHANGELOG.md#1124-27-July-2026) [Compare Source](https://github.com/mtrudel/bandit/compare/1.12.3...1.12.4) ##### Fixes - Properly send Connection: close header when client requests closure ([#&#8203;617](https://github.com/mtrudel/bandit/issues/617)) - Disallow transfer-encoding on HTTP/1.0 connections ([#&#8203;618](https://github.com/mtrudel/bandit/issues/618)) - Reject requests with multiple Host headers ([#&#8203;619](https://github.com/mtrudel/bandit/issues/619)) - Reject malformed header lines ([#&#8203;620](https://github.com/mtrudel/bandit/issues/620)) - Fix handling of chunk extensions ([#&#8203;621](https://github.com/mtrudel/bandit/issues/621)) ##### Enhancements - Tighten up CI against supply chain attacks ([#&#8203;623](https://github.com/mtrudel/bandit/issues/623), thanks [@&#8203;Totara-thib](https://github.com/Totara-thib)!) - Reorganize and increase coverage of HTTP/1 tests to better match RFC structure ([#&#8203;616](https://github.com/mtrudel/bandit/issues/616)) - Tolerate a leading newline on HTTP/1 requests ([#&#8203;622](https://github.com/mtrudel/bandit/issues/622)) - Send "100 Continue" interim response before reading body if client requests it ([#&#8203;624](https://github.com/mtrudel/bandit/issues/624)) ### [`v1.12.3`](https://github.com/mtrudel/bandit/blob/HEAD/CHANGELOG.md#1123-25-July-2026) [Compare Source](https://github.com/mtrudel/bandit/compare/1.12.2...1.12.3) ##### Enhancements - Cache connection-level data between HTTP/1 keepalives ([#&#8203;603](https://github.com/mtrudel/bandit/issues/603), thanks [@&#8203;preciz](https://github.com/preciz)!) ### [`v1.12.2`](https://github.com/mtrudel/bandit/blob/HEAD/CHANGELOG.md#1122-25-July-2026) [Compare Source](https://github.com/mtrudel/bandit/compare/1.12.1...1.12.2) ##### Enhancements - Improve internal HTTP/2 error handling to be better about closing stream/connection - Coalesce header and body in to single transport send ([#&#8203;606](https://github.com/mtrudel/bandit/issues/606), thanks [@&#8203;NelsonVides](https://github.com/NelsonVides)!) - Improve compression behaviour when streaming an explicitly length delimited body ([#&#8203;605](https://github.com/mtrudel/bandit/issues/605), thanks [@&#8203;elibosley](https://github.com/elibosley)!) - Quiet WebSocket deserialization errors, add verbosity config lever ([#&#8203;610](https://github.com/mtrudel/bandit/issues/610), thanks [@&#8203;ericmj](https://github.com/ericmj)!) - Send connection: close when we're at max\_requests ([#&#8203;613](https://github.com/mtrudel/bandit/issues/613), thanks [@&#8203;joshdchang](https://github.com/joshdchang)!) ##### Fixes - Fix bogus check for unmasked WebSocket frames (<https://github.com/mtrudel/bandit/security/advisories/GHSA-rhh8-5xw9-c3gm>, thanks [@&#8203;lukaszsamson](https://github.com/lukaszsamson)!) - Enforce max\_header\_list\_size if overridden (<https://github.com/mtrudel/bandit/security/advisories/GHSA-9q5m-g6v3-6772>, thanks [@&#8203;lukaszsamson](https://github.com/lukaszsamson)!) ### [`v1.12.1`](https://github.com/mtrudel/bandit/blob/HEAD/CHANGELOG.md#1121-24-July-2026) [Compare Source](https://github.com/mtrudel/bandit/compare/1.12.0...1.12.1) ##### Fixes - Fix DoS issue with fragmented WebSocket frames (CVE-2026-65623, thanks [@&#8203;PJUllrich](https://github.com/PJUllrich)!) </details> <details> <summary>rrrene/credo (credo)</summary> ### [`v1.7.19`](https://github.com/rrrene/credo/blob/HEAD/CHANGELOG.md#1719) [Compare Source](https://github.com/rrrene/credo/compare/v1.7.18...v1.7.19) - Fix compatibility & compiler warnings with Elixir 1.20.0 </details> <details> <summary>ExHammer/hammer (hammer)</summary> ### [`v7.4.0`](https://github.com/ExHammer/hammer/blob/HEAD/CHANGELOG.md#740---2026-05-19) [Compare Source](https://github.com/ExHammer/hammer/compare/7.3.0...7.4.0) - Add `:fix_window_per_key` algorithm for ETS and Atomic backends — a fixed-window variant whose window is anchored to first hit per key instead of a globally-aligned wall-clock epoch. Same one-entry-per-key memory profile as `:fix_window`. The 2x boundary burst is still possible per key, but boundaries are no longer globally synchronized. ([#&#8203;181](https://github.com/ExHammer/hammer/issues/181)) </details> <details> <summary>ash-project/igniter (igniter)</summary> ### [`v0.8.3`](https://github.com/ash-project/igniter/blob/HEAD/CHANGELOG.md#v083-2026-07-26) [Compare Source](https://github.com/ash-project/igniter/compare/v0.8.2...v0.8.3) ##### Bug Fixes: - ensure verbose is passed all the way down by Zach Daniel - properly check `igniter.rms` in `--check` by Zach Daniel - resolve Elixir 1.20 type-check warnings ([#&#8203;387](https://github.com/ash-project/igniter/issues/387)) by Gilbert ##### Improvements: - add `Igniter.Libs.Phoenix.web_module_for_router/2` ([#&#8203;393](https://github.com/ash-project/igniter/issues/393)) by James Harton - update to Elixir 1.20 ([#&#8203;391](https://github.com/ash-project/igniter/issues/391)) by ESmithByui - direct users to format command for unless refactor by Zach Daniel </details> <details> <summary>dashbitco/lazy_html (lazy_html)</summary> ### [`v0.1.12`](https://github.com/dashbitco/lazy_html/blob/HEAD/CHANGELOG.md#v0112-2026-07-20) [Compare Source](https://github.com/dashbitco/lazy_html/compare/v0.1.11...v0.1.12) ##### Changed - Relaxed `elixir_make` requirement ([#&#8203;35](https://github.com/dashbitco/lazy_html/pull/35)) </details> <details> <summary>software-mansion/live-debugger (live_debugger)</summary> ### [`v1.0.2`](https://github.com/software-mansion/live-debugger/blob/HEAD/CHANGELOG.md#102-2026-07-15) [Compare Source](https://github.com/software-mansion/live-debugger/compare/v1.0.1...v1.0.2) ##### Bug fixes - Fix recurring DETS "not properly closed" log in [#&#8203;997](https://github.com/software-mansion/live-debugger/pull/997) *** ### [`v1.0.1`](https://github.com/software-mansion/live-debugger/blob/HEAD/CHANGELOG.md#101-2026-06-03) [Compare Source](https://github.com/software-mansion/live-debugger/compare/v1.0.0...v1.0.1) ##### Enhancements - Enhancement: Improve tracing performance in [#&#8203;989](https://github.com/software-mansion/live-debugger/pull/989) ##### Bug fixes - Fix MapSet assign summary updates in [#&#8203;988](https://github.com/software-mansion/live-debugger/pull/988) *** </details> <details> <summary>phoenixframework/phoenix (phoenix)</summary> ### [`v1.8.9`](https://github.com/phoenixframework/phoenix/compare/v1.8.8...v1.8.9) [Compare Source](https://github.com/phoenixframework/phoenix/compare/v1.8.8...v1.8.9) </details> <details> <summary>phoenixframework/phoenix_live_reload (phoenix_live_reload)</summary> ### [`v1.7.0`](https://github.com/phoenixframework/phoenix_live_reload/blob/HEAD/CHANGELOG.md#170-2026-07-29) [Compare Source](https://github.com/phoenixframework/phoenix_live_reload/compare/v1.6.2...v1.7.0) - Enhancements - Add JavaScript helper function to capture keyboard shortcuts to open HEEx components - Forward log events to window for custom behaviour </details> <details> <summary>phoenixframework/phoenix_live_view (phoenix_live_view)</summary> ### [`v1.2.8`](https://github.com/phoenixframework/phoenix_live_view/blob/HEAD/CHANGELOG.md#v128-2026-07-27) [Compare Source](https://github.com/phoenixframework/phoenix_live_view/compare/v1.2.7...v1.2.8) ##### Enhancements - Allow cancelling client-side navigation ([#&#8203;4332](https://github.com/phoenixframework/phoenix_live_view/pull/4332)) You can now listen for the `phx:before-navigate` event and call `event.preventDefault()` to cancel the navigation synchronously. This is mostly useful to prevent a "do you really want to leave" scenario when a user has unsaved changes, combined with a `beforeunload` listener. - Sign LiveView upload tokens as `:local` to avoid node names being included in the token - Ensure async tasks exit gracefully in LiveView tests ([#&#8203;4348](https://github.com/phoenixframework/phoenix_live_view/pull/4348)) - Allow opting focused form elements into DOM patching ([#&#8203;4339](https://github.com/phoenixframework/phoenix_live_view/pull/4339)) ##### Bug fixes - Fix server close handler not being reattached after a manual disconnect + connect ([#&#8203;4341](https://github.com/phoenixframework/phoenix_live_view/pull/4341)) - Fix `detail.lock()` promise in `phx:push` event never resolving ([#&#8203;4351](https://github.com/phoenixframework/phoenix_live_view/issues/4351)) - Fix live components not being correctly patched when changing their DOM ID ([#&#8203;4338](https://github.com/phoenixframework/phoenix_live_view/pull/4338)) - Gracefully handle missing upload refs ([#&#8203;4354](https://github.com/phoenixframework/phoenix_live_view/pull/4354)) ### [`v1.2.7`](https://github.com/phoenixframework/phoenix_live_view/blob/HEAD/CHANGELOG.md#v127-2026-07-13) [Compare Source](https://github.com/phoenixframework/phoenix_live_view/compare/v1.2.6...v1.2.7) ##### Security fixes - [CVE-2026-58228](https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-5cgh-g58j-m9cq): Fix scheme validation bypass in `Phoenix.LiveView.Utils` ### [`v1.2.6`](https://github.com/phoenixframework/phoenix_live_view/blob/HEAD/CHANGELOG.md#v126-2026-07-07) [Compare Source](https://github.com/phoenixframework/phoenix_live_view/compare/v1.2.5...v1.2.6) ##### Bug fixes - Fix HTMLFormatter inserting extra characters in template with multi-codepoint emojis ([#&#8203;4321](https://github.com/phoenixframework/phoenix_live_view/issues/4321)) </details> <details> <summary>elixir-ecto/postgrex (postgrex)</summary> ### [`v0.22.4`](https://github.com/elixir-ecto/postgrex/blob/HEAD/CHANGELOG.md#v0224-2026-08-07) [Compare Source](https://github.com/elixir-ecto/postgrex/compare/v0.22.3...v0.22.4) - Security - Escape comments on `Postgrex.stream/4` (CVE-2026-66838) ### [`v0.22.3`](https://github.com/elixir-ecto/postgrex/blob/HEAD/CHANGELOG.md#v0223-2026-07-09) [Compare Source](https://github.com/elixir-ecto/postgrex/compare/v0.22.2...v0.22.3) - Security - Escape dollar signs in channel names in `Postgrex.Notifications.listen/3` (CVE-2026-58225) </details> <details> <summary>wojtekmach/req (req)</summary> ### [`v0.7.2`](https://github.com/wojtekmach/req/blob/HEAD/CHANGELOG.md#v072) [Compare Source](https://github.com/wojtekmach/req/compare/v0.7.1...v0.7.2) - \[`encode_body`]: Bring back `form_multipart: [{string_name, value}]`. - \[`put_aws_sigv4`]: Fix AWS SigV4 compatibility with Supabase Storage S3. ### [`v0.7.1`](https://github.com/wojtekmach/req/blob/HEAD/CHANGELOG.md#v071-2026-07-28) [Compare Source](https://github.com/wojtekmach/req/compare/v0.7.0...v0.7.1) - Deprecate `cache: true`/\[`cache`] step. It will be removed in Req v0.8. I plan a comprehensive cache solution for Req v1.0+. ### [`v0.7.0`](https://github.com/wojtekmach/req/blob/HEAD/CHANGELOG.md#v070-2026-07-28) [Compare Source](https://github.com/wojtekmach/req/compare/v0.6.3...v0.7.0) - \[`Req`]: Add `Req.new(req, options)`. - \[`Req`]: Treat URL userinfo as Basic Authentication. - \[`Req`], \[`Req.Request`]: Deprecate `adapter: fun` in favour of `adapter: mod`. - \[`Req.Request`]: **(BREAKING CHANGE)** Remove `current_request_steps` field. - \[`Req.Request`]: Fix redacting remaining auth values. - **(BREAKING CHANGE)** Replace `run_finch` step with \[`Req.Finch`] adapter module. - **(BREAKING CHANGE)** Replace `put_plug` and `run_plug` steps with \[`Req.Plug`] adapter module. - \[`Req.Finch`]: Support `finch: options`. - \[`Req.Finch`]: Support `:request_timeout`. - \[`Req.Finch`]: Fix handling duplicate response headers. - \[`Req.Finch`]: Deprecate `finch: name` in favour of `finch: [name: name]`. - \[`Req.Finch`]: Deprecate `pool_timeout: value` in favour of `finch: [pool_timeout: value]`. - \[`Req.Finch`]: Deprecate `pool_max_idle_time: value` in favour of `finch: [pool_max_idle_time: value]`. - \[`Req.Finch`]: Deprecate `:finch_request`. - \[`Req.Plug`]: Handle individual response body chunks. - \[`Req.Plug`]: Support non-UTF8 request params. - \[`Req.Plug`]: Put original request private data in `conn.private`. - \[`Req.Test`]: Allow descendant processes. - \[`Req.Test`]: Fix concurrent plug fetches immediately after switching to shared mode. - \[`compress_body`]: Do nothing when request content-encoding is already set. - \[`compress_body`]: Update multipart boundary when re-running the step. - \[`compressed`], \[`decode_body`]: Replace optional `ezstd` dependency with Erlang/OTP 28+ built-in `:zstd`. - \[`decode_body`]: Deprecate `:decode_json` in favour of setting a custom JSON decoder via `:decoders`: ### before: ``` Req.get!(url, decode_json: [keys: :atoms]) ``` ### after: ``` Req.get!(url, decoders: [json: &Jason.decode(&1, keys: :atoms)]) ``` - \[`encode_body`]: **(BREAKING CHANGE)** Automatically change GET to POST when request body is set. - \[`put_aws_sigv4`]: Exclude `accept-encoding`, `x-amzn-trace-id`, and hop-by-hop headers from the signature. - \[`put_aws_sigv4`]: Correctly sign duplicate header values. - \[`put_params`]: **(BREAKING CHANGE)** Overwrite existing query params instead of appending. - \[`put_path_params`]: Preserve the path template when re-running the step. - \[`redirect`]: Strip userinfo from redirect locations and log a warning. Previously, redirecting to a URL with userinfo (e.g. `http://user:pass@host`) kept the userinfo in the request URL (without converting it to auth). It is now dropped so credentials supplied by the redirecting server aren't sent. - \[`redirect`]: Clear the request body, body options, and content headers when changing POST to GET after a 301, 302, or 303 response. - \[`retry`]: Use jitter by default. - \[`retry`]: Honor configured `:retry_delay` over `Retry-After`. - **(BREAKING CHANGE)** Remove deprecated `follow_redirects` step. - **(BREAKING CHANGE)** Remove deprecated `output` step. - Require Elixir 1.15 or later. ### [`v0.6.3`](https://github.com/wojtekmach/req/blob/HEAD/CHANGELOG.md#v063-2026-07-16) [Compare Source](https://github.com/wojtekmach/req/compare/v0.6.2...v0.6.3) - \[`Req.Test`]: Fix `__fetch_plug__/1` when called immediately after switching to shared mode. </details> <details> <summary>sobelow/sobelow (sobelow)</summary> ### [`v0.15.0`](https://github.com/sobelow/sobelow/blob/HEAD/CHANGELOG.md#v0150) [Compare Source](https://github.com/sobelow/sobelow/compare/v0.14.1...v0.15.0) - Bug fixes - `Config.Secrets` no longer crashes the scan when a secret is written as anything other than a plain double-quoted string. Heredoc values and values containing escaped quotes previously raised a `MatchError` and aborted the entire run. These secrets are now reported, using the line of the enclosing `config` call. - A corrupt or unreadable version-check cache file no longer aborts the scan. Sobelow previously printed "This does not appear to be a Phoenix application" and exited **0** — a CI gate could pass having scanned nothing. - `--strict` now reports syntax errors instead of raising. It has been broken since Elixir 1.13 changed the error shape returned by `Code.string_to_quoted/2`. Errors are now reported as `file:line:column:`. - A template that cannot be parsed is now skipped (or reported under `--strict`) rather than aborting the scan with an `EEx.SyntaxError`. The error now names the offending template instead of `nofile`. - A malformed `.sobelow-conf` now produces an actionable message instead of a raw `MatchError` stacktrace. This mattered more since v0.14.1 began reading the file automatically. - An empty, whitespace-only, or comment-only `.sobelow-conf` is now read as no options rather than aborting the scan. Such a file parses to an empty block instead of a keyword list, so it originally crashed with a `FunctionClauseError` and then, once that was fixed, exited 1 with a configuration error. Since the file is read automatically, a stray `touch .sobelow-conf` or a truncated write was enough to break every scan in a project. Contents that cannot be interpreted are still an error. - `--save-config` now stores `ignore_files` relative to the project root. Absolute paths were previously baked into `.sobelow-conf`, breaking the committed file on every other machine and in CI. - `Config.Secrets` now reports the line of the secret itself when a `config` call spans multiple lines. The line search compared a tuple against an integer, so it never worked as intended. - An unwritable `~/.sobelow` no longer fails a scan. - Fixed a string-interpolation typo that rendered dot-access variables as `conn.${atom_to_string(field)}`. - `.sobelow-conf` keys are now genuinely sorted alphabetically. - A `.sobelow-conf` can no longer stop Sobelow from scanning. `--save-config` wrote `version` into every file it generated, so `mix sobelow --version --save-config` produced a committed file that made every later run print the version and **exit 0** — a CI gate reading that as a clean scan. `version`, `details`, `all-details`, `save-config`, and `diff` choose what Sobelow does rather than configure a scan, and are now accepted on the command line only. One in the file is ignored, with a warning when it would have changed anything. `version` is no longer written to the file in the first place. - `# sobelow_skip` comments are no longer thrown away over whitespace. The pattern demanded exactly one space after the `#` and exactly one before the list, so `# sobelow_skip["XSS.Raw"]`, `# sobelow_skip ["XSS.Raw"]`, and `# sobelow_skip [ "XSS.Raw" ]` were all ignored — silently, and indistinguishably from a skip that had simply not applied. Spacing around the marker, inside the list, and around commas is now irrelevant. - `SQL.Query` no longer reports a project's own `query/1` as SQL injection. An unqualified `query`/`query!` call was matched regardless of what it referred to, so every call to a local function that happened to carry one of those very ordinary names produced a finding. The unqualified form is now only considered in a file that has `import Ecto.Adapters.SQL` or `use Ecto.Repo` — the two ways the bare name can actually reach Ecto. Qualified calls, such as `Repo.query/1` and `Ecto.Adapters.SQL.query/3`, are unaffected. - Enhancements - Added `--no-router`, for scanning a project that has no Phoenix router. Sobelow warned that it could not find one and offered no way to silence it, which was noise for plain Elixir libraries. It is shorthand for `--router :none`, which can also be set in `.sobelow-conf` as `router: :none`. The router-dependent checks are skipped either way. - `.sobelow-skips` is now written in sorted order, so regenerating it after fixing or adding a finding produces a small diff instead of reshuffling the file. Entries sort by type, file, and line number — numerically, so line 10 follows line 9 rather than line 1. The whole file is sorted, not just the newly added entries, so the ordering holds however many times it is regenerated. Comments and pre-v0.14 bare-fingerprint lines are preserved. Pass `--legacy-skips` for the previous append-only behaviour, which never rewrites lines it did not add. - `# sobelow_skip` comments now work on Phoenix router pipelines, not just functions. This makes `Config.CSRF`, `Config.Headers`, and `Config.CSP` suppressible per pipeline instead of only via `--mark-skip-all`, so an API pipeline that legitimately has no `:protect_from_forgery` can be annotated in place. Listing the parent `Config` module skips every Config check on that pipeline. As with function-level skips, this only takes effect under `--skip`. - A `# sobelow_skip` comment that cannot be read now warns on stderr, naming the file and line, instead of being dropped without a word. Single quotes and a list broken across several comment lines are still not accepted, but they now say so rather than leaving you to wonder why the finding came back. - `--private` now skips the version check entirely rather than still writing the cache file. It makes no network requests and touches no files outside the scanned project. - `SOBELOW_HOME` is now documented, and is treated as the *directory* holding the version-check cache. - Added `usage-rules.md`, following the `usage_rules` convention, so projects using AI coding assistants can pull Sobelow's guidance into their agent's context with `mix usage_rules.sync`. It is shipped in the Hex package. - Added `AGENTS.md` documenting the checker-module contract for contributors. - Added support for Elixir v1.20.x. - Testing - Added an end-to-end test harness (`Sobelow.ScanCase`) that runs full scans against fixture applications under `test/fixtures/apps`, plus regression coverage for every bug above. Line coverage went from 29% to 67%. - Added coverage for CLI option parsing, `.sobelow-conf` precedence, `--exit` and `--threshold` mapping, and the `json`/`sarif`/`quiet`/`txt` renderers. - Added end-to-end coverage for pipeline-level `# sobelow_skip` comments, and unit coverage for how skips associate with pipelines in the AST. - `Sobelow.ScanCase.temp_fixture_file/3` now restores a committed fixture's original contents instead of deleting the file, so a test can vary a checked-in fixture without destroying it. - Misc - Replaced the deprecated `:preferred_cli_env` project key with `def cli`. - Bumped `credo` to `~> 1.7.19`; 1.7.12 crashed on Elixir 1.20. - Removed a dead Elixir 1.5 version guard and fixed an always-true conditional in the SARIF renderer. ##### Upgrade notes - **`Config.Secrets` line numbers may change** for `config` calls that span multiple lines, and for files where the same secret value appears more than once. Finding fingerprints include the line number, so any affected `.sobelow-skips` entries will stop matching and those findings will resurface. Re-run `mix sobelow --mark-skip-all` if you rely on a committed skip file. - **Secrets that previously crashed the scan are now reported.** If a heredoc or escaped-quote secret exists in your config, you will see new findings where the scan previously failed outright. - **`SOBELOW_HOME` semantics changed** from "path to the cache file" to "directory holding the cache file". The previous behaviour raised a `MatchError` for the natural usage, so this is unlikely to affect anyone. </details> <details> <summary>swoosh/swoosh (swoosh)</summary> ### [`v1.27.0`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1270) [Compare Source](https://github.com/swoosh/swoosh/compare/v1.26.3...v1.27.0) ##### ✨ Features - Add AhaSend adapter [@&#8203;Sameer1122](https://github.com/Sameer1122) ([#&#8203;1177](https://github.com/swoosh/swoosh/issues/1177)) ### [`v1.26.3`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1263) [Compare Source](https://github.com/swoosh/swoosh/compare/1.26.2...v1.26.3) ##### 🔒 Security - Fix URL path injection via unencoded sender address in MsGraph adapter (GHSA-754j-98wh-57rf / CVE-2026-54893) ### [`v1.26.2`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1262) [Compare Source](https://github.com/swoosh/swoosh/compare/v1.26.1...1.26.2) ##### 🐛 Bug Fixes - Fix Postmark adapter not adding the recipient name to the Reply-To header [@&#8203;vickz84259](https://github.com/vickz84259) ([#&#8203;1166](https://github.com/swoosh/swoosh/issues/1166)) ### [`v1.26.1`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1261) [Compare Source](https://github.com/swoosh/swoosh/compare/v1.26.0...v1.26.1) ##### 🐛 Bug Fixes - Fix inline attachment `cid` handling for Mailpit adapter [@&#8203;waseigo](https://github.com/waseigo) ([#&#8203;1155](https://github.com/swoosh/swoosh/issues/1155)) ### [`v1.26.0`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1260) [Compare Source](https://github.com/swoosh/swoosh/compare/1.25.3...v1.26.0) ##### ✨ Features - Add self-hosted Mailpit adapter [@&#8203;waseigo](https://github.com/waseigo) ([#&#8203;1152](https://github.com/swoosh/swoosh/issues/1152)) ##### 📝 Documentation - Document the new Mailpit adapter in the README ### [`v1.25.3`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1253) [Compare Source](https://github.com/swoosh/swoosh/compare/v1.25.2...1.25.3) ##### 📝 Documentation - Document runtime Postmark server keys [@&#8203;dl-alexandre](https://github.com/dl-alexandre) ([#&#8203;1135](https://github.com/swoosh/swoosh/issues/1135)) ##### 🧰 Maintenance - update to support hackney less than 5.0 [@&#8203;allenwyma](https://github.com/allenwyma) ([#&#8203;1132](https://github.com/swoosh/swoosh/issues/1132)) - Allow usage of idna 7.x [@&#8203;sax](https://github.com/sax) ([#&#8203;1142](https://github.com/swoosh/swoosh/issues/1142)) - Fix Elixir 1.20 compilation warnings [@&#8203;gilbertwong96](https://github.com/gilbertwong96) ([#&#8203;1150](https://github.com/swoosh/swoosh/issues/1150)) ### [`v1.25.2`](https://github.com/swoosh/swoosh/blob/HEAD/CHANGELOG.md#1252) [Compare Source](https://github.com/swoosh/swoosh/compare/v1.25.1...v1.25.2) ##### 🐛 Bug Fixes - fix(config): prioritize runtime config for Mailer [@&#8203;ukashazia](https://github.com/ukashazia) ([#&#8203;1134](https://github.com/swoosh/swoosh/issues/1134)) </details> <details> <summary>tidewave-ai/tidewave_phoenix (tidewave)</summary> ### [`v0.8.2`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v082-2026-08-05) - Use `action_inputs` for `browser_eval` ### [`v0.8.1`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v081-2026-07-29) [Compare Source](https://github.com/tidewave-ai/tidewave_phoenix/compare/v0.8.0...v0.8.1) - Add Tidewave Connect support ### [`v0.8.0`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v080-2026-07-22) [Compare Source](https://github.com/tidewave-ai/tidewave_phoenix/compare/v0.6.1...v0.8.0) - Add the Tidewave Toolbar - Align minor version across Tidewave packages </details> <details> <summary>mathieuprog/tz (tz)</summary> ### [`v0.28.2`](https://github.com/mathieuprog/tz/compare/v0.28.1...v0.28.2) [Compare Source](https://github.com/mathieuprog/tz/compare/v0.28.1...v0.28.2) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between day 1 and 7 of the month (`* * 1-7 * *`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE2NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWF0ZWQiLCJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->
chore(deps): update mix dependencies
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
f8fbb2f523
Author
Collaborator

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: mix.lock
Command failed: install-tool elixir v1.20.3

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: mix.lock ``` Command failed: install-tool elixir v1.20.3 ```
renovate force-pushed renovate/mix-dependencies from f8fbb2f523
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
to 2186e25dc4
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
2026-08-06 02:09:58 +02:00
Compare
Some checks are pending
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production
Required
Some required checks are missing.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/mix-dependencies:renovate/mix-dependencies
git switch renovate/mix-dependencies
Sign in to join this conversation.
No description provided.