chore(deps): update mix dependencies #569

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

This PR contains the following updates:

Package Type Update Change
credo (source) dev patch 1.7.18 → 1.7.19
dialyxir (source) dev patch 1.4.7 → 1.4.8
dns_cluster (source) prod minor ~> 0.2.0 → ~> 0.3.0
hammer (source) prod minor 7.3.0 → 7.5.0
imprintor (source) prod minor ~> 0.6.0 → ~> 0.7.0
live_debugger (source) dev patch 1.0.0 → 1.0.3
phoenix_live_dashboard (source) prod minor ~> 0.8.3 → ~> 0.9.0
phoenix_live_reload (source) dev minor 1.6.2 → 1.7.0
sobelow (source) dev minor ~> 0.14 → ~> 0.16
telemetry_metrics (source) prod minor 1.1.0 → 1.2.0
tidewave (source) dev minor ~> 0.6 → ~> 0.9
tz (source) prod patch 0.28.1 → 0.28.4

Release Notes

rrrene/credo (credo)

v1.7.19

Compare Source

  • Fix compatibility & compiler warnings with Elixir 1.20.0
jeremyjh/dialyxir (dialyxir)

v1.4.8

Compare Source

phoenixframework/dns_cluster (dns_cluster)

v0.3.1

Compare Source

  • Properly look up the hostname of a {basename, query} tuple

v0.3.0

Compare Source

  • Support srv cluster queries
ExHammer/hammer (hammer)

v7.5.0

Compare Source

  • Fix race in Atomic TokenBucket and LeakyBucket where a newly created bucket was published in ETS before its atomic was initialized, so a concurrent hit could read an uninitialized bucket. With refill_rate: 0 this lost a hit. The atomic is now initialized before it is inserted. (#​202)
  • Fix TokenBucket ETS backend discarding the sub-token refill remainder on every allowed hit. Callers hitting faster than one token period never refilled, and callers paced at exactly the refill rate slowly starved. The stored clock now advances only by the time whose tokens were credited, so the remainder carries into the next hit. (#​197)
  • Fix TokenBucket ETS backend returning a flat {:deny, 1000}; it now returns the real time in milliseconds until the bucket holds enough tokens to pay the cost, consistent with the other algorithms. Behaviour change: denied callers that sleep on this value will now retry much sooner (e.g. 19ms at refill_rate: 55 instead of 1000ms). Code that converts it to a retry-after header should round up and floor at 1 second; the tutorial examples were updated accordingly. (#​198)
  • Add mix hammer.install Igniter task (mix igniter.install hammer) that generates a MyApp.RateLimit module and adds it to the supervision tree. Supports --backend ets|atomic|redis; redis also adds the hammer_backend_redis dependency. Igniter is an optional dependency. (#​157)

v7.4.1

Compare Source

  • Fix TokenBucket ETS backend refill using whole-second resolution, which capped sustained throughput at capacity tokens/sec when refill_rate > capacity. Refill now uses millisecond resolution. (#​192)

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)
mfeckie/imprintor (imprintor)

v0.7.0

Compare Source

  • Added: Imprintor.compile_to_png/1 and Imprintor.compile_to_png_file/2 — render a Typst template to PNG image(s) instead of a PDF (#​16). Multi-page documents produce one binary/file per page; Imprintor.Config gains an optional :ppi field (defaults to 144.0, matching typst-cli).
  • Bumps typst/typst-kit/typst-pdf to 0.15.1 and rustler to 0.38.0.
    • Note: generated PDFs are now minified by default (Typst 0.15 changed this default), so output bytes will differ from previous versions even though content is unchanged.
    • Note: generated PDFs are now tagged for accessibility by default (Typst 0.15 always writes a baseline-tagged PDF, even without requesting the ua-1 standard).
    • Note: if you reference a variable font by a name like "Inter Variable" via :extra_fonts, Typst 0.15 now trims Variable/Var/VF suffixes from font family names — use the base family name (e.g. "Inter") instead.
    • Note: if your Typst templates use backslashes in #import/#include/image() paths (e.g. on Windows), Typst 0.15 no longer allows backslashes in these paths — use forward slashes.
0.1.0
  • Initial release
  • Basic Typst template compilation using native Rust
  • PDF generation with data access using elixir_data variable
  • Support for nested data structures and array iteration
  • Configuration-based API with Imprintor.Config
  • Custom fonts support
  • Comprehensive test suite
software-mansion/live-debugger (live_debugger)

v1.0.3

Compare Source

What's Changed

Full Changelog: https://github.com/software-mansion/live-debugger/compare/v1.0.2...v1.0.3

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_live_dashboard (phoenix_live_dashboard)

v0.9.1

Compare Source

  • Skip Ecto repos that cannot be resolved to an extras module

v0.9.0

Compare Source

  • Require Phoenix LiveView 1.0+
  • Require Elixir 1.15+
  • Add a compact nested list view for application supervision trees
  • Allow overriding the Ecto Stats info module per repository by passing {repo, info_module} tuples in :ecto_repos
  • Add refresh_interval as a reporting option for chart components
  • Display process label in application and process views
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
sobelow/sobelow (sobelow)

v0.16.0

Compare Source

  • Bug fixes
    • XSS.Raw no longer reports calls to a benign local raw helper with the matching
      arity, including defaults, guards, pipes, captures, and inline HEEx. Local
      definitions stay within their module; qualified Phoenix calls and
      implicitly imported template helpers retain detection. Helpers returning
      dynamic {:safe, value} output or wrapping another raw call retain
      their caller's original findings, locations, and fingerprints. (#​44)
    • XSS.SendResp now recognizes put_resp_header(conn, "content-type", type)
      on the response connection, including piped, aliased, nested, and assigned
      calls. HTML, SVG, malformed, and unknown types still report; other XML
      and PDF document types retain low-confidence findings. Discarded, later,
      unrelated, locally shadowed, or ambiguously imported setters cannot
      suppress findings. Known unrelated response headers retain the connection's
      content type, and MIME parameters do not change its classification. (#​45)
    • XSS.Raw now respects explicit imports of unrelated raw helpers. Unknown
      raw macros and delegates retain detection. Older inline lexical contexts
      without local-signature metadata remain supported.
    • Invalid project roots, roots with no scannable source files, invalid scan
      options, and unwritable output files now fail with actionable errors.
    • Repeated scans in the same VM now start with fresh findings, template, and
      skip state. Malformed sources and templates are skipped with a warning in
      non-strict mode, and unreadable files are skipped with a warning.
    • Dynamic socket options, literal statements in router pipelines, and access
      on a literal keyword list no longer abort scans. Unknown socket options
      produce low-confidence findings.
    • XSS.SendResp now follows the connection passed to each response and its
      content type before that sink. Later or discarded setters cannot suppress
      an earlier finding, and rebindings in branches, patterns, callbacks,
      generators, and call arguments cannot borrow another connection's content
      type. Unchanged bindings, pins, guards, and explicit setters retain their
      existing handling.
    • HTTPS and HSTS checks now use effective settings for the scanned application
      and each endpoint, including ordered overrides and nested keyword merges.
      One endpoint cannot satisfy another's settings. Dynamic and conditional
      settings produce low-confidence findings. Empty CSP policies are reported.
    • Enabled sockets now inherit endpoint origin settings from base, production,
      and runtime configuration, including socket/2 and websocket: true.
      Explicit socket overrides retain precedence, and
      disabled WebSockets remain excluded. Defaults are isolated to each endpoint
      module. Origin allowlists and :conn are recognized; an enabled CSRF check
      lowers confidence when origin checks are disabled.
    • HEEx comments and script/style text no longer change brace-interpolation
      scope or introduce findings from literal markup. The
      phx-no-curly-interpolation directive is recognized as an attribute name;
      the same text inside another attribute's value cannot suppress findings.
      Inline columns account for sigil prefixes and heredoc indentation.
    • Module-local use and import declarations now apply only to their own
      module. Named captures and inline HEEx retain lexical aliases and import
      selections, including renamed aliases and imported arity restrictions.
    • Lockfile dependency advisories now require the Hex package name to match
      the checked dependency, preventing false advisories for package aliases.
      Missing or nonliteral versions no longer abort scans.
    • Explicit router paths now resolve relative to --root. SARIF locations
      are relative to the scan root, or use file URIs for external files. Reserved
      filename characters, including #, ?, %, and :, are percent-encoded.
      JSON filenames and skip fingerprints are unchanged.
    • SARIF's Vuln.CookieRCE rule name now matches its existing result type and
      rule ID. Unknown finding types receive a null rule ID instead of raising.
      Config.CSRFRoute is now listed in mix help sobelow.
    • Optional version checks now verify TLS certificates and hostnames when a
      trusted CA store is available, and tolerate malformed responses, cache,
      filesystem, and network failures. OTP 24 skips the notification because
      it has no built-in CA-store API.
    • Enhancements
      • Added a github output format for GitHub Actions workflow annotations,
        with confidence levels and repository-relative finding locations.
      • Added detection of raw output in HEEx files and inline ~H sigils,
        including body and attribute expressions, legacy EEx, qualified and piped
        Phoenix.HTML.raw calls, nested sigils, and Elixir comments. Controller
        renders are correlated with embedded *_html templates. Brace
        interpolation is disabled in script/style bodies and regions marked with
        phx-no-curly-interpolation. Invalid expressions warn and are skipped, or
        exit 2 under --strict.
      • Added static resolution of renamed and grouped aliases, nested module
        inheritance, function-local imports, and only/except arity selections.
        Confidence grading follows direct local aliases before a sink. Calls
        retain their original ASTs, and implicit Phoenix controller imports retain
        their historical detection.
      • The existing fixed set of Vuln.* dependency advisories can now read literal
        Hex versions from mix.lock when deps/ is unavailable, without evaluating
        project code.
      • Added --include-mix-tasks and --include-scripts to opt into additional
        source paths, and --summary to print file counts on stderr. SARIF now
        includes invocation warnings and uses the published OASIS schema URL.
      • .sobelow-conf saves and sorted skip rewrites are now atomic, preserve Unix
        permissions, and follow symlinks. Unreadable existing skip files are
        preserved and produce an actionable error. --legacy-skips retains the
        existing append behavior.
      • Improved scan speed with shared function call, pipe, parameter, and
        confidence analysis; incremental HEEx delimiter parsing; combined
        file/module metadata extraction; bounded, ordered file preparation; and
        smaller lexical contexts with compatible lookup paths on older OTP.
      • Batched finding and fingerprint updates, retaining each function source
        once per batch. Quiet output and exit status use confidence counts, and
        repeated reports reuse sorted results. Scan settings, enabled checks,
        paths, skip lookups, and relevant template snapshots are reused, with
        per-worker cache counters to avoid contention. Source, AST, lockfile, and
        dependency-version caches are released when the scan finishes or fails.
        Existing public finding-log results and output formats are preserved.
    • Testing
      • Expanded regression coverage for output and verbose highlighting, advisory
        boundaries, configuration uncertainty, atomic writes, source edge cases,
        and scan/lexical context restoration. Added failing regressions and safe
        controls for Copilot and adversarial review findings.
      • Added release 0.15.0 fixtures for JSON/SARIF output, rule IDs, fingerprints,
        and both historical skip formats. Exact fingerprint assertions run on the
        captured parser family; output/rule contracts and generated skip round
        trips run across the supported matrix. Independent release column captures
        qualify older parsers, and highlighting follows each runtime's printer.
      • Added compatibility coverage for all 70 pre-extraction public function and
        arity pairs on Sobelow and Sobelow.Parse, including traversal callbacks
        and default arities.
      • Expanded benchmarks to seven workloads and quiet/JSON/SARIF output, with
        complete finding and output comparisons, reduction counts, and separate
        sampled VM memory. Methodology, measurements, and limits are documented in
        bench/README.md; the benchmark entry point is bench/scan.exs.
      • Raised line coverage from 85.2% to 98.5%, with a 98% gate on the newest CI
        runtime. Coverage excludes only the test harness, documentation-only legacy
        module, and developer diff helper. Fixtures are ignored by test discovery.
      • Isolated named processes and application configuration in legacy tests to
        prevent order-dependent failures on older Elixir versions. Version-check
        cache, response, and TLS-option tests make no network requests.
      • CI builds and smoke-tests the escript on every supported Elixir/OTP
        combination, including exit codes; strict Credo runs on every entry.
    • Misc
      • Split scan discovery, execution, skip-file persistence, and version checks
        into focused internal modules. Shared AST helpers now live in source,
        metadata, calls, variables, and template modules, with the existing
        Sobelow and Sobelow.Parse entry points preserved.
      • Consolidated duplicate matchers and worker setup, reused relative-path
        handling, and shortened stale comments. Updated contributor and usage
        guidance to document the new module boundaries and scan options.
Upgrade notes
  • Newly supported unsafe patterns can produce additional findings. HEEx,
    inline templates, lexical resolution, response rebindings, and configuration
    fixes can reveal previously missed sinks. Corrected lockfile package matching
    can remove false dependency advisories.
  • Invalid invocations and failed output writes now fail explicitly. Check
    project roots, scan options, and output permissions if an invocation previously
    exited successfully without scanning or writing its report.
  • Existing check names, finding types, CLI flags, JSON finding fields, original
    ASTs, existing finding locations, and current/legacy fingerprint calculations
    are preserved. SARIF artifact paths are corrected as described above. The
    minimum supported Elixir version remains ~> 1.12.

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.
beam-telemetry/telemetry_metrics (telemetry_metrics)

v1.2.0

Added
  • Add support for functions in tags (this supersedes tag_values)
Changed
  • Assorted optimizations
Changed
tidewave-ai/tidewave_phoenix (tidewave)

v0.9.1

  • Add mix tidewave.proxy
  • Add "instructions" to MCP initialization response

v0.9.0

Compare Source

  • Add create_design_canvas tool
  • Allow requests to tidewave.ai in CSP if toolbar is enabled
  • Remove get_*_schema tools

v0.8.4

  • Fix crash in diagnostic log handler

v0.8.3

  • Support LiveView patching diagnostics

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.4

Compare Source

v0.28.2

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Every minute (* * * * *)
  • 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 | |---|---|---|---| | [credo](https://hex.pm/packages/credo) ([source](https://github.com/rrrene/credo)) | dev | patch | `1.7.18` → `1.7.19` | | [dialyxir](https://hex.pm/packages/dialyxir) ([source](https://github.com/jeremyjh/dialyxir)) | dev | patch | `1.4.7` → `1.4.8` | | [dns_cluster](https://hex.pm/packages/dns_cluster) ([source](https://github.com/phoenixframework/dns_cluster)) | prod | minor | `~> 0.2.0` → `~> 0.3.0` | | [hammer](https://hex.pm/packages/hammer) ([source](https://github.com/ExHammer/hammer)) | prod | minor | `7.3.0` → `7.5.0` | | [imprintor](https://hex.pm/packages/imprintor) ([source](https://github.com/mfeckie/imprintor)) | prod | minor | `~> 0.6.0` → `~> 0.7.0` | | [live_debugger](https://hex.pm/packages/live_debugger) ([source](https://github.com/software-mansion/live-debugger)) | dev | patch | `1.0.0` → `1.0.3` | | [phoenix_live_dashboard](https://hex.pm/packages/phoenix_live_dashboard) ([source](https://github.com/phoenixframework/phoenix_live_dashboard)) | prod | minor | `~> 0.8.3` → `~> 0.9.0` | | [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` | | [sobelow](https://hex.pm/packages/sobelow) ([source](https://github.com/sobelow/sobelow)) | dev | minor | `~> 0.14` → `~> 0.16` | | [telemetry_metrics](https://hex.pm/packages/telemetry_metrics) ([source](https://github.com/beam-telemetry/telemetry_metrics)) | prod | minor | `1.1.0` → `1.2.0` | | [tidewave](https://hex.pm/packages/tidewave) ([source](https://github.com/tidewave-ai/tidewave_phoenix)) | dev | minor | `~> 0.6` → `~> 0.9` | | [tz](https://hex.pm/packages/tz) ([source](https://github.com/mathieuprog/tz)) | prod | patch | `0.28.1` → `0.28.4` | --- ### Release Notes <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>jeremyjh/dialyxir (dialyxir)</summary> ### [`v1.4.8`](https://github.com/jeremyjh/dialyxir/blob/HEAD/CHANGELOG.md#Unreleased-changes-post-148) [Compare Source](https://github.com/jeremyjh/dialyxir/compare/1.4.7...1.4.8) </details> <details> <summary>phoenixframework/dns_cluster (dns_cluster)</summary> ### [`v0.3.1`](https://github.com/phoenixframework/dns_cluster/blob/HEAD/CHANGELOG.md#031-2026-10-01) [Compare Source](https://github.com/phoenixframework/dns_cluster/compare/v0.3.0...v0.3.1) - Properly look up the hostname of a {basename, query} tuple ### [`v0.3.0`](https://github.com/phoenixframework/dns_cluster/blob/HEAD/CHANGELOG.md#030-2026-08-25) [Compare Source](https://github.com/phoenixframework/dns_cluster/compare/v0.2.0...v0.3.0) - Support srv cluster queries </details> <details> <summary>ExHammer/hammer (hammer)</summary> ### [`v7.5.0`](https://github.com/ExHammer/hammer/blob/HEAD/CHANGELOG.md#750---2026-09-02) [Compare Source](https://github.com/ExHammer/hammer/compare/7.4.1...v7.5.0) - Fix race in Atomic `TokenBucket` and `LeakyBucket` where a newly created bucket was published in ETS before its atomic was initialized, so a concurrent hit could read an uninitialized bucket. With `refill_rate: 0` this lost a hit. The atomic is now initialized before it is inserted. ([#&#8203;202](https://github.com/ExHammer/hammer/issues/202)) - Fix `TokenBucket` ETS backend discarding the sub-token refill remainder on every allowed hit. Callers hitting faster than one token period never refilled, and callers paced at exactly the refill rate slowly starved. The stored clock now advances only by the time whose tokens were credited, so the remainder carries into the next hit. ([#&#8203;197](https://github.com/ExHammer/hammer/issues/197)) - Fix `TokenBucket` ETS backend returning a flat `{:deny, 1000}`; it now returns the real time in milliseconds until the bucket holds enough tokens to pay the cost, consistent with the other algorithms. **Behaviour change:** denied callers that sleep on this value will now retry much sooner (e.g. 19ms at `refill_rate: 55` instead of 1000ms). Code that converts it to a `retry-after` header should round up and floor at 1 second; the tutorial examples were updated accordingly. ([#&#8203;198](https://github.com/ExHammer/hammer/issues/198)) - Add `mix hammer.install` Igniter task (`mix igniter.install hammer`) that generates a `MyApp.RateLimit` module and adds it to the supervision tree. Supports `--backend ets|atomic|redis`; `redis` also adds the `hammer_backend_redis` dependency. Igniter is an optional dependency. ([#&#8203;157](https://github.com/ExHammer/hammer/issues/157)) ### [`v7.4.1`](https://github.com/ExHammer/hammer/blob/HEAD/CHANGELOG.md#741---2026-08-28) [Compare Source](https://github.com/ExHammer/hammer/compare/7.4.0...7.4.1) - Fix `TokenBucket` ETS backend refill using whole-second resolution, which capped sustained throughput at `capacity` tokens/sec when `refill_rate > capacity`. Refill now uses millisecond resolution. ([#&#8203;192](https://github.com/ExHammer/hammer/issues/192)) ### [`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>mfeckie/imprintor (imprintor)</summary> ### [`v0.7.0`](https://github.com/mfeckie/imprintor/blob/HEAD/CHANGELOG.md#070) [Compare Source](https://github.com/mfeckie/imprintor/compare/0.6.0...0.7.0) - **Added:** `Imprintor.compile_to_png/1` and `Imprintor.compile_to_png_file/2` — render a Typst template to PNG image(s) instead of a PDF ([#&#8203;16](https://github.com/mfeckie/imprintor/issues/16)). Multi-page documents produce one binary/file per page; `Imprintor.Config` gains an optional `:ppi` field (defaults to `144.0`, matching `typst-cli`). - Bumps typst/typst-kit/typst-pdf to 0.15.1 and rustler to 0.38.0. - **Note:** generated PDFs are now minified by default (Typst 0.15 changed this default), so output bytes will differ from previous versions even though content is unchanged. - **Note:** generated PDFs are now tagged for accessibility by default (Typst 0.15 always writes a baseline-tagged PDF, even without requesting the `ua-1` standard). - **Note:** if you reference a variable font by a name like `"Inter Variable"` via `:extra_fonts`, Typst 0.15 now trims `Variable`/`Var`/`VF` suffixes from font family names — use the base family name (e.g. `"Inter"`) instead. - **Note:** if your Typst templates use backslashes in `#import`/`#include`/`image()` paths (e.g. on Windows), Typst 0.15 no longer allows backslashes in these paths — use forward slashes. ##### 0.1.0 - Initial release - Basic Typst template compilation using native Rust - PDF generation with data access using `elixir_data` variable - Support for nested data structures and array iteration - Configuration-based API with `Imprintor.Config` - Custom fonts support - Comprehensive test suite </details> <details> <summary>software-mansion/live-debugger (live_debugger)</summary> ### [`v1.0.3`](https://github.com/software-mansion/live-debugger/releases/tag/v1.0.3) [Compare Source](https://github.com/software-mansion/live-debugger/compare/v1.0.2...v1.0.3) #### What's Changed - Feature: allow configuring debug button position in by [@&#8203;srzeszut](https://github.com/srzeszut) in [#&#8203;1009](https://github.com/software-mansion/live-debugger/pull/1009) **Full Changelog**: <https://github.com/software-mansion/live-debugger/compare/v1.0.2...v1.0.3> ### [`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_live_dashboard (phoenix_live_dashboard)</summary> ### [`v0.9.1`](https://github.com/phoenixframework/phoenix_live_dashboard/blob/HEAD/CHANGELOG.md#v091-2026-08-31) [Compare Source](https://github.com/phoenixframework/phoenix_live_dashboard/compare/v0.9.0...v0.9.1) - Skip Ecto repos that cannot be resolved to an extras module ### [`v0.9.0`](https://github.com/phoenixframework/phoenix_live_dashboard/blob/HEAD/CHANGELOG.md#v090-2026-08-12) [Compare Source](https://github.com/phoenixframework/phoenix_live_dashboard/compare/v0.8.7...v0.9.0) - Require Phoenix LiveView 1.0+ - Require Elixir 1.15+ - Add a compact nested list view for application supervision trees - Allow overriding the Ecto Stats info module per repository by passing `{repo, info_module}` tuples in `:ecto_repos` - Add refresh\_interval as a reporting option for chart components - Display process label in application and process views </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>sobelow/sobelow (sobelow)</summary> ### [`v0.16.0`](https://github.com/sobelow/sobelow/blob/HEAD/CHANGELOG.md#v0160) [Compare Source](https://github.com/sobelow/sobelow/compare/v0.15.0...v0.16.0) - Bug fixes - `XSS.Raw` no longer reports calls to a benign local `raw` helper with the matching arity, including defaults, guards, pipes, captures, and inline HEEx. Local definitions stay within their module; qualified Phoenix calls and implicitly imported template helpers retain detection. Helpers returning dynamic `{:safe, value}` output or wrapping another `raw` call retain their caller's original findings, locations, and fingerprints. ([#&#8203;44](https://github.com/sobelow/sobelow/issues/44)) - `XSS.SendResp` now recognizes `put_resp_header(conn, "content-type", type)` on the response connection, including piped, aliased, nested, and assigned calls. HTML, SVG, malformed, and unknown types still report; other XML and PDF document types retain low-confidence findings. Discarded, later, unrelated, locally shadowed, or ambiguously imported setters cannot suppress findings. Known unrelated response headers retain the connection's content type, and MIME parameters do not change its classification. ([#&#8203;45](https://github.com/sobelow/sobelow/issues/45)) - `XSS.Raw` now respects explicit imports of unrelated `raw` helpers. Unknown raw macros and delegates retain detection. Older inline lexical contexts without local-signature metadata remain supported. - Invalid project roots, roots with no scannable source files, invalid scan options, and unwritable output files now fail with actionable errors. - Repeated scans in the same VM now start with fresh findings, template, and skip state. Malformed sources and templates are skipped with a warning in non-strict mode, and unreadable files are skipped with a warning. - Dynamic socket options, literal statements in router pipelines, and access on a literal keyword list no longer abort scans. Unknown socket options produce low-confidence findings. - `XSS.SendResp` now follows the connection passed to each response and its content type before that sink. Later or discarded setters cannot suppress an earlier finding, and rebindings in branches, patterns, callbacks, generators, and call arguments cannot borrow another connection's content type. Unchanged bindings, pins, guards, and explicit setters retain their existing handling. - HTTPS and HSTS checks now use effective settings for the scanned application and each endpoint, including ordered overrides and nested keyword merges. One endpoint cannot satisfy another's settings. Dynamic and conditional settings produce low-confidence findings. Empty CSP policies are reported. - Enabled sockets now inherit endpoint origin settings from base, production, and runtime configuration, including `socket/2` and `websocket: true`. Explicit socket overrides retain precedence, and disabled WebSockets remain excluded. Defaults are isolated to each endpoint module. Origin allowlists and `:conn` are recognized; an enabled CSRF check lowers confidence when origin checks are disabled. - HEEx comments and script/style text no longer change brace-interpolation scope or introduce findings from literal markup. The `phx-no-curly-interpolation` directive is recognized as an attribute name; the same text inside another attribute's value cannot suppress findings. Inline columns account for sigil prefixes and heredoc indentation. - Module-local `use` and `import` declarations now apply only to their own module. Named captures and inline HEEx retain lexical aliases and import selections, including renamed aliases and imported arity restrictions. - Lockfile dependency advisories now require the Hex package name to match the checked dependency, preventing false advisories for package aliases. Missing or nonliteral versions no longer abort scans. - Explicit router paths now resolve relative to `--root`. SARIF locations are relative to the scan root, or use file URIs for external files. Reserved filename characters, including `#`, `?`, `%`, and `:`, are percent-encoded. JSON filenames and skip fingerprints are unchanged. - SARIF's `Vuln.CookieRCE` rule name now matches its existing result type and rule ID. Unknown finding types receive a null rule ID instead of raising. `Config.CSRFRoute` is now listed in `mix help sobelow`. - Optional version checks now verify TLS certificates and hostnames when a trusted CA store is available, and tolerate malformed responses, cache, filesystem, and network failures. OTP 24 skips the notification because it has no built-in CA-store API. - Enhancements - Added a `github` output format for GitHub Actions workflow annotations, with confidence levels and repository-relative finding locations. - Added detection of raw output in HEEx files and inline `~H` sigils, including body and attribute expressions, legacy EEx, qualified and piped `Phoenix.HTML.raw` calls, nested sigils, and Elixir comments. Controller renders are correlated with embedded `*_html` templates. Brace interpolation is disabled in script/style bodies and regions marked with `phx-no-curly-interpolation`. Invalid expressions warn and are skipped, or exit 2 under `--strict`. - Added static resolution of renamed and grouped aliases, nested module inheritance, function-local imports, and `only`/`except` arity selections. Confidence grading follows direct local aliases before a sink. Calls retain their original ASTs, and implicit Phoenix controller imports retain their historical detection. - The existing fixed set of `Vuln.*` dependency advisories can now read literal Hex versions from `mix.lock` when `deps/` is unavailable, without evaluating project code. - Added `--include-mix-tasks` and `--include-scripts` to opt into additional source paths, and `--summary` to print file counts on stderr. SARIF now includes invocation warnings and uses the published OASIS schema URL. - `.sobelow-conf` saves and sorted skip rewrites are now atomic, preserve Unix permissions, and follow symlinks. Unreadable existing skip files are preserved and produce an actionable error. `--legacy-skips` retains the existing append behavior. - Improved scan speed with shared function call, pipe, parameter, and confidence analysis; incremental HEEx delimiter parsing; combined file/module metadata extraction; bounded, ordered file preparation; and smaller lexical contexts with compatible lookup paths on older OTP. - Batched finding and fingerprint updates, retaining each function source once per batch. Quiet output and exit status use confidence counts, and repeated reports reuse sorted results. Scan settings, enabled checks, paths, skip lookups, and relevant template snapshots are reused, with per-worker cache counters to avoid contention. Source, AST, lockfile, and dependency-version caches are released when the scan finishes or fails. Existing public finding-log results and output formats are preserved. - Testing - Expanded regression coverage for output and verbose highlighting, advisory boundaries, configuration uncertainty, atomic writes, source edge cases, and scan/lexical context restoration. Added failing regressions and safe controls for Copilot and adversarial review findings. - Added release 0.15.0 fixtures for JSON/SARIF output, rule IDs, fingerprints, and both historical skip formats. Exact fingerprint assertions run on the captured parser family; output/rule contracts and generated skip round trips run across the supported matrix. Independent release column captures qualify older parsers, and highlighting follows each runtime's printer. - Added compatibility coverage for all 70 pre-extraction public function and arity pairs on `Sobelow` and `Sobelow.Parse`, including traversal callbacks and default arities. - Expanded benchmarks to seven workloads and quiet/JSON/SARIF output, with complete finding and output comparisons, reduction counts, and separate sampled VM memory. Methodology, measurements, and limits are documented in `bench/README.md`; the benchmark entry point is `bench/scan.exs`. - Raised line coverage from 85.2% to 98.5%, with a 98% gate on the newest CI runtime. Coverage excludes only the test harness, documentation-only legacy module, and developer diff helper. Fixtures are ignored by test discovery. - Isolated named processes and application configuration in legacy tests to prevent order-dependent failures on older Elixir versions. Version-check cache, response, and TLS-option tests make no network requests. - CI builds and smoke-tests the escript on every supported Elixir/OTP combination, including exit codes; strict Credo runs on every entry. - Misc - Split scan discovery, execution, skip-file persistence, and version checks into focused internal modules. Shared AST helpers now live in source, metadata, calls, variables, and template modules, with the existing `Sobelow` and `Sobelow.Parse` entry points preserved. - Consolidated duplicate matchers and worker setup, reused relative-path handling, and shortened stale comments. Updated contributor and usage guidance to document the new module boundaries and scan options. ##### Upgrade notes - **Newly supported unsafe patterns can produce additional findings.** HEEx, inline templates, lexical resolution, response rebindings, and configuration fixes can reveal previously missed sinks. Corrected lockfile package matching can remove false dependency advisories. - **Invalid invocations and failed output writes now fail explicitly.** Check project roots, scan options, and output permissions if an invocation previously exited successfully without scanning or writing its report. - Existing check names, finding types, CLI flags, JSON finding fields, original ASTs, existing finding locations, and current/legacy fingerprint calculations are preserved. SARIF artifact paths are corrected as described above. The minimum supported Elixir version remains `~> 1.12`. ### [`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>beam-telemetry/telemetry_metrics (telemetry_metrics)</summary> ### [`v1.2.0`](https://github.com/beam-telemetry/telemetry_metrics/blob/HEAD/CHANGELOG.md#120) ##### Added - Add support for functions in `tags` (this supersedes `tag_values`) ##### Changed - Assorted optimizations ##### Changed </details> <details> <summary>tidewave-ai/tidewave_phoenix (tidewave)</summary> ### [`v0.9.1`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v091-2026-09-23) - Add `mix tidewave.proxy` - Add "instructions" to MCP initialization response ### [`v0.9.0`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v090-2026-08-18) [Compare Source](https://github.com/tidewave-ai/tidewave_phoenix/compare/v0.8.4...v0.9.0) - Add `create_design_canvas` tool - Allow requests to tidewave.ai in CSP if toolbar is enabled - Remove `get_*_schema` tools ### [`v0.8.4`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v084-2026-08-14) - Fix crash in diagnostic log handler ### [`v0.8.3`](https://github.com/tidewave-ai/tidewave_phoenix/blob/HEAD/CHANGELOG.md#v083-2026-08-13) - Support LiveView patching diagnostics ### [`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.4`](https://github.com/mathieuprog/tz/compare/v0.28.2...v0.28.4) [Compare Source](https://github.com/mathieuprog/tz/compare/v0.28.2...v0.28.4) ### [`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 - Every minute (`* * * * *`) - 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 passing
3e15b5efcc
renovate force-pushed renovate/mix-dependencies from 3e15b5efcc
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is passing
to 9374f50992
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-10-08 13:07:28 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from 9374f50992
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
to 97c1f8d3fb
Some checks reported errors
continuous-integration/drone/push Build was killed
2026-10-08 14:26:03 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from 97c1f8d3fb
Some checks reported errors
continuous-integration/drone/push Build was killed
to e0d64aa7ea
All checks were successful
continuous-integration/drone/push Build is passing
2026-10-08 21:25:18 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from e0d64aa7ea
All checks were successful
continuous-integration/drone/push Build is passing
to e39f110de7
All checks were successful
continuous-integration/drone/push Build is passing
2026-10-10 02:05:59 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from e39f110de7
All checks were successful
continuous-integration/drone/push Build is passing
to a565da3406
All checks were successful
continuous-integration/drone/push Build is passing
2026-10-11 02:06:29 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from a565da3406
All checks were successful
continuous-integration/drone/push Build is passing
to 0a0c1cd6a9
All checks were successful
continuous-integration/drone/push Build is passing
2026-10-12 02:06:02 +02:00
Compare
renovate force-pushed renovate/mix-dependencies from 0a0c1cd6a9
All checks were successful
continuous-integration/drone/push Build is passing
to d1be5120bb
Some checks are pending
continuous-integration/drone/push Build is pending
2026-10-12 12:14:08 +02:00
Compare
Some checks are pending
continuous-integration/drone/push Build is pending
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.