Commit Graph

7856 Commits

Author SHA1 Message Date
Jamil
ccc736e63e fix(portal): reauthorize new flow when last flow deleted (#9974)
The `flows` table tracks authorizations we've made for a resource and
persists them, so that we can determine which authorizations are still
valid across deploys or hiccups in the control plane connections.

Before, when the "in-use" authorization for a resource was deleted, we
would have flapped the resource in the client, and sent `reject_access`
to the gateway. However, that would cause issues in the following edge
case:

- Client is currently connected to Resource A through Policy B
- Client websocket goes down
- Policy B is created for Resource A (for another actor group), and
Policy A is deleted by admin
- Client reconnects
- Client sees that its resource list is the same
- Gateway has since received `reject_access` because no new flows were
created for this client-resource combination

To prevent this from happening, we now try to "reauthorize" the flow
whenever the last cached flow is removed for a particular
client-resource pair. This avoids needing to toggle the resource on the
client since we won't have sent `reject_access` to the gateway.
2025-07-25 01:53:10 +00:00
dependabot[bot]
083d0ac0f4 build(deps): bump mixpanel-browser and @types/mixpanel-browser in /website (#9932)
Bumps [mixpanel-browser](https://github.com/mixpanel/mixpanel-js) and
[@types/mixpanel-browser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mixpanel-browser).
These dependencies needed to be updated together.
Updates `mixpanel-browser` from 2.65.0 to 2.67.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mixpanel/mixpanel-js/releases">mixpanel-browser's
releases</a>.</em></p>
<blockquote>
<h2>Fixes and minor updates</h2>
<ul>
<li><code>get_api_host()</code> is now used consistently across the SDK
to ensure that per-endpoint API host configs are respected
everywhere</li>
<li>A fix is included for the ordering of (asynchronous) operations when
calling <code>mixpanel.reset()</code> while a session recording is
active</li>
<li>Default Feature Flag context now includes <code>device_id</code>
alongside <code>distinct_id</code></li>
<li><code>$experiment_started</code> events now include several
API-latency-tracking properties</li>
</ul>
<h2>Fine-grained API host configuration and session recording fixes</h2>
<p>A new <code>api_hosts</code> configuration option enables different
endpoints (events, profiles, groups, session recordings) to be sent to
different hosts, for selective proxying, e.g.:</p>
<pre lang="js"><code>mixpanel.init('&lt;TOKEN&gt;', {
  api_hosts: {
// proxy only session-recording requests, and leave the rest on the
default host api-js.mixpanel.com
    'record': 'https://my-proxy.com',
  },
});
</code></pre>
<p>This release also fixes a race condition when calling
<code>mixpanel.reset()</code> while a session recording is active, and
adds an initial TypeScript <code>types.d.ts</code> file.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mixpanel/mixpanel-js/blob/master/CHANGELOG.md">mixpanel-browser's
changelog</a>.</em></p>
<blockquote>
<p><strong>2.67.0</strong> (17 Jul 2025)</p>
<ul>
<li>Use <code>get_api_host()</code> consistently across the SDK</li>
<li>Include <code>device_id</code> in default Feature Flag context</li>
<li>Track latency props in <code>$experiment_started</code> event</li>
<li>Fix async behavior in <code>mixpanel.reset()</code> when a session
recording is active</li>
<li>Fix recorder integration test race conditions</li>
</ul>
<p><strong>2.66.0</strong> (8 Jul 2025)</p>
<ul>
<li>Add <code>api_host</code> configuration option to support different
hosts/proxies for different endpoints (thanks <a
href="https://github.com/chrisknu"><code>@​chrisknu</code></a>)</li>
<li>Add types.d.ts from existing public repo</li>
<li>Fix race condition when calling <code>mixpanel.reset()</code> while
a session recording is active</li>
</ul>
<p><strong>2.65.0</strong> (20 May 2025)</p>
<ul>
<li><code>mixpanel.people.track_charge()</code> (deprecated) no longer
sets profile property</li>
<li>Adds page height and width tracking to autocapture click
tracking</li>
<li>Session recording now stops when mixpanel.reset() is called</li>
<li>Support for adding arbitrary query string params to tracking
requests (thanks <a
href="https://github.com/dylan-asos"><code>@​dylan-asos</code></a>)</li>
<li>Feature flagging API revisions</li>
<li>Whale Browser detection</li>
</ul>
<p><strong>2.64.0</strong> (15 Apr 2025)</p>
<ul>
<li>Add <code>record_heatmap_data</code> init option for Session
Recording to ensure click events are captured for Heat Maps</li>
<li>Initial support for feature flagging</li>
</ul>
<p><strong>2.63.0</strong> (1 Apr 2025)</p>
<ul>
<li>Update rrweb to latest alpha version</li>
<li>Refactor SDK build process to rely mainly on Rollup</li>
</ul>
<p><strong>2.62.0</strong> (26 Mar 2025)</p>
<ul>
<li>Replace UUID generator with UUIDv4 (using native API when
available)</li>
<li>Consistently use native JSON serialization when available</li>
<li>Fix for session recording idle timeout race condition</li>
</ul>
<p><strong>2.61.2</strong> (14 Mar 2025)</p>
<ul>
<li>Revert 10ms throttle on enqueueing events to improve tracking
reliability on page unload</li>
</ul>
<p><strong>2.61.1</strong> (11 Mar 2025)</p>
<ul>
<li>Session recording stops if initial DOM snapshot fails</li>
<li>Errors triggered by rrweb's record function are now caught</li>
<li>Fix for issue causing opt-out check error messages in
<code>debug</code> mode</li>
</ul>
<p><strong>2.61.0</strong> (6 Mar 2025)</p>
<ul>
<li>Session recordings now continue across page loads within the same
tab, using IndexedDB for persistence</li>
</ul>
<p><strong>2.60.0</strong> (31 Jan 2025)</p>
<ul>
<li>Expanded Autocapture configs</li>
<li>Prevent duplicate values in persistence when using people.union
(thanks <a
href="https://github.com/chrisdeely"><code>@​chrisdeely</code></a>)</li>
</ul>
<p><strong>2.59.0</strong> (21 Jan 2025)</p>
<ul>
<li>Initial Autocapture support</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec87a0ab39"><code>ec87a0a</code></a>
2.67.0</li>
<li><a
href="952dea91ab"><code>952dea9</code></a>
changelog for 2.67.0</li>
<li><a
href="0ea33fd603"><code>0ea33fd</code></a>
Merge branch '2.67.0-rc'</li>
<li><a
href="e51b679cdd"><code>e51b679</code></a>
Update conventions, ignore is no longer used</li>
<li><a
href="742fabb992"><code>742fabb</code></a>
Create dependabot yml from template, set ignore rule from example
directory (...</li>
<li><a
href="6cdecd6ad0"><code>6cdecd6</code></a>
Push to 2.67</li>
<li><a
href="2033e9eb48"><code>2033e9e</code></a>
Dist files</li>
<li><a
href="b1c6a3f796"><code>b1c6a3f</code></a>
send in variant fetch start/complete as date strings</li>
<li><a
href="ba23ab0404"><code>ba23ab0</code></a>
Merge pull request <a
href="https://redirect.github.com/mixpanel/mixpanel-js/issues/281">#281</a>
from mixpanel/jg-final-flush</li>
<li><a
href="591fa5050f"><code>591fa50</code></a>
test fix</li>
<li>Additional commits viewable in <a
href="https://github.com/mixpanel/mixpanel-js/compare/v2.65.0...v2.67.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/mixpanel-browser` from 2.60.0 to 2.66.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mixpanel-browser">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-25 01:53:08 +00:00
Thomas Eizinger
9133d46bbd fix(snownet): don't log unknown packet for disconnected relay (#9961)
Currently, packets for allocations, i.e. from relays are parsed inside
the `Allocation` struct. We have one of those structs for each relay
that `snownet` is talking to. When we disconnect from a relay because it
is e.g. not responding, then we deallocate this struct. As a result,
message that arrive from this relay can no longer be handled. This can
happen when the response time is longer than our timeout.

These packets then fall-through and end up being logged as "packet has
unknown format".

To prevent this, we make the signature on `Allocation` strongly-typed
and expect a fully parsed `Message` to be given to us. This allows us to
parse the message early and discard it with a DEBUG log in case we don't
have the necessary local state to handle it.

The functionality here is essentially the same, we just change at what
level this is being logged at from WARN to DEBUG.

We have to make one additional adjustment to make this work: Guard all
messages to be parsed by any `Allocation` to come from port 3478. This
is the assigned port that all relays are expected to listen on. If we
don't have any local state for a given address, we cannot decide whether
it is a STUN message for an agent or a STUN message for a relay that we
have disconnected from. Therefore, we need to de-multiplex based on the
source port.
2025-07-25 00:32:43 +00:00
dependabot[bot]
27c7d537bb build(deps): bump pnpm/action-setup from 4.0.0 to 4.1.0 in /.github/actions/setup-node (#9926)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from
4.0.0 to 4.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Add support for <code>package.yaml</code> <a
href="https://redirect.github.com/pnpm/action-setup/pull/156">#156</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a7487c7e89"><code>a7487c7</code></a>
feat: update dist</li>
<li><a
href="fff70888d0"><code>fff7088</code></a>
test: update pnpm to v9</li>
<li><a
href="6e3017af18"><code>6e3017a</code></a>
docs: support <code>package.yaml</code> (<a
href="https://redirect.github.com/pnpm/action-setup/issues/157">#157</a>)</li>
<li><a
href="0cb0538c33"><code>0cb0538</code></a>
feat: support <code>package.yaml</code> (<a
href="https://redirect.github.com/pnpm/action-setup/issues/156">#156</a>)</li>
<li><a
href="e303250a24"><code>e303250</code></a>
docs: update pnpm version in readme examples (<a
href="https://redirect.github.com/pnpm/action-setup/issues/154">#154</a>)</li>
<li><a
href="ac5bf11548"><code>ac5bf11</code></a>
Update examples to use pnpm v9 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/142">#142</a>)</li>
<li><a
href="18ac635edf"><code>18ac635</code></a>
docs: remove redundant manual cache due to setup-node cache (<a
href="https://redirect.github.com/pnpm/action-setup/issues/131">#131</a>)</li>
<li><a
href="0d0b43217a"><code>0d0b432</code></a>
docs: add warning about v2</li>
<li><a
href="0eb0e97082"><code>0eb0e97</code></a>
Add readme example for omitting <code>version</code> (<a
href="https://redirect.github.com/pnpm/action-setup/issues/134">#134</a>)</li>
<li><a
href="23657c8550"><code>23657c8</code></a>
docs: change order of setup node and pnpm (<a
href="https://redirect.github.com/pnpm/action-setup/issues/129">#129</a>)</li>
<li>Additional commits viewable in <a
href="fe02b34f77...a7487c7e89">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pnpm/action-setup&package-manager=github_actions&previous-version=4.0.0&new-version=4.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-07-24 23:01:19 +00:00
Jamil
67b4dd86ea fix(apple): increase sensitivity of network reset (#9993)
On Apple platforms, we tried to be clever about filtering path updates
from the network connectivity change monitor, because there can be a
flurry of them upon waking from sleep or network roaming.

However, because of this, we had a bug that could occur in certain
situations (such as waking from sleep) where we could effectively "land"
on an empty DNS resolver list. This could happen if:


1. We receive a path update handler that meaningfully changes
connectivity, but its `supportsDNS` property is `false`. This means it
hasn't received any resolvers from DHCP yet. We would then setDns with
an empty resolver list.
2. We then receive a path update handler with the _only_ change being
`supportDNS=true`. Since we didn't count this change as a meaningful
path change, we skipped the `setDns` call, and connlib would be stuck
without DNS resolution.

To fix the above, we stop trying to be clever about connectivity
changes, and just use `oldPath != path`. That will increase reset a bit,
but it will now handle other edge cases such as an IP address changing
on the primary interface, any other interfaces change, and the like.

Fixes #9866
2025-07-24 22:35:01 +00:00
dependabot[bot]
d6c36b0d7b build(deps): bump flowbite-react from 0.11.8 to 0.11.9 in /rust/gui-client in the flowbite group (#9931)
Bumps the flowbite group in /rust/gui-client with 1 update:
[flowbite-react](https://github.com/themesberg/flowbite-react/tree/HEAD/packages/ui).

Updates `flowbite-react` from 0.11.8 to 0.11.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/themesberg/flowbite-react/releases">flowbite-react's
releases</a>.</em></p>
<blockquote>
<h2>flowbite-react@0.11.9</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/themesberg/flowbite-react/pull/1587">#1587</a>
<a
href="3028f83f89"><code>3028f83</code></a>
Thanks <a href="https://github.com/raahed"><code>@​raahed</code></a>! -
feat(Datepicker): Implemented a filter function prop</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/themesberg/flowbite-react/blob/main/packages/ui/CHANGELOG.md">flowbite-react's
changelog</a>.</em></p>
<blockquote>
<h2>0.11.9</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/themesberg/flowbite-react/pull/1587">#1587</a>
<a
href="3028f83f89"><code>3028f83</code></a>
Thanks <a href="https://github.com/raahed"><code>@​raahed</code></a>! -
feat(Datepicker): Implemented a filter function prop</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="213be8eb96"><code>213be8e</code></a>
Version Packages (<a
href="https://github.com/themesberg/flowbite-react/tree/HEAD/packages/ui/issues/1590">#1590</a>)</li>
<li><a
href="3028f83f89"><code>3028f83</code></a>
feat: Add 'filterDate' prop function on Datepicker (<a
href="https://github.com/themesberg/flowbite-react/tree/HEAD/packages/ui/issues/1587">#1587</a>)</li>
<li>See full diff in <a
href="https://github.com/themesberg/flowbite-react/commits/flowbite-react@0.11.9/packages/ui">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=flowbite-react&package-manager=npm_and_yarn&previous-version=0.11.8&new-version=0.11.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 22:32:27 +00:00
Jamil
e9a863dc0e fix(apple): use all found system resolvers (#9991)
When validating the found system resolvers on macOS and iOS, we would
stop after validating the first found resolver (usually IPv4) because
`break` was used instead of `continue`.

Fixes #9914

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-07-24 21:02:34 +00:00
Thomas Eizinger
aebfcd56eb fix(connlib): resend candidates on connection upsert (#9986)
Due to network partitions between the Client and the Portal, it is
possible that a Client requests a new connection, then disconnects from
the portal and re-requests the connection once it is reconnected.

On the Gateway, we would have already authorized the first request and
initialise our ICE agents with our local candidates. The second time
around, the connection would be reused. The Client however has lost its
state and therefore, we need to tell it our candidates again.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2025-07-24 21:01:50 +00:00
Thomas Eizinger
cbe114bddc fix(connlib): clear join requests on reconnect (#9985)
Room join requests on the portal are only valid whilst we have a
WebSocket connection. To make sure the portal processes all our requests
correctly, we need to hold all other messages back while we are waiting
to join the room.

If the connection flaps while we are waiting to join a room, we may have
a lingering join request that never gets fulfilled and thus blocks the
sending of messages forever.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2025-07-24 20:41:26 +00:00
Thomas Eizinger
f9721a1da6 fix(snownet): only idle when we are fully connected (#9987)
Now that we are capable of migrating a connection to another relay with
#9979, our test suite exposed an edge-case: If we are in the middle of
migrating a connection, it could be that the idle timer triggers because
we have not seen any application traffic in the last 20s.

Moving to idle mode drastically reduces the number of STUN bindings we
send and if this happens whilst we are still checking candidates, the
nomination doesn't happen in time for our boringtun handshake to
succeed.

Thus, we add a condition to our idle timer to not trigger unless ICE has
completed and reports us as `connected`.
2025-07-24 12:37:47 +00:00
Thomas Eizinger
79f698dff3 docs(changelog): improve wording of entry for #9979 (#9988) 2025-07-24 12:35:04 +00:00
Thomas Eizinger
d7b9ecb60b feat(gateway): update expiry of access authoritzations on init (#9975)
Resolves: #9971
2025-07-24 06:36:56 +00:00
Thomas Eizinger
dacc402721 chore(connlib): only log span field name into message (#9981)
When looking at logs, reducing noise is critical to make it easier to
spot important information. When sending logs to Sentry, we currently
append the fields of certain spans to message to make the output similar
to that of `tracing_subscriber::fmt`.

The actual name of a field inside a span is separated from the span name
by a colon. For example, here is a log message as we see it in Sentry
today:

> handle_input:class=success response
handle_input:from=C1A0479AA153FACA0722A5DF76343CF2BEECB10E:3478
handle_input:method=binding handle_input:rtt=34.7479ms
handle_input:tid=BB30E859ED88FFDF0786B634 request=["Software(snownet;
session=BCA42EF159C794F41AE45BF5099E54D3A193A7184C4D2C3560C2FE49C4C6CFB7)"]
response=["Software(firezone-relay; rev=e4ba5a69)",
"XorMappedAddress(B824B4035A78A6B188EF38BE13AA3C1B1B1196D6:52625)"]

Really, what we would like to see is only this:

> class=success response
from=C1A0479AA153FACA0722A5DF76343CF2BEECB10E:3478 method=binding
rtt=34.7479ms tid=BB30E859ED88FFDF0786B634 request=["Software(snownet;
session=BCA42EF159C794F41AE45BF5099E54D3A193A7184C4D2C3560C2FE49C4C6CFB7)"]
response=["Software(firezone-relay; rev=e4ba5a69)",
"XorMappedAddress(B824B4035A78A6B188EF38BE13AA3C1B1B1196D6:52625)"]

The duplication of `handle_input:` is just noise. In our local log
output, we already strip the name of the span to make it easier to read.
Here we now also do the same for the logs reported to Sentry.
2025-07-24 01:37:43 +00:00
Thomas Eizinger
301d2137e5 refactor(windows): share src IP cache across UDP sockets (#9976)
When looking through customer logs, we see a lot of "Resolved best route
outside of tunnel" messages. Those get logged every time we need to
rerun our re-implementation of Windows' weighting algorithm as to which
source interface / IP a packet should be sent from.

Currently, this gets cached in every socket instance so for the
peer-to-peer socket, this is only computed once per destination IP.
However, for DNS queries, we make a new socket for every query. Using a
new source port DNS queries is recommended to avoid fingerprinting of
DNS queries. Using a new socket also means that we need to re-run this
algorithm every time we make a DNS query which is why we see this log so
often.

To fix this, we need to share this cache across all UDP sockets. Cache
invalidation is one of the hardest problems in computer science and this
instance is no different. This cache needs to be reset every time we
roam as that changes the weighting of which source interface to use.

To achieve this, we extend the `SocketFactory` trait with a `reset`
method. This method is called whenever we roam and can then reset a
shared cache inside the `UdpSocketFactory`. The "source IP resolver"
function that is passed to the UDP socket now simply accesses this
shared cache and inserts a new entry when it needs to resolve the IP.

As an added benefit, this may speed up DNS queries on Windows a bit
(although I haven't benchmarked it). It should certainly drastically
reduce the amount of syscalls we make on Windows.
2025-07-24 01:36:53 +00:00
Thomas Eizinger
409459f11c chore(rust): bump boringtun (#9982)
Bumping the version to include
https://github.com/firezone/boringtun/pull/105.
2025-07-24 01:36:28 +00:00
Thomas Eizinger
d244a99c58 feat(connlib): always use all candidates (#9979)
In #6876, we added functionality that would only make use of new remote
candidates whilst we haven't nominated a socket yet with the remote. The
reason for that was because in the described edge-case where relays
reboot or get replaced whilst the client is partitioned from the portal
(or we experience a connection hiccup), only one of the two peers, i.e.
Client or Gateway would migrate to the new relay, leaving the other one
in an inconsistent state.

Looking at recent customer logs, I've been seeing a lot of these
messages:

> Unknown connection or socket has already been nominated

For this particular customer, these are then very quickly followed by
ICE timeouts, leaving the connection unusable.

Considering that, I no longer think that the above change was a good
idea and we should instead always make use of all candidates that we are
given. What we are seeing is that in deployment scenarios where the
latency link between Client and Gateway is very short (5-10ms) yet the
latency to the portal is longer (~30-50ms), we trigger a race condition
where we are temporarily nominating a _peer-reflexive_ candidate pair
instead of a regular one. This happens because with such a short latency
link, Client and Gateway are _faster_ in sending back and forth several
STUN bindings than the control plane is in delivering all the
candidates.

Due to the functionality added in #6876, this then results in us not
accepting the candidates. It further appears that a nominated
peer-reflexive candidate does not provide a stable connection which is
why we then run into an ICE timeout, requiring Firezone to establish a
new connection only to have the same thing happen again.

This is very disruptive for the user experience as the connection only
works for a few moments at a time.

With #9793, we have actually added a feature that is also at play here.
Now that we don't immediately act on an ICE timeout, it is actually
possible for both Client and Gateway to migrate a connection to a
different relay, should the one that they are using get disconnected. In
#9793, we added a timeout of 2s for this.

To make this fully work, we need to patch str0m to transition to
`Checking` early. Presently, str0m would directly transition from
`Disconnected` to `Connected` in this case which in some of the
high-latency scenarios that we are testing in CI is not enough to
recover the connection within 2s. By transitioning to `Checking` early,
we abort this timer.

Related: https://github.com/algesten/str0m/pull/676
2025-07-24 01:35:54 +00:00
Thomas Eizinger
ecb2bbc86b feat(gateway): allow updating expiry of access authorization (#9973)
Resolves: #9966
2025-07-23 07:25:36 +00:00
Thomas Eizinger
fafe2c43ea fix(connlib): update the current socket when in idle mode (#9977)
In case we received a newly nominated socket from `str0m` whilst our
connection was in idle mode, we mistakenly did not apply that and kept
using the old one. ICE would still be functioning in this case because
`str0m` would have updated its internal state but we would be sending
packets into Nirvana.

I don't think that this is likely to be hit in production though as it
would be quite unusual to receive a new nomination whilst the connection
was completely idle.
2025-07-23 05:28:21 +00:00
Thomas Eizinger
091d5b56e0 refactor(snownet): don't memmove every packet (#9907)
When encrypting IP packets, `snownet` needs to prepare a buffer where
the encrypted packet is going to end up. Depending on whether we are
sending data via a relayed connection or direct, this buffer needs to be
offset by 4 bytes to allow for the 4-byte channel-data header of the
TURN protocol.

At present, we always first encrypt the packet and then on-demand move
the packet by 4-bytes to the left if we **don't** need to send it via a
relay. Internally, this translates to a `memmove` instruction which
actually turns out to be very cheap (I couldn't measure a speed
difference between this and `main`).

All of this code has grown historically though so I figured, it is
better to clean it up a bit to first evaluate, whether we have a direct
or relayed connection and based on that, write the encrypted packet
directly to the front of the buffer or offset it by 4 bytes.
2025-07-23 00:38:39 +00:00
Thomas Eizinger
3e6fc8fda7 refactor(rust): use spinlock-based buffer pool (#9951)
Profiling has shown that using a spinlock-based buffer pool is
marginally (~1%) faster than the mutex-based one because it resolves
contention quicker.
2025-07-22 23:22:48 +00:00
Jamil
86954a4f4a fix(ci): don't version images until release (#9968)
Fixes #9967
2025-07-22 18:59:01 +00:00
Firezone Bot
a11983e4b3 chore: publish gateway 1.4.13 (#9969) 2025-07-22 18:56:40 +00:00
Thomas Eizinger
6ae074005f refactor(connlib): don't check for enabled event (#9950)
Profiling has shown that checking whether the level is enabled is
actually more expensive than checking whether the packet is a DNS
packet. This improves performance by about 3%.
2025-07-22 17:41:45 +00:00
Thomas Eizinger
71e6b56654 feat(snownet): remove "connection ID" span (#9949)
At present, `snownet` uses a `tracing::Span` to attach the connection ID
to various log messages. This requires the span to be entered and exited
on every packet. Whilst profiling Firezone, I noticed that is takes
between 10% and 20% of CPU time on the main thread.

Previously, this wasn't a bottleneck as other parts of Firezone were not
yet as optimised. With some changes earlier this year of a dedicated UDP
thread and better GSO, this does appear to be a bottleneck now.

On `main`, I am currently getting the following numbers on my local
machine:

```
Connecting to host 172.20.0.110, port 5201
[  5] local 100.85.16.226 port 42012 connected to 172.20.0.110 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   251 MBytes  2.11 Gbits/sec   16    558 KBytes       
[  5]   1.00-2.00   sec   287 MBytes  2.41 Gbits/sec    6    800 KBytes       
[  5]   2.00-3.00   sec   284 MBytes  2.38 Gbits/sec    2    992 KBytes       
[  5]   3.00-4.00   sec   287 MBytes  2.41 Gbits/sec    3   1.12 MBytes       
[  5]   4.00-5.00   sec   290 MBytes  2.44 Gbits/sec    0   1.27 MBytes       
[  5]   5.00-6.00   sec   300 MBytes  2.52 Gbits/sec    2   1.40 MBytes       
[  5]   6.00-7.00   sec   295 MBytes  2.47 Gbits/sec    2   1.52 MBytes       
[  5]   7.00-8.00   sec   304 MBytes  2.55 Gbits/sec    3   1.63 MBytes       
[  5]   8.00-9.00   sec   290 MBytes  2.44 Gbits/sec   49   1.21 MBytes       
[  5]   9.00-10.00  sec   288 MBytes  2.41 Gbits/sec   24   1023 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.81 GBytes  2.41 Gbits/sec  107             sender
[  5]   0.00-10.00  sec  2.81 GBytes  2.41 Gbits/sec                  receiver
```

With this patch applied, the throughput goes up significantly:

```
Connecting to host 172.20.0.110, port 5201
[  5] local 100.85.16.226 port 41402 connected to 172.20.0.110 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   315 MBytes  2.64 Gbits/sec    7    619 KBytes       
[  5]   1.00-2.00   sec   363 MBytes  3.05 Gbits/sec   11    847 KBytes       
[  5]   2.00-3.00   sec   379 MBytes  3.18 Gbits/sec    1   1.07 MBytes       
[  5]   3.00-4.00   sec   384 MBytes  3.22 Gbits/sec   44    981 KBytes       
[  5]   4.00-5.00   sec   377 MBytes  3.16 Gbits/sec  116    911 KBytes       
[  5]   5.00-6.00   sec   378 MBytes  3.17 Gbits/sec    3   1.10 MBytes       
[  5]   6.00-7.00   sec   377 MBytes  3.16 Gbits/sec   48    929 KBytes       
[  5]   7.00-8.00   sec   374 MBytes  3.14 Gbits/sec  151    947 KBytes       
[  5]   8.00-9.00   sec   382 MBytes  3.21 Gbits/sec   36    833 KBytes       
[  5]   9.00-10.00  sec   375 MBytes  3.14 Gbits/sec    1   1.06 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.62 GBytes  3.11 Gbits/sec  418             sender
[  5]   0.00-10.00  sec  3.61 GBytes  3.10 Gbits/sec                  receiver
```

Resolves: #9948
2025-07-22 17:40:33 +00:00
Jamil
f41a6f9e0b fix(portal): don't use process.alive on remote pid (#9964)
This can be removed, since we handle the ArgumentError in the link
operation.
2025-07-22 09:42:51 -07:00
Jamil
2c3692582b fix(portal): more robust replication pid discovery (#9960)
When debugging why we're receiving "Failed to start replication
connection" errors on deploy, it was discovered that there's a bug in
the Process discovery mechanism that new nodes use to attempt to link to
the existing replication connection. When restarting an existing
`domain` container that's not doing replication, we see this:

```
{"message":"Elixir.Domain.Events.ReplicationConnection: Publication tables are up to date","time":"2025-07-22T07:18:45.948Z","domain":["elixir"],"application":"domain","severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.Events.ReplicationConnection.handle_publication_tables_diff/2","line":2,"file":"lib/domain/events/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.764.0>"}}
{"message":"notifier only receiving messages from its own node, functionality may be degraded","time":"2025-07-22T07:18:45.942Z","domain":["elixir"],"application":"oban","source":"oban","severity":"DEBUG","event":"notifier:switch","connectivity_status":"solitary","logging.googleapis.com/sourceLocation":{"function":"Elixir.Oban.Telemetry.log/2","line":624,"file":"lib/oban/telemetry.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.756.0>"}}
{"message":"Elixir.Domain.ChangeLogs.ReplicationConnection: Publication tables are up to date","time":"2025-07-22T07:18:45.952Z","domain":["elixir"],"application":"domain","severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.ChangeLogs.ReplicationConnection.handle_publication_tables_diff/2","line":2,"file":"lib/domain/change_logs/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.763.0>"}}
{"message":"Elixir.Domain.ChangeLogs.ReplicationConnection: Starting replication slot change_logs_slot","time":"2025-07-22T07:18:45.966Z","state":"[REDACTED]","domain":["elixir"],"application":"domain","severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.ChangeLogs.ReplicationConnection.handle_result/2","line":2,"file":"lib/domain/change_logs/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.763.0>"}}
{"message":"Elixir.Domain.Events.ReplicationConnection: Starting replication slot events_slot","time":"2025-07-22T07:18:45.966Z","state":"[REDACTED]","domain":["elixir"],"application":"domain","severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.Events.ReplicationConnection.handle_result/2","line":2,"file":"lib/domain/events/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.764.0>"}}
{"message":"Elixir.Domain.ChangeLogs.ReplicationConnection: Replication connection disconnected","time":"2025-07-22T07:18:45.977Z","domain":["elixir"],"application":"domain","counter":0,"severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.ChangeLogs.ReplicationConnection.handle_disconnect/1","line":2,"file":"lib/domain/change_logs/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.763.0>"}}
{"message":"Elixir.Domain.Events.ReplicationConnection: Replication connection disconnected","time":"2025-07-22T07:18:45.977Z","domain":["elixir"],"application":"domain","counter":0,"severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.Events.ReplicationConnection.handle_disconnect/1","line":2,"file":"lib/domain/events/replication_connection.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.764.0>"}}
{"message":"Failed to start replication connection Elixir.Domain.Events.ReplicationConnection","reason":"%Postgrex.Error{message: nil, postgres: %{code: :object_in_use, line: \"607\", message: \"replication slot \\\"events_slot\\\" is active for PID 135123\", file: \"slot.c\", unknown: \"ERROR\", severity: \"ERROR\", pg_code: \"55006\", routine: \"ReplicationSlotAcquire\"}, connection_id: 136400, query: nil}","time":"2025-07-22T07:18:45.978Z","domain":["elixir"],"application":"domain","max_retries":10,"severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.Replication.Manager.handle_info/2","line":41,"file":"lib/domain/replication/manager.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.761.0>"},"retries":0}
{"message":"Failed to start replication connection Elixir.Domain.ChangeLogs.ReplicationConnection","reason":"%Postgrex.Error{message: nil, postgres: %{code: :object_in_use, line: \"607\", message: \"replication slot \\\"change_logs_slot\\\" is active for PID 135124\", file: \"slot.c\", unknown: \"ERROR\", severity: \"ERROR\", pg_code: \"55006\", routine: \"ReplicationSlotAcquire\"}, connection_id: 136401, query: nil}","time":"2025-07-22T07:18:45.978Z","domain":["elixir"],"application":"domain","max_retries":10,"severity":"INFO","logging.googleapis.com/sourceLocation":{"function":"Elixir.Domain.Replication.Manager.handle_info/2","line":41,"file":"lib/domain/replication/manager.ex"},"logging.googleapis.com/operation":{"producer":"#PID<0.760.0>"},"retries":0}
```

Before, we relied on `start_link` telling us that there was an existing
pid running in the cluster. However, from the output above, it appears
that may not always be reliable.

Instead, we first check explicitly where the running process is and, if
alive, we try linking to it. If not, we try starting the connection
ourselves.

Once linked to the process, we react to it being torn down as well,
causing a first-one-wins scenario where all nodes will attempt to start
replication, minimizing downtime during deploys.

Now that https://github.com/firezone/infra/pull/94 is in place, I did
verify we are properly handling SIGTERM in the BEAM, so the deployment
would now go like this:

1. GCP brings up the new nodes, they all find the existing pid and link
to it
2. GCP sends SIGTERM to the old nodes
3. The _actual_ pid receives SIGTERM and exits
4. This exit propagates to all other nodes due to the link
5. Some node will "win", and the others will end up linking to it

Fixes #9911
2025-07-22 15:13:45 +00:00
Thomas Eizinger
4292ca7ae8 test(connlib): fix failing proptest (#9864)
This essentially bumps just the boringtun dependency to include
https://github.com/firezone/boringtun/pull/104.
2025-07-22 13:30:47 +00:00
Thomas Eizinger
fbf96c261e chore(relay): remove spans (#9962)
These are flooding our monitoring infra and don't really add that much
value. Pretty much all of the processing the relay does is request in
and out and none of the spans are nested.

We can therefore almost 1-to-1 replicate the logging we do with spans by
adding the fields to each log message.

Resolves: #9954
2025-07-22 13:24:58 +00:00
dependabot[bot]
4c0c605c72 build(deps): bump taiki-e/install-action from 2.55.3 to 2.56.19 (#9918)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.55.3 to 2.56.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.56.19</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.18.</li>
</ul>
<h2>2.56.18</h2>
<ul>
<li>Update <code>just@latest</code> to 1.42.3.</li>
</ul>
<h2>2.56.17</h2>
<ul>
<li>Update <code>wasmtime@latest</code> to 34.0.2.</li>
</ul>
<h2>2.56.16</h2>
<ul>
<li>
<p>Update <code>cargo-zigbuild@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>cargo-lambda@latest</code> to 1.8.6.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.6.</p>
</li>
<li>
<p>Update <code>earthly@latest</code> to 0.8.16.</p>
</li>
</ul>
<h2>2.56.15</h2>
<ul>
<li>
<p>Fix <code>cargo-valgrind</code> installation error due to their tag
rename.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.2.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.2.</p>
</li>
</ul>
<h2>2.56.14</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.21.0.</p>
</li>
<li>
<p>Update <code>wait-for-them@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.4.52.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.1.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.4.0.</p>
</li>
<li>
<p>Update <code>cyclonedx@latest</code> to 0.29.0.</p>
</li>
</ul>
<h2>2.56.13</h2>
<ul>
<li>Update <code>cargo-nextest@latest</code> to 0.9.101.</li>
</ul>
<h2>2.56.12</h2>
<ul>
<li>Update <code>cargo-hack@latest</code> to 0.6.37.</li>
</ul>
<h2>2.56.11</h2>
<ul>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.1.0.</p>
</li>
<li>
<p>Update <code>cargo-no-dev-deps@latest</code> to 0.2.16.</p>
</li>
<li>
<p>Update <code>cargo-minimal-versions@latest</code> to 0.1.31.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.56.19] - 2025-07-19</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.18.</li>
</ul>
<h2>[2.56.18] - 2025-07-19</h2>
<ul>
<li>Update <code>just@latest</code> to 1.42.3.</li>
</ul>
<h2>[2.56.17] - 2025-07-18</h2>
<ul>
<li>Update <code>wasmtime@latest</code> to 34.0.2.</li>
</ul>
<h2>[2.56.16] - 2025-07-18</h2>
<ul>
<li>
<p>Update <code>cargo-zigbuild@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>cargo-lambda@latest</code> to 1.8.6.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.6.</p>
</li>
<li>
<p>Update <code>earthly@latest</code> to 0.8.16.</p>
</li>
</ul>
<h2>[2.56.15] - 2025-07-16</h2>
<ul>
<li>
<p>Fix <code>cargo-valgrind</code> installation error due to their tag
rename.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.2.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.2.</p>
</li>
</ul>
<h2>[2.56.14] - 2025-07-15</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.21.0.</p>
</li>
<li>
<p>Update <code>wait-for-them@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.4.52.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c99cc51b30"><code>c99cc51</code></a>
Release 2.56.19</li>
<li><a
href="35aa282e0f"><code>35aa282</code></a>
Update <code>cargo-llvm-cov@latest</code> to 0.6.18</li>
<li><a
href="8962e8bc90"><code>8962e8b</code></a>
Release 2.56.18</li>
<li><a
href="86ed27786e"><code>86ed277</code></a>
Update <code>just@latest</code> to 1.42.3</li>
<li><a
href="d8fcd11e5f"><code>d8fcd11</code></a>
Release 2.56.17</li>
<li><a
href="03efa19be6"><code>03efa19</code></a>
Update readme</li>
<li><a
href="14dc975de9"><code>14dc975</code></a>
ci: Fix debian 10 setup</li>
<li><a
href="00c7072f52"><code>00c7072</code></a>
Update wasmtime manifest</li>
<li><a
href="8520ed0913"><code>8520ed0</code></a>
Release 2.56.16</li>
<li><a
href="56de642f63"><code>56de642</code></a>
Update <code>cargo-zigbuild@latest</code> to 0.20.1</li>
<li>Additional commits viewable in <a
href="9ca1734d89...c99cc51b30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.55.3&new-version=2.56.19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 08:46:31 +00:00
dependabot[bot]
f668202c83 build(deps): bump the sentry group in /rust/gui-client with 2 updates (#9929)
Bumps the sentry group in /rust/gui-client with 2 updates:
[@sentry/core](https://github.com/getsentry/sentry-javascript) and
[@sentry/react](https://github.com/getsentry/sentry-javascript).

Updates `@sentry/core` from 9.34.0 to 9.40.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/releases"><code>@​sentry/core</code>'s
releases</a>.</em></p>
<blockquote>
<h2>9.40.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat(browser): Add debugId sync APIs between web worker and
main thread (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16981">#16981</a>)</strong></li>
</ul>
<p>This release adds two Browser SDK APIs to let the main thread know
about debugIds of worker files:</p>
<ul>
<li><code>webWorkerIntegration({worker})</code> to be used in the main
thread</li>
<li><code>registerWebWorker({self})</code> to be used in the web
worker</li>
</ul>
<pre lang="js"><code>// main.js
Sentry.init({...})
<p>const worker = new MyWorker(...);</p>
<p>Sentry.addIntegration(Sentry.webWorkerIntegration({ worker }));</p>
<p>worker.addEventListener('message', e =&gt; {...});<br />
</code></pre></p>
<pre lang="js"><code>// worker.js
Sentry.registerWebWorker({ self });

self.postMessage(...);
</code></pre>
<ul>
<li><strong>feat(core): Deprecate logger in favor of debug (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17040">#17040</a>)</strong></li>
</ul>
<p>The internal SDK <code>logger</code> export from
<code>@sentry/core</code> has been deprecated in favor of the
<code>debug</code> export. <code>debug</code> only exposes
<code>log</code>, <code>warn</code>, and <code>error</code> methods but
is otherwise identical to <code>logger</code>. Note that this
deprecation does not affect the <code>logger</code> export from other
packages (like <code>@sentry/browser</code> or
<code>@sentry/node</code>) which is used for Sentry Logging.</p>
<pre lang="js"><code>import { logger, debug } from '@sentry/core';
<p>// before<br />
logger.info('This is an info message');</p>
<p>// after<br />
debug.log('This is an info message');<br />
</code></pre></p>
<ul>
<li><strong>feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17022">#17022</a>)</strong></li>
</ul>
<p>This release adds official support for instrumenting OpenAI SDK calls
in with Sentry tracing, following OpenTelemetry semantic conventions for
Generative AI. It instruments:</p>
<ul>
<li><code>client.chat.completions.create()</code> - For chat-based
completions</li>
<li><code>client.responses.create()</code> - For the responses API</li>
</ul>
<pre lang="js"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md"><code>@​sentry/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>9.40.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat(browser): Add debugId sync APIs between web worker and
main thread (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16981">#16981</a>)</strong></li>
</ul>
<p>This release adds two Browser SDK APIs to let the main thread know
about debugIds of worker files:</p>
<ul>
<li><code>webWorkerIntegration({worker})</code> to be used in the main
thread</li>
<li><code>registerWebWorker({self})</code> to be used in the web
worker</li>
</ul>
<pre lang="js"><code>// main.js
Sentry.init({...})
<p>const worker = new MyWorker(...);</p>
<p>Sentry.addIntegration(Sentry.webWorkerIntegration({ worker }));</p>
<p>worker.addEventListener('message', e =&gt; {...});<br />
</code></pre></p>
<pre lang="js"><code>// worker.js
Sentry.registerWebWorker({ self });

self.postMessage(...);
</code></pre>
<ul>
<li><strong>feat(core): Deprecate logger in favor of debug (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17040">#17040</a>)</strong></li>
</ul>
<p>The internal SDK <code>logger</code> export from
<code>@sentry/core</code> has been deprecated in favor of the
<code>debug</code> export. <code>debug</code> only exposes
<code>log</code>, <code>warn</code>, and <code>error</code> methods but
is otherwise identical to <code>logger</code>. Note that this
deprecation does not affect the <code>logger</code> export from other
packages (like <code>@sentry/browser</code> or
<code>@sentry/node</code>) which is used for Sentry Logging.</p>
<pre lang="js"><code>import { logger, debug } from '@sentry/core';
<p>// before<br />
logger.info('This is an info message');</p>
<p>// after<br />
debug.log('This is an info message');<br />
</code></pre></p>
<ul>
<li><strong>feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17022">#17022</a>)</strong></li>
</ul>
<p>This release adds official support for instrumenting OpenAI SDK calls
in with Sentry tracing, following OpenTelemetry semantic conventions for
Generative AI. It instruments:</p>
<ul>
<li><code>client.chat.completions.create()</code> - For chat-based
completions</li>
<li><code>client.responses.create()</code> - For the responses API</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc51366965"><code>cc51366</code></a>
release: 9.40.0</li>
<li><a
href="a12c5a6ff6"><code>a12c5a6</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17039">#17039</a>
from getsentry/prepare-release/9.40.0</li>
<li><a
href="d4ab7c09c1"><code>d4ab7c0</code></a>
meta(changelog): Update changelog for 9.40.0</li>
<li><a
href="f538ef024c"><code>f538ef0</code></a>
feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17022">#17022</a>)</li>
<li><a
href="53199420c4"><code>5319942</code></a>
feat(node-core): Expand <code>@opentelemetry/instrumentation</code>
range to cover `0.20...</li>
<li><a
href="962d6973cc"><code>962d697</code></a>
fix(core): Add missing <code>SentryDebugLogger</code> type export (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17046">#17046</a>)</li>
<li><a
href="779c15995c"><code>779c159</code></a>
chore(test-registry): Add more descriptive error code for common error
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16790">#16790</a>)</li>
<li><a
href="6116610341"><code>6116610</code></a>
chore: Add external contributor to CHANGELOG.md (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17052">#17052</a>)</li>
<li><a
href="14c5d444cc"><code>14c5d44</code></a>
test(react): Pin react-router version for e2e test (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17051">#17051</a>)</li>
<li><a
href="163798656a"><code>1637986</code></a>
docs(bun): remove advice concerning unhandled exceptions (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17049">#17049</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-javascript/compare/9.34.0...9.40.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@sentry/react` from 9.34.0 to 9.40.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/releases"><code>@​sentry/react</code>'s
releases</a>.</em></p>
<blockquote>
<h2>9.40.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat(browser): Add debugId sync APIs between web worker and
main thread (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16981">#16981</a>)</strong></li>
</ul>
<p>This release adds two Browser SDK APIs to let the main thread know
about debugIds of worker files:</p>
<ul>
<li><code>webWorkerIntegration({worker})</code> to be used in the main
thread</li>
<li><code>registerWebWorker({self})</code> to be used in the web
worker</li>
</ul>
<pre lang="js"><code>// main.js
Sentry.init({...})
<p>const worker = new MyWorker(...);</p>
<p>Sentry.addIntegration(Sentry.webWorkerIntegration({ worker }));</p>
<p>worker.addEventListener('message', e =&gt; {...});<br />
</code></pre></p>
<pre lang="js"><code>// worker.js
Sentry.registerWebWorker({ self });

self.postMessage(...);
</code></pre>
<ul>
<li><strong>feat(core): Deprecate logger in favor of debug (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17040">#17040</a>)</strong></li>
</ul>
<p>The internal SDK <code>logger</code> export from
<code>@sentry/core</code> has been deprecated in favor of the
<code>debug</code> export. <code>debug</code> only exposes
<code>log</code>, <code>warn</code>, and <code>error</code> methods but
is otherwise identical to <code>logger</code>. Note that this
deprecation does not affect the <code>logger</code> export from other
packages (like <code>@sentry/browser</code> or
<code>@sentry/node</code>) which is used for Sentry Logging.</p>
<pre lang="js"><code>import { logger, debug } from '@sentry/core';
<p>// before<br />
logger.info('This is an info message');</p>
<p>// after<br />
debug.log('This is an info message');<br />
</code></pre></p>
<ul>
<li><strong>feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17022">#17022</a>)</strong></li>
</ul>
<p>This release adds official support for instrumenting OpenAI SDK calls
in with Sentry tracing, following OpenTelemetry semantic conventions for
Generative AI. It instruments:</p>
<ul>
<li><code>client.chat.completions.create()</code> - For chat-based
completions</li>
<li><code>client.responses.create()</code> - For the responses API</li>
</ul>
<pre lang="js"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md"><code>@​sentry/react</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>9.40.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat(browser): Add debugId sync APIs between web worker and
main thread (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16981">#16981</a>)</strong></li>
</ul>
<p>This release adds two Browser SDK APIs to let the main thread know
about debugIds of worker files:</p>
<ul>
<li><code>webWorkerIntegration({worker})</code> to be used in the main
thread</li>
<li><code>registerWebWorker({self})</code> to be used in the web
worker</li>
</ul>
<pre lang="js"><code>// main.js
Sentry.init({...})
<p>const worker = new MyWorker(...);</p>
<p>Sentry.addIntegration(Sentry.webWorkerIntegration({ worker }));</p>
<p>worker.addEventListener('message', e =&gt; {...});<br />
</code></pre></p>
<pre lang="js"><code>// worker.js
Sentry.registerWebWorker({ self });

self.postMessage(...);
</code></pre>
<ul>
<li><strong>feat(core): Deprecate logger in favor of debug (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17040">#17040</a>)</strong></li>
</ul>
<p>The internal SDK <code>logger</code> export from
<code>@sentry/core</code> has been deprecated in favor of the
<code>debug</code> export. <code>debug</code> only exposes
<code>log</code>, <code>warn</code>, and <code>error</code> methods but
is otherwise identical to <code>logger</code>. Note that this
deprecation does not affect the <code>logger</code> export from other
packages (like <code>@sentry/browser</code> or
<code>@sentry/node</code>) which is used for Sentry Logging.</p>
<pre lang="js"><code>import { logger, debug } from '@sentry/core';
<p>// before<br />
logger.info('This is an info message');</p>
<p>// after<br />
debug.log('This is an info message');<br />
</code></pre></p>
<ul>
<li><strong>feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/17022">#17022</a>)</strong></li>
</ul>
<p>This release adds official support for instrumenting OpenAI SDK calls
in with Sentry tracing, following OpenTelemetry semantic conventions for
Generative AI. It instruments:</p>
<ul>
<li><code>client.chat.completions.create()</code> - For chat-based
completions</li>
<li><code>client.responses.create()</code> - For the responses API</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc51366965"><code>cc51366</code></a>
release: 9.40.0</li>
<li><a
href="a12c5a6ff6"><code>a12c5a6</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17039">#17039</a>
from getsentry/prepare-release/9.40.0</li>
<li><a
href="d4ab7c09c1"><code>d4ab7c0</code></a>
meta(changelog): Update changelog for 9.40.0</li>
<li><a
href="f538ef024c"><code>f538ef0</code></a>
feat(node): Add OpenAI integration (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17022">#17022</a>)</li>
<li><a
href="53199420c4"><code>5319942</code></a>
feat(node-core): Expand <code>@opentelemetry/instrumentation</code>
range to cover `0.20...</li>
<li><a
href="962d6973cc"><code>962d697</code></a>
fix(core): Add missing <code>SentryDebugLogger</code> type export (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17046">#17046</a>)</li>
<li><a
href="779c15995c"><code>779c159</code></a>
chore(test-registry): Add more descriptive error code for common error
(<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16790">#16790</a>)</li>
<li><a
href="6116610341"><code>6116610</code></a>
chore: Add external contributor to CHANGELOG.md (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17052">#17052</a>)</li>
<li><a
href="14c5d444cc"><code>14c5d44</code></a>
test(react): Pin react-router version for e2e test (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17051">#17051</a>)</li>
<li><a
href="163798656a"><code>1637986</code></a>
docs(bun): remove advice concerning unhandled exceptions (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/17049">#17049</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-javascript/compare/9.34.0...9.40.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 08:40:35 +00:00
Jamil
2392bddacb fix(elixir): handle nil external url config in dev mode (#9958)
This is nil in local dev. Fixing this allows us to run the local dev in
`:prod` mode to hit more codepaths.
2025-07-22 01:05:06 +00:00
Thomas Eizinger
b631b9a59e docs(windows): improve troubleshooting instructions (#9959) 2025-07-21 23:44:40 +00:00
Jamil
e4ba5a6929 fix(portal): inherit pid 1 in cmd (#9957)
Apparently using the shell form of this causes it not to inherit PID 1
from tini.
2025-07-21 22:38:25 +00:00
dependabot[bot]
0a0ee3c940 build(deps): bump sentry from 10.10.0 to 11.0.2 in /elixir (#9933)
Bumps [sentry](https://github.com/getsentry/sentry-elixir) from 10.10.0
to 11.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-elixir/releases">sentry's
releases</a>.</em></p>
<blockquote>
<h2>11.0.2</h2>
<h3>Bug fixes</h3>
<ul>
<li>Deeply nested spans are handled now when building up traces in
<code>SpanProcessor</code> (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/924">#924</a>)</li>
</ul>
<h4>Various improvements</h4>
<ul>
<li>Span's attributes no longer include <code>db.url:
&quot;ecto:&quot;</code> entries as they are now filtered out (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/925">#925</a>)</li>
</ul>
<h2>11.0.1</h2>
<h4>Various improvements</h4>
<ul>
<li><code>Sentry.OpenTelemetry.Sampler</code> now works with an empty
config (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/915">#915</a>)</li>
</ul>
<h2>11.0.0</h2>
<p>This release comes with a beta support for Traces using OpenTelemetry
- please test it out and report any issues you find.</p>
<h3>New features</h3>
<ul>
<li>
<p>Beta support for Traces using OpenTelemetry (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/902">#902</a>)</p>
<p>To enable Tracing in your Phoenix application, you need to add the
following to your <code>mix.exs</code>:</p>
<pre lang="elixir"><code>def deps do
  [
    # ...
    {:sentry, &quot;~&gt; 11.0.0&quot;},
    {:opentelemetry, &quot;~&gt; 1.5&quot;},
    {:opentelemetry_api, &quot;~&gt; 1.4&quot;},
    {:opentelemetry_exporter, &quot;~&gt; 1.0&quot;},
    {:opentelemetry_semantic_conventions, &quot;~&gt; 1.27&quot;},
    {:opentelemetry_phoenix, &quot;~&gt; 2.0&quot;},
    {:opentelemetry_ecto, &quot;~&gt; 1.2&quot;},
    # ...
  ]
</code></pre>
<p>And then configure Tracing in Sentry and OpenTelemetry in your
<code>config.exs</code>:</p>
<pre lang="elixir"><code>config :sentry,
  # ...
  traces_sample_rate: 1.0 # any value between 0 and 1.0 enables tracing
<p>config :opentelemetry, span_processor:
{Sentry.OpenTelemetry.SpanProcessor, []}
config :opentelemetry, sampler: {Sentry.OpenTelemetry.Sampler, [drop:
[]]}
</code></pre></p>
</li>
<li>
<p>Add installer (based on Igniter) (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/876">#876</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-elixir/blob/master/CHANGELOG.md">sentry's
changelog</a>.</em></p>
<blockquote>
<h2>11.0.2</h2>
<h3>Bug fixes</h3>
<ul>
<li>Deeply nested spans are handled now when building up traces in
<code>SpanProcessor</code> (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/924">#924</a>)</li>
</ul>
<h4>Various improvements</h4>
<ul>
<li>Span's attributes no longer include <code>db.url:
&quot;ecto:&quot;</code> entries as they are now filtered out (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/925">#925</a>)</li>
</ul>
<h2>11.0.1</h2>
<h4>Various improvements</h4>
<ul>
<li><code>Sentry.OpenTelemetry.Sampler</code> now works with an empty
config (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/915">#915</a>)</li>
</ul>
<h2>11.0.0</h2>
<p>This release comes with a beta support for Traces using OpenTelemetry
- please test it out and report any issues you find.</p>
<h3>New features</h3>
<ul>
<li>
<p>Beta support for Traces using OpenTelemetry (<a
href="https://redirect.github.com/getsentry/sentry-elixir/pull/902">#902</a>)</p>
<p>To enable Tracing in your Phoenix application, you need to add the
following to your <code>mix.exs</code>:</p>
<pre lang="elixir"><code>def deps do
  [
    # ...
    {:sentry, &quot;~&gt; 11.0.0&quot;},
    {:opentelemetry, &quot;~&gt; 1.5&quot;},
    {:opentelemetry_api, &quot;~&gt; 1.4&quot;},
    {:opentelemetry_exporter, &quot;~&gt; 1.0&quot;},
    {:opentelemetry_semantic_conventions, &quot;~&gt; 1.27&quot;},
    {:opentelemetry_phoenix, &quot;~&gt; 2.0&quot;},
    {:opentelemetry_ecto, &quot;~&gt; 1.2&quot;},
    # ...
  ]
</code></pre>
<p>And then configure Tracing in Sentry and OpenTelemetry in your
<code>config.exs</code>:</p>
<pre lang="elixir"><code>config :sentry,
  # ...
  traces_sample_rate: 1.0 # any value between 0 and 1.0 enables tracing
<p>config :opentelemetry, span_processor:
{Sentry.OpenTelemetry.SpanProcessor, []}
config :opentelemetry, sampler: {Sentry.OpenTelemetry.Sampler, []}
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b142174df9"><code>b142174</code></a>
release: 11.0.2</li>
<li><a
href="f43055b8ca"><code>f43055b</code></a>
Update CHANGELOG for 11.0.2 (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/926">#926</a>)</li>
<li><a
href="ee512d3bf6"><code>ee512d3</code></a>
Filter out empty db.url from span's attributes (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/925">#925</a>)</li>
<li><a
href="6809aaa68c"><code>6809aaa</code></a>
Fix handling of spans at 2+ levels (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/924">#924</a>)</li>
<li><a
href="b7e16798d3"><code>b7e1679</code></a>
Improve event callback docs (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/922">#922</a>)</li>
<li><a
href="97d0382418"><code>97d0382</code></a>
Merge branch 'release/11.0.1'</li>
<li><a
href="738fc763cd"><code>738fc76</code></a>
release: 11.0.1</li>
<li><a
href="ab58c0ef6b"><code>ab58c0e</code></a>
Update CHANGELOG (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/917">#917</a>)</li>
<li><a
href="028ce18841"><code>028ce18</code></a>
handle nil drop list (<a
href="https://redirect.github.com/getsentry/sentry-elixir/issues/915">#915</a>)</li>
<li><a
href="5850c73a96"><code>5850c73</code></a>
Merge branch 'release/11.0.0'</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-elixir/compare/10.10.0...11.0.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sentry&package-manager=hex&previous-version=10.10.0&new-version=11.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 21:01:25 +00:00
Jamil
1b1bd6401a fix(portal): gracefully account deletions in changelog (#9955)
When an account is perma-deleted, we need to handle that with another
function clause matching the WAL message coming into the change logs
replication connection module.
2025-07-21 20:47:41 +00:00
Jamil
488cb96469 fix(portal): don't prematurely reject access (#9952)
Before:

- When a flow was deleted, we flapped the resource on the client, and
sent `reject_access` naively for the flow's `{client_id, resource_id}`
pair on the gateway. This resulted in lots of unneeded resource flappage
on the client whenever bulk flow deletions happened.

After:

- When a flow is deleted, we check if this is an active flow for the
client. If so, we flap the resource then in order to trigger generation
of a new flow. If access was truly affected, that results in a loss of a
resource, we will push `resource_deleted` for the update that triggered
the flow deletion (for example the resource/policy removal). On the
gateway, we only send `reject_access` if it was the last flow granting
access for a particular `client/resource` tuple.


Why:

- While the access state is still correct in the previous
implementation, we run the possibility of pushing way too many resource
flaps to the client in an overly eager attempt to remove access the
client may not have access to.

cc @thomaseizinger 

Related:
https://firezonehq.slack.com/archives/C08FPHECLUF/p1753101115735179
2025-07-21 13:12:05 -07:00
Jamil
dff6495057 fix(ci): use pinned musl toolchains (#9953) 2025-07-21 13:11:47 -07:00
dependabot[bot]
272074e8d4 build(deps): bump hammer from 7.0.1 to 7.1.0 in /elixir (#9935)
Bumps [hammer](https://github.com/ExHammer/hammer) from 7.0.1 to 7.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ExHammer/hammer/blob/master/CHANGELOG.md">hammer's
changelog</a>.</em></p>
<blockquote>
<h2>7.1.0 - 2025-07-18</h2>
<ul>
<li>Fix key type inconsistency in backend implementations - all backends
now accept <code>term()</code> keys instead of <code>String.t()</code>
(<a
href="https://redirect.github.com/ExHammer/hammer/issues/143">#143</a>)</li>
<li>Add comprehensive test coverage for various key types (atoms,
tuples, integers, lists, maps)</li>
<li>Fix race conditions in atomic backend tests (FixWindow, LeakyBucket,
TokenBucket)</li>
<li>Replace timing-dependent tests with polling-based
<code>eventually</code> helper for better CI reliability</li>
<li>Add documentation warning about Redis backend string key
requirement</li>
<li>Fix typo in <code>inc/3</code> optional callback documentation (<a
href="https://redirect.github.com/ExHammer/hammer/issues/142">#142</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a57bdecdc1"><code>a57bdec</code></a>
improve changelog last commit (<a
href="https://redirect.github.com/ExHammer/hammer/issues/145">#145</a>)</li>
<li><a
href="bb061c5334"><code>bb061c5</code></a>
Bump version to 7.1.0 (<a
href="https://redirect.github.com/ExHammer/hammer/issues/144">#144</a>)</li>
<li><a
href="7d7967f898"><code>7d7967f</code></a>
Fix key type inconsistency in backend implementations (<a
href="https://redirect.github.com/ExHammer/hammer/issues/143">#143</a>)</li>
<li><a
href="94d39525e8"><code>94d3952</code></a>
Fixes typo for inc/3 optional callback <code>@doc</code> (<a
href="https://redirect.github.com/ExHammer/hammer/issues/142">#142</a>)</li>
<li><a
href="79ca221876"><code>79ca221</code></a>
Bump benchee from 1.3.1 to 1.4.0 (<a
href="https://redirect.github.com/ExHammer/hammer/issues/135">#135</a>)</li>
<li><a
href="a09bbd0d42"><code>a09bbd0</code></a>
Bump ex_doc from 0.37.3 to 0.38.2 (<a
href="https://redirect.github.com/ExHammer/hammer/issues/141">#141</a>)</li>
<li><a
href="d06a17b6be"><code>d06a17b</code></a>
Bump credo from 1.7.11 to 1.7.12 (<a
href="https://redirect.github.com/ExHammer/hammer/issues/134">#134</a>)</li>
<li><a
href="26df742620"><code>26df742</code></a>
Update bug_report.md (<a
href="https://redirect.github.com/ExHammer/hammer/issues/133">#133</a>)</li>
<li><a
href="b8765fe216"><code>b8765fe</code></a>
Bump ex_doc from 0.37.2 to 0.37.3 (<a
href="https://redirect.github.com/ExHammer/hammer/issues/131">#131</a>)</li>
<li>See full diff in <a
href="https://github.com/ExHammer/hammer/compare/7.0.1...7.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hammer&package-manager=hex&previous-version=7.0.1&new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 13:24:40 +00:00
dependabot[bot]
619cfa0a37 build(deps): bump telemetry_poller from 1.2.0 to 1.3.0 in /elixir (#9917)
Bumps
[telemetry_poller](https://github.com/beam-telemetry/telemetry_poller)
from 1.2.0 to 1.3.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/beam-telemetry/telemetry_poller/blob/main/CHANGELOG.md">telemetry_poller's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/beam-telemetry/telemetry_poller/tree/v1.3.0">1.3.0</a></h2>
<h3>Added</h3>
<ul>
<li>Add <code>atom_limit</code>, <code>process_limit</code>, and
<code>port_limit</code> measurements to the <code>[vm,
system_counts]</code> event. (<a
href="https://redirect.github.com/beam-telemetry/telemetry_poller/issues/79">#79</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6d5c98f580"><code>6d5c98f</code></a>
Release v1.3.0</li>
<li><a
href="411675d8ed"><code>411675d</code></a>
Add vm.system_counts measurements with atom, port, process limits (<a
href="https://redirect.github.com/beam-telemetry/telemetry_poller/issues/79">#79</a>)</li>
<li><a
href="fefb3e9053"><code>fefb3e9</code></a>
Fix incorrect GitHub CI badge URL (<a
href="https://redirect.github.com/beam-telemetry/telemetry_poller/issues/78">#78</a>)</li>
<li><a
href="f5a3a389a7"><code>f5a3a38</code></a>
Mention persistent_term in the README (<a
href="https://redirect.github.com/beam-telemetry/telemetry_poller/issues/77">#77</a>)</li>
<li><a
href="8e8148f774"><code>8e8148f</code></a>
Fix docs</li>
<li>See full diff in <a
href="https://github.com/beam-telemetry/telemetry_poller/compare/v1.2.0...v1.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=telemetry_poller&package-manager=hex&previous-version=1.2.0&new-version=1.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 13:24:15 +00:00
dependabot[bot]
bc1a3df82b build(deps): bump react-router from 7.6.3 to 7.7.0 in /rust/gui-client in the react group (#9934)
Bumps the react group in /rust/gui-client with 1 update:
[react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router).

Updates `react-router` from 7.6.3 to 7.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/remix-run/react-router/releases">react-router's
releases</a>.</em></p>
<blockquote>
<h2>v7.7.0</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v770">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v770</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md">react-router's
changelog</a>.</em></p>
<blockquote>
<h2>7.7.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p>Add unstable RSC support (<a
href="https://redirect.github.com/remix-run/react-router/pull/13700">#13700</a>)</p>
<p>For more information, see the <a
href="https://reactrouter.com/start/rsc/installation">RSC
documentation</a>.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p>Handle <code>InvalidCharacterError</code> when validating cookie
signature (<a
href="https://redirect.github.com/remix-run/react-router/pull/13847">#13847</a>)</p>
</li>
<li>
<p>Pass a copy of <code>searchParams</code> to the
<code>setSearchParams</code> callback function to avoid muations of the
internal <code>searchParams</code> instance. This was an issue when
navigations were blocked because the internal instance be out of sync
with <code>useLocation().search</code>. (<a
href="https://redirect.github.com/remix-run/react-router/pull/12784">#12784</a>)</p>
</li>
<li>
<p>Support invalid <code>Date</code> in <code>turbo-stream</code> v2
fork (<a
href="https://redirect.github.com/remix-run/react-router/pull/13684">#13684</a>)</p>
</li>
<li>
<p>In Framework Mode, clear critical CSS in development after initial
render (<a
href="https://redirect.github.com/remix-run/react-router/pull/13872">#13872</a>)</p>
</li>
<li>
<p>Strip search parameters from <code>patchRoutesOnNavigation</code>
<code>path</code> param for fetcher calls (<a
href="https://redirect.github.com/remix-run/react-router/pull/13911">#13911</a>)</p>
</li>
<li>
<p>Skip scroll restoration on useRevalidator() calls because they're not
new locations (<a
href="https://redirect.github.com/remix-run/react-router/pull/13671">#13671</a>)</p>
</li>
<li>
<p>Support unencoded UTF-8 routes in prerender config with
<code>ssr</code> set to <code>false</code> (<a
href="https://redirect.github.com/remix-run/react-router/pull/13699">#13699</a>)</p>
</li>
<li>
<p>Do not throw if the url hash is not a valid URI component (<a
href="https://redirect.github.com/remix-run/react-router/pull/13247">#13247</a>)</p>
</li>
<li>
<p>Fix a regression in <code>createRoutesStub</code> introduced with the
middleware feature. (<a
href="https://redirect.github.com/remix-run/react-router/pull/13946">#13946</a>)</p>
<p>As part of that work we altered the signature to align with the new
middleware APIs without making it backwards compatible with the prior
<code>AppLoadContext</code> API. This permitted
<code>createRoutesStub</code> to work if you were opting into middleware
and the updated <code>context</code> typings, but broke
<code>createRoutesStub</code> for users not yet opting into
middleware.</p>
<p>We've reverted this change and re-implemented it in such a way that
both sets of users can leverage it.</p>
<pre lang="tsx"><code>// If you have not opted into middleware, the old
API should work again
let context: AppLoadContext = {
  /*...*/
};
let Stub = createRoutesStub(routes, context);
<p>// If you have opted into middleware, you should now pass an
instantiated <code>unstable_routerContextProvider</code> instead of a
<code>getContext</code> factory function.<br />
let context = new unstable_RouterContextProvider();<br />
context.set(SomeContext, someValue);<br />
let Stub = createRoutesStub(routes, context);<br />
</code></pre></p>
<p>⚠️ This may be a breaking bug for if you have adopted the unstable
Middleware feature and are using <code>createRoutesStub</code> with the
updated API.</p>
</li>
<li>
<p>Remove <code>Content-Length</code> header from Single Fetch responses
(<a
href="https://redirect.github.com/remix-run/react-router/pull/13902">#13902</a>)</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="63f0cd3277"><code>63f0cd3</code></a>
chore: Update version for release (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/14015">#14015</a>)</li>
<li><a
href="b7753cf289"><code>b7753cf</code></a>
chore: Update version for release (pre) (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/14008">#14008</a>)</li>
<li><a
href="7150677675"><code>7150677</code></a>
Inject client route component props during RSC render (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/14007">#14007</a>)</li>
<li><a
href="216222bacd"><code>216222b</code></a>
chore: Update version for release (pre) (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13999">#13999</a>)</li>
<li><a
href="b6c5168400"><code>b6c5168</code></a>
Remove leftover critical CSS on hydration mismatch (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13995">#13995</a>)</li>
<li><a
href="7204a2963b"><code>7204a29</code></a>
chore: Update version for release (pre) (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13980">#13980</a>)</li>
<li><a
href="b76ed3dabc"><code>b76ed3d</code></a>
fix(rsc): handle <code>ErrorResponse</code> in resource routes (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13966">#13966</a>)</li>
<li><a
href="b3337fc38a"><code>b3337fc</code></a>
always include additional route patches in payload to aid in SPA /
&quot;lazy&quot; dis...</li>
<li><a
href="3f0526b5e2"><code>3f0526b</code></a>
fix(rsc): remove manual error bubbling (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13973">#13973</a>)</li>
<li><a
href="1b459f580d"><code>1b459f5</code></a>
fix(rsc): support <code>unstable_getContext</code> in
<code>RSCHydratedRouter</code> (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13960">#13960</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/remix-run/react-router/commits/react-router@7.7.0/packages/react-router">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-router&package-manager=npm_and_yarn&previous-version=7.6.3&new-version=7.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 10:12:59 +00:00
dependabot[bot]
0cd4b94691 build(deps): bump zbus from 5.8.0 to 5.9.0 in /rust (#9939)
Bumps [zbus](https://github.com/dbus2/zbus) from 5.8.0 to 5.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dbus2/zbus/releases">zbus's
releases</a>.</em></p>
<blockquote>
<h2>🔖 zbus 5.9.0</h2>
<ul>
<li>🧵 Remove deadlocks in Connection name request tasks, resulting in
leaks under certain
circumstances.</li>
<li>🐛 When registering names, allow name replacement by default.</li>
<li> Allow setting request name flags in
<code>connection::Builder</code>.</li>
<li> Proper Default impl for <code>RequestNameFlags</code>. This change
is theoretically an API break for
users who assumed the default value to be empty.</li>
<li>🧑💻 Add <code>fdo::StartServiceReply</code> type. In 6.0 this will be
the return type of
<code>fdo::DBusProxy::start_service_by_name</code>. For now, just
provide a <code>TryFrom&lt;u32&gt;</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="30487b8fdb"><code>30487b8</code></a>
Merge pull request <a
href="https://redirect.github.com/dbus2/zbus/issues/1434">#1434</a> from
zeenix/zb-release</li>
<li><a
href="4b7928d2f8"><code>4b7928d</code></a>
🔖 zb,zm: Release 5.9.0</li>
<li><a
href="d570c947ea"><code>d570c94</code></a>
📝 CONTRIBUTING: Link to gimoji's web interface</li>
<li><a
href="0bf6e14b54"><code>0bf6e14</code></a>
Merge pull request <a
href="https://redirect.github.com/dbus2/zbus/issues/1431">#1431</a> from
zeenix/name-request-defaults</li>
<li><a
href="ba2a40752d"><code>ba2a407</code></a>
🧵 zb: Remove deadlocks in Connection name request tasks</li>
<li><a
href="3d35496021"><code>3d35496</code></a>
🐛 zb: Allow name replacement by default</li>
<li><a
href="0ad37f317a"><code>0ad37f3</code></a>
📝 zb: Remove a bunch of unnecessary links</li>
<li><a
href="493a9943d6"><code>493a994</code></a>
Merge pull request <a
href="https://redirect.github.com/dbus2/zbus/issues/1429">#1429</a> from
valpackett/val/knrmmkqzrvyp</li>
<li><a
href="f2fb16fd18"><code>f2fb16f</code></a>
🧑‍💻 zb: add fdo::dbus::StartServiceReply type</li>
<li><a
href="f93584de1f"><code>f93584d</code></a>
⬆️ micro: Update winnow to v0.7.12 (<a
href="https://redirect.github.com/dbus2/zbus/issues/1428">#1428</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/dbus2/zbus/compare/zbus-5.8.0...zbus-5.9.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zbus&package-manager=cargo&previous-version=5.8.0&new-version=5.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 10:12:55 +00:00
dependabot[bot]
8925d70ae1 build(deps): bump the lifecycle group in /kotlin/android with 3 updates (#9919)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.9.1 to 2.9.2

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.9.1 to 2.9.2

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.9.1 to 2.9.2


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 10:12:50 +00:00
dependabot[bot]
0df8c45f6c build(deps): bump serde_json from 1.0.140 to 1.0.141 in /rust (#9938)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.140 to
1.0.141.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.141</h2>
<ul>
<li>Optimize string escaping during serialization (<a
href="https://redirect.github.com/serde-rs/json/issues/1273">#1273</a>,
thanks <a
href="https://github.com/conradludgate"><code>@​conradludgate</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6843c3660e"><code>6843c36</code></a>
Release 1.0.141</li>
<li><a
href="6e2c21063a"><code>6e2c210</code></a>
Touch up PR 1273</li>
<li><a
href="623d9b47cf"><code>623d9b4</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1273">#1273</a>
from conradludgate/optimise-string-escaping</li>
<li><a
href="de70b7db1f"><code>de70b7d</code></a>
use unreachable_unchecked for escape table. use a second match to
roundtrip E...</li>
<li><a
href="f2d940dd54"><code>f2d940d</code></a>
replace start index with bytes slice reference</li>
<li><a
href="cd55b5a0ff"><code>cd55b5a</code></a>
Ignore mismatched_lifetime_syntaxes lint</li>
<li><a
href="c1826ebccc"><code>c1826eb</code></a>
Pin nightly toolchain used for miri job</li>
<li><a
href="8a56cfa6d0"><code>8a56cfa</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1248">#1248</a>
from jimmycathy/master</li>
<li><a
href="af3d80de56"><code>af3d80d</code></a>
chore: fix typo</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.140&new-version=1.0.141)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 08:36:46 +00:00
dependabot[bot]
bba4ebe0da build(deps): bump eslint from 9.29.0 to 9.31.0 in /rust/gui-client (#9936)
Bumps [eslint](https://github.com/eslint/eslint) from 9.29.0 to 9.31.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v9.31.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="35cf44c22e"><code>35cf44c</code></a>
feat: output full actual location in rule tester if different (<a
href="https://redirect.github.com/eslint/eslint/issues/19904">#19904</a>)
(ST-DDT)</li>
<li><a
href="a6a63259de"><code>a6a6325</code></a>
feat: support explicit resource management in <code>no-loop-func</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/19895">#19895</a>)
(Milos Djermanovic)</li>
<li><a
href="4682cdc696"><code>4682cdc</code></a>
feat: support explicit resource management in <code>no-undef-init</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/19894">#19894</a>)
(Milos Djermanovic)</li>
<li><a
href="58482165ea"><code>5848216</code></a>
feat: support explicit resource management in
<code>init-declarations</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19893">#19893</a>)
(Milos Djermanovic)</li>
<li><a
href="bb370b8e79"><code>bb370b8</code></a>
feat: support explicit resource management in
<code>no-const-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19892">#19892</a>)
(Milos Djermanovic)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="07fac6cafa"><code>07fac6c</code></a>
fix: retry on EMFILE when writing autofix results (<a
href="https://redirect.github.com/eslint/eslint/issues/19926">#19926</a>)
(TKDev7)</li>
<li><a
href="28cc7abbb7"><code>28cc7ab</code></a>
fix: Remove incorrect RuleContext types (<a
href="https://redirect.github.com/eslint/eslint/issues/19910">#19910</a>)
(Nicholas C. Zakas)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="664cb44ab0"><code>664cb44</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="40dbe2a43f"><code>40dbe2a</code></a>
docs: fix mismatch between <code>globalIgnores()</code> code and text
(<a
href="https://redirect.github.com/eslint/eslint/issues/19914">#19914</a>)
(MaoShizhong)</li>
<li><a
href="5a0069d608"><code>5a0069d</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="fef04b5c7f"><code>fef04b5</code></a>
docs: Update working on issues info (<a
href="https://redirect.github.com/eslint/eslint/issues/19902">#19902</a>)
(Nicholas C. Zakas)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="3ddd454c1c"><code>3ddd454</code></a>
chore: upgrade to <code>@eslint/js@9.31.0</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19935">#19935</a>)
(Francesco Trotta)</li>
<li><a
href="d5054e5454"><code>d5054e5</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="0f4a3781fe"><code>0f4a378</code></a>
chore: update eslint (<a
href="https://redirect.github.com/eslint/eslint/issues/19933">#19933</a>)
(renovate[bot])</li>
<li><a
href="76c2340c36"><code>76c2340</code></a>
chore: bump mocha to v11 (<a
href="https://redirect.github.com/eslint/eslint/issues/19917">#19917</a>)
(루밀LuMir)</li>
</ul>
<h2>v9.30.1</h2>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="e91bb870f8"><code>e91bb87</code></a>
fix: allow separate default and named type imports (<a
href="https://redirect.github.com/eslint/eslint/issues/19899">#19899</a>)
(xbinaryx)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="ab7c62598a"><code>ab7c625</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="dae1e5bb27"><code>dae1e5b</code></a>
docs: update jsdoc's link (<a
href="https://redirect.github.com/eslint/eslint/issues/19896">#19896</a>)
(JamesVanWaza)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="b035f747c6"><code>b035f74</code></a>
chore: upgrade to <code>@eslint/js@9.30.1</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19906">#19906</a>)
(Francesco Trotta)</li>
<li><a
href="b3dbc16563"><code>b3dbc16</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
</ul>
<h2>v9.30.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="52a5fcaa4e"><code>52a5fca</code></a>
feat: Support <code>basePath</code> property in config objects (<a
href="https://redirect.github.com/eslint/eslint/issues/19879">#19879</a>)
(Milos Djermanovic)</li>
<li><a
href="4ab44823df"><code>4ab4482</code></a>
feat: add <code>allowSeparateTypeImports</code> option to
<code>no-duplicate-imports</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19872">#19872</a>)
(sethamus)</li>
<li><a
href="b8a7e7aeb5"><code>b8a7e7a</code></a>
feat: throw error when column is negative in
<code>getIndexFromLoc</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19831">#19831</a>)
(루밀LuMir)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="6a0f164543"><code>6a0f164</code></a>
fix: handle <code>null</code> type <code>loc</code> in
<code>getIndexFromLoc</code> method (<a
href="https://redirect.github.com/eslint/eslint/issues/19862">#19862</a>)
(루밀LuMir)</li>
<li><a
href="3fbcd704a0"><code>3fbcd70</code></a>
fix: update error message for <code>no-restricted-properties</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19855">#19855</a>)
(Tanuj Kanti)</li>
<li><a
href="7ef4cf7661"><code>7ef4cf7</code></a>
fix: remove unnecessary semicolon from fixes (<a
href="https://redirect.github.com/eslint/eslint/issues/19857">#19857</a>)
(Francesco Trotta)</li>
<li><a
href="7dabc38a84"><code>7dabc38</code></a>
fix: use <code>process.version</code> in <code>--env-info</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19865">#19865</a>)
(TKDev7)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="8662ed1f6d"><code>8662ed1</code></a>
docs: adopt eslint-stylistic sub packages related changes (<a
href="https://redirect.github.com/eslint/eslint/issues/19887">#19887</a>)
(ntnyq)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's
changelog</a>.</em></p>
<blockquote>
<p>v9.31.0 - July 11, 2025</p>
<ul>
<li><a
href="3ddd454c1c"><code>3ddd454</code></a>
chore: upgrade to <code>@eslint/js@9.31.0</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19935">#19935</a>)
(Francesco Trotta)</li>
<li><a
href="d5054e5454"><code>d5054e5</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="0f4a3781fe"><code>0f4a378</code></a>
chore: update eslint (<a
href="https://redirect.github.com/eslint/eslint/issues/19933">#19933</a>)
(renovate[bot])</li>
<li><a
href="664cb44ab0"><code>664cb44</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="07fac6cafa"><code>07fac6c</code></a>
fix: retry on EMFILE when writing autofix results (<a
href="https://redirect.github.com/eslint/eslint/issues/19926">#19926</a>)
(TKDev7)</li>
<li><a
href="35cf44c22e"><code>35cf44c</code></a>
feat: output full actual location in rule tester if different (<a
href="https://redirect.github.com/eslint/eslint/issues/19904">#19904</a>)
(ST-DDT)</li>
<li><a
href="40dbe2a43f"><code>40dbe2a</code></a>
docs: fix mismatch between <code>globalIgnores()</code> code and text
(<a
href="https://redirect.github.com/eslint/eslint/issues/19914">#19914</a>)
(MaoShizhong)</li>
<li><a
href="76c2340c36"><code>76c2340</code></a>
chore: bump mocha to v11 (<a
href="https://redirect.github.com/eslint/eslint/issues/19917">#19917</a>)
(루밀LuMir)</li>
<li><a
href="28cc7abbb7"><code>28cc7ab</code></a>
fix: Remove incorrect RuleContext types (<a
href="https://redirect.github.com/eslint/eslint/issues/19910">#19910</a>)
(Nicholas C. Zakas)</li>
<li><a
href="a6a63259de"><code>a6a6325</code></a>
feat: support explicit resource management in <code>no-loop-func</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/19895">#19895</a>)
(Milos Djermanovic)</li>
<li><a
href="4682cdc696"><code>4682cdc</code></a>
feat: support explicit resource management in <code>no-undef-init</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/19894">#19894</a>)
(Milos Djermanovic)</li>
<li><a
href="58482165ea"><code>5848216</code></a>
feat: support explicit resource management in
<code>init-declarations</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19893">#19893</a>)
(Milos Djermanovic)</li>
<li><a
href="bb370b8e79"><code>bb370b8</code></a>
feat: support explicit resource management in
<code>no-const-assign</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19892">#19892</a>)
(Milos Djermanovic)</li>
<li><a
href="5a0069d608"><code>5a0069d</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="fef04b5c7f"><code>fef04b5</code></a>
docs: Update working on issues info (<a
href="https://redirect.github.com/eslint/eslint/issues/19902">#19902</a>)
(Nicholas C. Zakas)</li>
</ul>
<p>v9.30.1 - July 1, 2025</p>
<ul>
<li><a
href="b035f747c6"><code>b035f74</code></a>
chore: upgrade to <code>@eslint/js@9.30.1</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19906">#19906</a>)
(Francesco Trotta)</li>
<li><a
href="b3dbc16563"><code>b3dbc16</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="e91bb870f8"><code>e91bb87</code></a>
fix: allow separate default and named type imports (<a
href="https://redirect.github.com/eslint/eslint/issues/19899">#19899</a>)
(xbinaryx)</li>
<li><a
href="ab7c62598a"><code>ab7c625</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="dae1e5bb27"><code>dae1e5b</code></a>
docs: update jsdoc's link (<a
href="https://redirect.github.com/eslint/eslint/issues/19896">#19896</a>)
(JamesVanWaza)</li>
</ul>
<p>v9.30.0 - June 27, 2025</p>
<ul>
<li><a
href="2b6491cd4b"><code>2b6491c</code></a>
chore: upgrade to <code>@eslint/js@9.30.0</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19889">#19889</a>)
(Francesco Trotta)</li>
<li><a
href="5a5d526103"><code>5a5d526</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="52a5fcaa4e"><code>52a5fca</code></a>
feat: Support <code>basePath</code> property in config objects (<a
href="https://redirect.github.com/eslint/eslint/issues/19879">#19879</a>)
(Milos Djermanovic)</li>
<li><a
href="6a0f164543"><code>6a0f164</code></a>
fix: handle <code>null</code> type <code>loc</code> in
<code>getIndexFromLoc</code> method (<a
href="https://redirect.github.com/eslint/eslint/issues/19862">#19862</a>)
(루밀LuMir)</li>
<li><a
href="8662ed1f6d"><code>8662ed1</code></a>
docs: adopt eslint-stylistic sub packages related changes (<a
href="https://redirect.github.com/eslint/eslint/issues/19887">#19887</a>)
(ntnyq)</li>
<li><a
href="eaf8a418af"><code>eaf8a41</code></a>
chore: Correct typos in linter tests (<a
href="https://redirect.github.com/eslint/eslint/issues/19878">#19878</a>)
(kilavvy)</li>
<li><a
href="4ab44823df"><code>4ab4482</code></a>
feat: add <code>allowSeparateTypeImports</code> option to
<code>no-duplicate-imports</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19872">#19872</a>)
(sethamus)</li>
<li><a
href="3fbcd704a0"><code>3fbcd70</code></a>
fix: update error message for <code>no-restricted-properties</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19855">#19855</a>)
(Tanuj Kanti)</li>
<li><a
href="20158b09db"><code>20158b0</code></a>
docs: typo in comment for unused variables handling (<a
href="https://redirect.github.com/eslint/eslint/issues/19870">#19870</a>)
(leopardracer)</li>
<li><a
href="ebfb5b4613"><code>ebfb5b4</code></a>
docs: Fixed Typo in configuration-files.md (<a
href="https://redirect.github.com/eslint/eslint/issues/19873">#19873</a>)
(0-20)</li>
<li><a
href="b8a7e7aeb5"><code>b8a7e7a</code></a>
feat: throw error when column is negative in
<code>getIndexFromLoc</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19831">#19831</a>)
(루밀LuMir)</li>
<li><a
href="7ef4cf7661"><code>7ef4cf7</code></a>
fix: remove unnecessary semicolon from fixes (<a
href="https://redirect.github.com/eslint/eslint/issues/19857">#19857</a>)
(Francesco Trotta)</li>
<li><a
href="7dabc38a84"><code>7dabc38</code></a>
fix: use <code>process.version</code> in <code>--env-info</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19865">#19865</a>)
(TKDev7)</li>
<li><a
href="4112fd0953"><code>4112fd0</code></a>
docs: clarify that boolean is still allowed for rule
<code>meta.deprecated</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19866">#19866</a>)
(Bryan Mishkin)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="14053edc64"><code>14053ed</code></a>
9.31.0</li>
<li><a
href="2b77bd05dc"><code>2b77bd0</code></a>
Build: changelog update for 9.31.0</li>
<li><a
href="3ddd454c1c"><code>3ddd454</code></a>
chore: upgrade to <code>@eslint/js@9.31.0</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/19935">#19935</a>)</li>
<li><a
href="d5054e5454"><code>d5054e5</code></a>
chore: package.json update for <code>@​eslint/js</code> release</li>
<li><a
href="0f4a3781fe"><code>0f4a378</code></a>
chore: update eslint (<a
href="https://redirect.github.com/eslint/eslint/issues/19933">#19933</a>)</li>
<li><a
href="664cb44ab0"><code>664cb44</code></a>
docs: Update README</li>
<li><a
href="07fac6cafa"><code>07fac6c</code></a>
fix: retry on EMFILE when writing autofix results (<a
href="https://redirect.github.com/eslint/eslint/issues/19926">#19926</a>)</li>
<li><a
href="35cf44c22e"><code>35cf44c</code></a>
feat: output full actual location in rule tester if different (<a
href="https://redirect.github.com/eslint/eslint/issues/19904">#19904</a>)</li>
<li><a
href="40dbe2a43f"><code>40dbe2a</code></a>
docs: fix mismatch between <code>globalIgnores()</code> code and text
(<a
href="https://redirect.github.com/eslint/eslint/issues/19914">#19914</a>)</li>
<li><a
href="76c2340c36"><code>76c2340</code></a>
chore: bump mocha to v11 (<a
href="https://redirect.github.com/eslint/eslint/issues/19917">#19917</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v9.29.0...v9.31.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=9.29.0&new-version=9.31.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 08:36:37 +00:00
dependabot[bot]
09f64a6c1e build(deps): bump the navigation group in /kotlin/android with 4 updates (#9922)
Bumps the navigation group in /kotlin/android with 4 updates:
androidx.navigation:navigation-safe-args-gradle-plugin,
androidx.navigation:navigation-fragment-ktx,
androidx.navigation:navigation-ui-ktx and
androidx.navigation:navigation-testing.

Updates `androidx.navigation:navigation-safe-args-gradle-plugin` from
2.9.0 to 2.9.2

Updates `androidx.navigation:navigation-fragment-ktx` from 2.9.0 to
2.9.2

Updates `androidx.navigation:navigation-ui-ktx` from 2.9.0 to 2.9.2

Updates `androidx.navigation:navigation-testing` from 2.9.0 to 2.9.2


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 08:36:24 +00:00
dependabot[bot]
c498d725f4 build(deps): bump actions/setup-node from 4.1.0 to 4.4.0 in /.github/actions/setup-node (#9924)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from
4.1.0 to 4.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-node/releases">actions/setup-node's
releases</a>.</em></p>
<blockquote>
<h2>v4.4.0</h2>
<h2>What's Changed</h2>
<h3>Bug fixes:</h3>
<ul>
<li>Make eslint-compact matcher compatible with Stylelint by <a
href="https://github.com/FloEdelmann"><code>@​FloEdelmann</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/98">actions/setup-node#98</a></li>
<li>Add support for indented eslint output by <a
href="https://github.com/fregante"><code>@​fregante</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1245">actions/setup-node#1245</a></li>
</ul>
<h3>Enhancement:</h3>
<ul>
<li>Support private mirrors by <a
href="https://github.com/marco-ippolito"><code>@​marco-ippolito</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1240">actions/setup-node#1240</a></li>
</ul>
<h3>Dependency update:</h3>
<ul>
<li>Upgrade <code>@​action/cache</code> from 4.0.2 to 4.0.3 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1262">actions/setup-node#1262</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/FloEdelmann"><code>@​FloEdelmann</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/98">actions/setup-node#98</a></li>
<li><a href="https://github.com/fregante"><code>@​fregante</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1245">actions/setup-node#1245</a></li>
<li><a
href="https://github.com/marco-ippolito"><code>@​marco-ippolito</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1240">actions/setup-node#1240</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v4.4.0">https://github.com/actions/setup-node/compare/v4...v4.4.0</a></p>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<h3>Dependency updates</h3>
<ul>
<li>Upgrade <code>@​actions/glob</code> from 0.4.0 to 0.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1200">actions/setup-node#1200</a></li>
<li>Upgrade <code>@​action/cache</code> from 4.0.0 to 4.0.2 by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1251">actions/setup-node#1251</a></li>
<li>Upgrade <code>@​vercel/ncc</code> from 0.38.1 to 0.38.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1203">actions/setup-node#1203</a></li>
<li>Upgrade <code>@​actions/tool-cache</code> from 2.0.1 to 2.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1220">actions/setup-node#1220</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1251">actions/setup-node#1251</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v4.3.0">https://github.com/actions/setup-node/compare/v4...v4.3.0</a></p>
<h2>v4.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Enhance workflows and upgrade publish-actions from 0.2.2 to 0.3.0 by
<a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1174">actions/setup-node#1174</a></li>
<li>Add recommended permissions section to readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1193">actions/setup-node#1193</a></li>
<li>Configure Dependabot settings by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1192">actions/setup-node#1192</a></li>
<li>Upgrade <code>@actions/cache</code> to <code>^4.0.0</code> by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1191">actions/setup-node#1191</a></li>
<li>Upgrade pnpm/action-setup from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1194">actions/setup-node#1194</a></li>
<li>Upgrade actions/publish-immutable-action from 0.0.3 to 0.0.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1195">actions/setup-node#1195</a></li>
<li>Upgrade semver from 7.6.0 to 7.6.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1196">actions/setup-node#1196</a></li>
<li>Upgrade <code>@​types/jest</code> from 29.5.12 to 29.5.14 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1201">actions/setup-node#1201</a></li>
<li>Upgrade undici from 5.28.4 to 5.28.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1205">actions/setup-node#1205</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/benwells"><code>@​benwells</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1193">actions/setup-node#1193</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v4.2.0">https://github.com/actions/setup-node/compare/v4...v4.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="49933ea528"><code>49933ea</code></a>
Bump <code>@​action/cache</code> from 4.0.2 to 4.0.3 (<a
href="https://redirect.github.com/actions/setup-node/issues/1262">#1262</a>)</li>
<li><a
href="e3ce749e20"><code>e3ce749</code></a>
feat: support private mirrors (<a
href="https://redirect.github.com/actions/setup-node/issues/1240">#1240</a>)</li>
<li><a
href="40337cb8f7"><code>40337cb</code></a>
Add support for indented eslint output (<a
href="https://redirect.github.com/actions/setup-node/issues/1245">#1245</a>)</li>
<li><a
href="1ccdddc9b8"><code>1ccdddc</code></a>
Make eslint-compact matcher compatible with Stylelint (<a
href="https://redirect.github.com/actions/setup-node/issues/98">#98</a>)</li>
<li><a
href="cdca7365b2"><code>cdca736</code></a>
Bump <code>@​actions/tool-cache</code> from 2.0.1 to 2.0.2 (<a
href="https://redirect.github.com/actions/setup-node/issues/1220">#1220</a>)</li>
<li><a
href="22c0e7494f"><code>22c0e74</code></a>
Bump <code>@​vercel/ncc</code> from 0.38.1 to 0.38.3 (<a
href="https://redirect.github.com/actions/setup-node/issues/1203">#1203</a>)</li>
<li><a
href="a7c2d9473e"><code>a7c2d94</code></a>
actions/cache upgrade (<a
href="https://redirect.github.com/actions/setup-node/issues/1251">#1251</a>)</li>
<li><a
href="802632921f"><code>8026329</code></a>
Bump <code>@​actions/glob</code> from 0.4.0 to 0.5.0 (<a
href="https://redirect.github.com/actions/setup-node/issues/1200">#1200</a>)</li>
<li><a
href="1d0ff469b7"><code>1d0ff46</code></a>
Bump undici from 5.28.4 to 5.28.5 (<a
href="https://redirect.github.com/actions/setup-node/issues/1205">#1205</a>)</li>
<li><a
href="574f09a9fa"><code>574f09a</code></a>
Bump <code>@​types/jest</code> from 29.5.12 to 29.5.14 (<a
href="https://redirect.github.com/actions/setup-node/issues/1201">#1201</a>)</li>
<li>Additional commits viewable in <a
href="39370e3970...49933ea528">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-node&package-manager=github_actions&previous-version=4.1.0&new-version=4.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 06:59:06 +00:00
dependabot[bot]
7832068ab7 build(deps): bump the hilt group in /kotlin/android with 4 updates (#9925)
Bumps the hilt group in /kotlin/android with 4 updates:
[com.google.dagger.hilt.android](https://github.com/google/dagger),
[com.google.dagger:hilt-android](https://github.com/google/dagger),
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger)
and
[com.google.dagger:hilt-android-testing](https://github.com/google/dagger).

Updates `com.google.dagger.hilt.android` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger.hilt.android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-compiler` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-compiler's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-testing` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-testing's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 06:58:53 +00:00
dependabot[bot]
4bb4360792 build(deps): bump the okhttp group in /kotlin/android with 2 updates (#9928)
Bumps the okhttp group in /kotlin/android with 2 updates:
[com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) and
[com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp).

Updates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/okhttp/blob/master/CHANGELOG.md">com.squareup.okhttp3:okhttp's
changelog</a>.</em></p>
<blockquote>
<h2>Version 5.1.0</h2>
<p><em>2025-07-07</em></p>
<ul>
<li>
<p>New: <code>Response.peekTrailers()</code>. When we changed
<code>Response.trailers()</code> to block instead of
throwing in 5.0.0, we inadvertently removed the ability for callers to
peek the trailers
(by catching the <code>IllegalStateException</code> if they weren't
available). This new API restores that
capability.</p>
</li>
<li>
<p>Fix: Don't crash on <code>trailers()</code> if the response doesn't
have a body. We broke [Retrofit] users
who read the trailers on the <code>raw()</code> OkHttp response, after
its body was decoded.</p>
</li>
</ul>
<h2>Version 5.0.0</h2>
<p><em>2025-07-02</em></p>
<p>This is our first stable release of OkHttp since 2023. Here's the
highlights if you're upgrading
from OkHttp 4.x:</p>
<p><strong>OkHttp is now packaged as separate JVM and Android
artifacts.</strong> This allows us to offer
platform-specific features and optimizations. If your build system
handles [Gradle module metadata],
this change should be automatic.</p>
<p><strong>MockWebServer has a new coordinate and package name.</strong>
We didn’t like that our old artifact
depends on JUnit 4 so the new one doesn’t. It also has a better API
built on immutable values. (We
intend to continue publishing the old <code>okhttp3.mockwebserver</code>
artifact so there’s no urgency to
migrate.)</p>
<table>
<thead>
<tr>
<th align="left">Coordinate</th>
<th align="left">Package Name</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3:5.0.0</td>
<td align="left">mockwebserver3</td>
<td align="left">Core module. No JUnit dependency!</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit4:5.0.0</td>
<td align="left">mockwebserver3.junit4</td>
<td align="left">Optional JUnit 4 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit5:5.0.0</td>
<td align="left">mockwebserver3.junit5</td>
<td align="left">Optional JUnit 5 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver:5.0.0</td>
<td align="left">okhttp3.mockwebserver</td>
<td align="left">Obsolete. Depends on JUnit 4.</td>
</tr>
</tbody>
</table>
<p><strong>OkHttp now supports Happy Eyeballs ([RFC 8305][rfc_8305]) for
IPv4+IPv6 networks.</strong> It attempts
both IPv6 and IPv4 connections concurrently, keeping whichever connects
first.</p>
<p><strong>We’ve improved our Kotlin APIs.</strong> You can skip the
builder:</p>
<pre lang="kotlin"><code>val request = Request(
  url = &quot;https://cash.app/&quot;.toHttpUrl(),
)
</code></pre>
<p><strong>OkHttp now supports [GraalVM].</strong></p>
<p>Here’s what has changed since 5.0.0-alpha.17:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d2dd180697"><code>d2dd180</code></a>
Prepare for release 5.1.0.</li>
<li><a
href="61a87359f6"><code>61a8735</code></a>
New Response.peekTrailers() API (<a
href="https://redirect.github.com/square/okhttp/issues/8921">#8921</a>)</li>
<li><a
href="66844010f7"><code>6684401</code></a>
Update dependency gradle to v8.14.3 (<a
href="https://redirect.github.com/square/okhttp/issues/8915">#8915</a>)</li>
<li><a
href="7adb2b637c"><code>7adb2b6</code></a>
Update junit-framework monorepo (<a
href="https://redirect.github.com/square/okhttp/issues/8914">#8914</a>)</li>
<li><a
href="e41ff18df8"><code>e41ff18</code></a>
Link to new mockwebserver artifacts (<a
href="https://redirect.github.com/square/okhttp/issues/8911">#8911</a>)</li>
<li><a
href="0ff87513e2"><code>0ff8751</code></a>
Remove Graal init tracing (<a
href="https://redirect.github.com/square/okhttp/issues/8909">#8909</a>)</li>
<li><a
href="b9a2560e56"><code>b9a2560</code></a>
Run graal on master (<a
href="https://redirect.github.com/square/okhttp/issues/8907">#8907</a>)</li>
<li><a
href="8339524463"><code>8339524</code></a>
Remove ExperimentalOkHttpApi references (<a
href="https://redirect.github.com/square/okhttp/issues/8908">#8908</a>)</li>
<li><a
href="ce29ef6182"><code>ce29ef6</code></a>
Fix graal tests (<a
href="https://redirect.github.com/square/okhttp/issues/8906">#8906</a>)</li>
<li><a
href="85796896c3"><code>8579689</code></a>
Don't force a response body read on all trailers (<a
href="https://redirect.github.com/square/okhttp/issues/8904">#8904</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.squareup.okhttp3:logging-interceptor` from 4.12.0 to 5.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/okhttp/blob/master/CHANGELOG.md">com.squareup.okhttp3:logging-interceptor's
changelog</a>.</em></p>
<blockquote>
<h2>Version 5.1.0</h2>
<p><em>2025-07-07</em></p>
<ul>
<li>
<p>New: <code>Response.peekTrailers()</code>. When we changed
<code>Response.trailers()</code> to block instead of
throwing in 5.0.0, we inadvertently removed the ability for callers to
peek the trailers
(by catching the <code>IllegalStateException</code> if they weren't
available). This new API restores that
capability.</p>
</li>
<li>
<p>Fix: Don't crash on <code>trailers()</code> if the response doesn't
have a body. We broke [Retrofit] users
who read the trailers on the <code>raw()</code> OkHttp response, after
its body was decoded.</p>
</li>
</ul>
<h2>Version 5.0.0</h2>
<p><em>2025-07-02</em></p>
<p>This is our first stable release of OkHttp since 2023. Here's the
highlights if you're upgrading
from OkHttp 4.x:</p>
<p><strong>OkHttp is now packaged as separate JVM and Android
artifacts.</strong> This allows us to offer
platform-specific features and optimizations. If your build system
handles [Gradle module metadata],
this change should be automatic.</p>
<p><strong>MockWebServer has a new coordinate and package name.</strong>
We didn’t like that our old artifact
depends on JUnit 4 so the new one doesn’t. It also has a better API
built on immutable values. (We
intend to continue publishing the old <code>okhttp3.mockwebserver</code>
artifact so there’s no urgency to
migrate.)</p>
<table>
<thead>
<tr>
<th align="left">Coordinate</th>
<th align="left">Package Name</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3:5.0.0</td>
<td align="left">mockwebserver3</td>
<td align="left">Core module. No JUnit dependency!</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit4:5.0.0</td>
<td align="left">mockwebserver3.junit4</td>
<td align="left">Optional JUnit 4 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit5:5.0.0</td>
<td align="left">mockwebserver3.junit5</td>
<td align="left">Optional JUnit 5 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver:5.0.0</td>
<td align="left">okhttp3.mockwebserver</td>
<td align="left">Obsolete. Depends on JUnit 4.</td>
</tr>
</tbody>
</table>
<p><strong>OkHttp now supports Happy Eyeballs ([RFC 8305][rfc_8305]) for
IPv4+IPv6 networks.</strong> It attempts
both IPv6 and IPv4 connections concurrently, keeping whichever connects
first.</p>
<p><strong>We’ve improved our Kotlin APIs.</strong> You can skip the
builder:</p>
<pre lang="kotlin"><code>val request = Request(
  url = &quot;https://cash.app/&quot;.toHttpUrl(),
)
</code></pre>
<p><strong>OkHttp now supports [GraalVM].</strong></p>
<p>Here’s what has changed since 5.0.0-alpha.17:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d2dd180697"><code>d2dd180</code></a>
Prepare for release 5.1.0.</li>
<li><a
href="61a87359f6"><code>61a8735</code></a>
New Response.peekTrailers() API (<a
href="https://redirect.github.com/square/okhttp/issues/8921">#8921</a>)</li>
<li><a
href="66844010f7"><code>6684401</code></a>
Update dependency gradle to v8.14.3 (<a
href="https://redirect.github.com/square/okhttp/issues/8915">#8915</a>)</li>
<li><a
href="7adb2b637c"><code>7adb2b6</code></a>
Update junit-framework monorepo (<a
href="https://redirect.github.com/square/okhttp/issues/8914">#8914</a>)</li>
<li><a
href="e41ff18df8"><code>e41ff18</code></a>
Link to new mockwebserver artifacts (<a
href="https://redirect.github.com/square/okhttp/issues/8911">#8911</a>)</li>
<li><a
href="0ff87513e2"><code>0ff8751</code></a>
Remove Graal init tracing (<a
href="https://redirect.github.com/square/okhttp/issues/8909">#8909</a>)</li>
<li><a
href="b9a2560e56"><code>b9a2560</code></a>
Run graal on master (<a
href="https://redirect.github.com/square/okhttp/issues/8907">#8907</a>)</li>
<li><a
href="8339524463"><code>8339524</code></a>
Remove ExperimentalOkHttpApi references (<a
href="https://redirect.github.com/square/okhttp/issues/8908">#8908</a>)</li>
<li><a
href="ce29ef6182"><code>ce29ef6</code></a>
Fix graal tests (<a
href="https://redirect.github.com/square/okhttp/issues/8906">#8906</a>)</li>
<li><a
href="85796896c3"><code>8579689</code></a>
Don't force a response body read on all trailers (<a
href="https://redirect.github.com/square/okhttp/issues/8904">#8904</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.1.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 06:58:34 +00:00
Thomas Eizinger
35cd96b481 fix(phoenix-channel): fail connection in invalid peer cert (#9946)
When being presented an invalid peer certificate, there is no reason why
we should retry the connection, it is unlikely to fix itself. Plus, the
certificate may get / be cached and a restart of the application is
necessary.

Resolves: #9944
2025-07-21 04:08:45 +00:00
Thomas Eizinger
47b35d6e3c ci: increase timeout for download roaming test (#9945)
Now that we don't tolerate any failures in the download, this test
sometimes fails because the timeout is a bit too tight.
2025-07-21 04:06:37 +00:00