Instead of conditionally enabling the `logs` feature in the Sentry
client, we always enable it and control via the `tracing` integration,
which events should get forwarded to Sentry. The feature-flag check
accesses only shared-memory and is therefore really fast.
We already re-evaluate feature flags on a timer which means this boolean
will flip over automatically and logs will be streamed to Sentry.
Customer hit what seems to be a rare race condition where we try to
connect whilst we already have a session. I don't know which state it is
in so I am replacing it with a WARN log to learn more about this in
Sentry in case it gets hit again.
On Windows - in order to prevent routing loops - we resolve the best
"non-tunnel" route to a particular host for each IP address. The
resulting source IP is then used as source for packets leaving our
interface. In case the system doesn't have IPv6 connectivity or are
simply no routes available, we fail this "source IP resolver" with an IO
error.
Presently, this uses the "other" IO error type which causes this to be
logged on a WARN level in the event-loop. The IO error types
`HostUnreachable` and `NetworkUnreachable` are expected during normal
operation of Firezone and are therefore only logged on DEBUG.
By changing this IO error type, we fix the WARN log spam on Windows for
machines without IPv6 connectivity.
The tunnel service creates the Firezone ID upon start-up. With recent
changes to the GUI client, we now require reading the ID file when
starting the GUI client.
This exposes a race condition in our smoke-tests where we start them
both at roughly the same time.
To fix this, we sleep for 500ms after starting the tunnel process.
Bumps the tauri group in /rust/gui-client with 2 updates:
[@tauri-apps/api](https://github.com/tauri-apps/tauri) and
[@tauri-apps/cli](https://github.com/tauri-apps/tauri).
Updates `@tauri-apps/api` from 2.5.0 to 2.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/tauri/releases"><code>@tauri-apps/api</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@tauri-apps/api</code> v2.6.0</h2>
<!-- raw HTML omitted -->
<pre><code>No known vulnerabilities found
</code></pre>
<!-- raw HTML omitted -->
<h2>[2.6.0]</h2>
<h3>New Features</h3>
<ul>
<li><a
href="50ebddaa2d"><code>50ebddaa2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13319">#13319</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../kingsword09"><code>@kingsword09</code></a>)
Expose the <code>setAutoResize</code> API for webviews in
<code>@tauri-apps/api</code>.</li>
<li><a
href="267368fd4f"><code>267368fd4</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13276">#13276</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../amrbashir"><code>@amrbashir</code></a>)
Add <code>Monitor.workArea</code> field.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="23b9da75b9"><code>23b9da75b</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13324">#13324</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../kingsword09"><code>@kingsword09</code></a>)
Fixed path joining behavior where <code>path.join('', 'a')</code>
incorrectly returns "/a" instead of "a".</li>
<li><a
href="b985eaf0a2"><code>b985eaf0a</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13306">#13306</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Immediately unregister event listener when the unlisten function is
called.</li>
</ul>
<h3>What's Changed</h3>
<ul>
<li><a
href="b5c549d189"><code>b5c549d18</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13325">#13325</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../Legend-Master"><code>@Legend-Master</code></a>)
<code>transformCallback</code> now registers the callbacks inside
<code>window.__TAURI_INTERNALS__.callbacks</code> instead of directly on
<code>window['_{id}']</code></li>
</ul>
<!-- raw HTML omitted -->
<pre><code>> @tauri-apps/api@2.6.0 npm-publish
/home/runner/work/tauri/tauri/packages/api
> pnpm build && cd ./dist && pnpm publish --access
public --loglevel silly --no-git-checks
<p>> <code>@tauri-apps/api</code><a
href="https://github.com/2"><code>@2</code></a>.6.0 build
/home/runner/work/tauri/tauri/packages/api
> rollup -c --configPlugin typescript</p>
<p>[36m
[1m./src/app.ts, ./src/core.ts, ./src/dpi.ts, ./src/event.ts,
./src/image.ts, ./src/index.ts, ./src/menu.ts, ./src/mocks.ts,
./src/path.ts, ./src/tray.ts, ./src/webview.ts, ./src/webviewWindow.ts,
./src/window.ts[22m → [1m./dist, ./dist[22m...[39m
[32mcreated [1m./dist, ./dist[22m in [1m1.7s[22m[39m
[36m
[1msrc/index.ts[22m →
[1m../../crates/tauri/scripts/bundle.global.js[22m...[39m
[32mcreated [1m../../crates/tauri/scripts/bundle.global.js[22m in
[1m1.8s[22m[39m
npm verbose cli /opt/hostedtoolcache/node/20.19.2/x64/bin/node
/opt/hostedtoolcache/node/20.19.2/x64/bin/npm
npm info using npm@10.8.2
npm info using node@v20.19.2
npm silly config
load:file:/opt/hostedtoolcache/node/20.19.2/x64/lib/node_modules/npm/npmrc
npm silly config load:file:/tmp/2b52e4eba4f2f6fee26c87fa0c50d004/.npmrc
npm silly config load:file:/home/runner/work/_temp/.npmrc
npm silly config
load:file:/opt/hostedtoolcache/node/20.19.2/x64/etc/npmrc
</tr></table>
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="594822aa55"><code>594822a</code></a>
Apply Version Updates From Current Changes (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13282">#13282</a>)</li>
<li><a
href="e4aa35e083"><code>e4aa35e</code></a>
fix(cli): init tests</li>
<li><a
href="9c16eefa31"><code>9c16eef</code></a>
Update kuchikiki, html5ever, tao, wry, webview2-com (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13629">#13629</a>)</li>
<li><a
href="3242e1c946"><code>3242e1c</code></a>
feat(cli): allow passing Cargo commands to mobile dev/build commands (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13659">#13659</a>)</li>
<li><a
href="4a880ca697"><code>4a880ca</code></a>
feat(cli): synchronize productName changes with iOS Xcode project (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13658">#13658</a>)</li>
<li><a
href="d1ce9af628"><code>d1ce9af</code></a>
feat(cli): add <code>--config</code> arg to the mobile init cmds, closes
<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13284">#13284</a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13660">#13660</a>)</li>
<li><a
href="ec6065fa4a"><code>ec6065f</code></a>
fix(cli): use original identifier to fix mobile options reading (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13625">#13625</a>)</li>
<li><a
href="18b5299952"><code>18b5299</code></a>
docs: where does resource dir resolve to (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13640">#13640</a>)</li>
<li><a
href="eb3f0248c2"><code>eb3f024</code></a>
fix: write default permission words if not empty (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13646">#13646</a>)</li>
<li><a
href="c03cc586e3"><code>c03cc58</code></a>
chore: check generated file on package lock change (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13641">#13641</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/tauri/compare/@tauri-apps/api-v2.5.0...@tauri-apps/api-v2.6.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `@tauri-apps/cli` from 2.5.0 to 2.6.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/tauri/releases"><code>@tauri-apps/cli</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@tauri-apps/cli</code> v2.6.2</h2>
<h2>[2.6.2]</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="cbd9629729"><code>cbd962972</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13730">#13730</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Load <code>--config</code> arguments when running the Xcode and Android
Studio build scripts.</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Upgraded to <code>tauri-cli@2.6.2</code></li>
</ul>
<h2><code>@tauri-apps/cli</code> v2.6.1</h2>
<h2>[2.6.1]</h2>
<h3>Dependencies</h3>
<ul>
<li>Upgraded to <code>tauri-cli@2.6.1</code></li>
</ul>
<h2><code>@tauri-apps/cli</code> v2.6.0</h2>
<h2>[2.6.0]</h2>
<h3>New Features</h3>
<ul>
<li><a
href="414619c36e"><code>414619c36</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13536">#13536</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../Tunglies"><code>@Tunglies</code></a>)
Added support for the <code>bundleName</code> property in the macOS
bundler configuration. This allows specifying the
<code>CFBundleName</code> value for generated macOS bundles.</li>
<li><a
href="3242e1c946"><code>3242e1c94</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13659">#13659</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Allow passing Cargo arguments to mobile dev and build commands.</li>
<li><a
href="d1ce9af628"><code>d1ce9af62</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13660">#13660</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Allow passing <code>--config</code> arguments to the <code>ios
init</code> and <code>android init</code> commands to tweak the
configuration used to initialize the mobile projects.</li>
<li><a
href="7322f05792"><code>7322f0579</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13502">#13502</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../amrbashir"><code>@amrbashir</code></a>)
Allow using <code>CheckIfAppIsRunning</code> macro inside NSIS hooks,
for example <code>!insertmacro CheckIfAppIsRunning
"another-executable.exe" "Another
Executable"</code>.</li>
<li><a
href="4a880ca697"><code>4a880ca69</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13658">#13658</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Synchronize Tauri config productName changes with the iOS Xcode
project.</li>
<li><a
href="8ee14a8648"><code>8ee14a864</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13618">#13618</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../Sky-walkerX"><code>@Sky-walkerX</code></a>)
Warn the user that the app id shouldn't end in <code>.app</code> because
it conflicts with the application bundle extension on macOS</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="35aa7e1218"><code>35aa7e121</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13294">#13294</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../kingsword09"><code>@kingsword09</code></a>)
fix: allow the target directory to be inside frontendDir as long as it
is not the Rust target directory inside frontendDir.</li>
<li><a
href="ec6065fa4a"><code>ec6065fa4</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13625">#13625</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Fixes Android and iOS dev/build commands not working when the app
identifier is being modified by the <code>--config</code> option.</li>
<li><a
href="5a5291d66c"><code>5a5291d66</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13483">#13483</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../lucasfernog"><code>@lucasfernog</code></a>)
Fix simulator build detection on Xcode.</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Upgraded to <code>tauri-cli@2.6.0</code></li>
<li><a
href="9c16eefa31"><code>9c16eefa3</code></a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/pull/13629">#13629</a>
by <a
href="https://www.github.com/tauri-apps/tauri/../../sftse"><code>@sftse</code></a>)
Update html5ever to 0.29 and kuchikiki to version
0.8.8-speedreader.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0277596341"><code>0277596</code></a>
apply version updates (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13731">#13731</a>)</li>
<li><a
href="cbd9629729"><code>cbd9629</code></a>
fix(cli): load --config values on xcode and android-studio scripts (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13730">#13730</a>)</li>
<li><a
href="0079d08ba9"><code>0079d08</code></a>
chore(worker): Enable observability</li>
<li><a
href="effd106adf"><code>effd106</code></a>
fix(worker): Fix route syntax</li>
<li><a
href="4053ad1b58"><code>4053ad1</code></a>
apply version updates (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13724">#13724</a>)</li>
<li><a
href="f010ca5e91"><code>f010ca5</code></a>
fix(core): compile error without common-controls-v6 (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13719">#13719</a>)</li>
<li><a
href="6b2b9d6cbf"><code>6b2b9d6</code></a>
chore: clippy 1.88 (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13720">#13720</a>)</li>
<li><a
href="b6de1c89c2"><code>b6de1c8</code></a>
chore(deps): update rust crate md5 to 0.8 (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13712">#13712</a>)</li>
<li><a
href="a3ae2cebbf"><code>a3ae2ce</code></a>
chore(deps): update rust crate rand to 0.9 (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13700">#13700</a>)</li>
<li><a
href="a3f11b4f3b"><code>a3f11b4</code></a>
apply version updates (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13693">#13693</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/tauri/compare/@tauri-apps/cli-v2.5.0...@tauri-apps/cli-v2.6.2">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>
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.27.0 to 9.33.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.33.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat: Add opt-in <code>vercelAiIntegration</code> to
cloudflare & vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16732">#16732</a>)</strong></li>
</ul>
<p>The <code>vercelAiIntegration</code> is now available as opt-in for
the Cloudflare and the Next.js SDK for Vercel Edge.
To use it, add the integration in <code>Sentry.init</code></p>
<pre lang="js"><code>Sentry.init({
tracesSampleRate: 1.0,
integrations: [Sentry.vercelAIIntegration()],
});
</code></pre>
<p>And enable telemetry for Vercel AI calls</p>
<pre lang="js"><code>const result = await generateText({
model: openai('gpt-4o'),
experimental_telemetry: {
isEnabled: true,
},
});
</code></pre>
<ul>
<li><strong>feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16665">#16665</a>)</strong></li>
</ul>
<p>The Node.js SDK now includes instrumentation for <a
href="https://www.npmjs.com/package/postgres">Postgres.js</a>.</p>
<ul>
<li><strong>feat(node): Use diagnostics channel for Fastify v5 error
handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16715">#16715</a>)</strong></li>
</ul>
<p>If you're on Fastify v5, you no longer need to call
<code>setupFastifyErrorHandler</code>. It is done automatically by the
node SDK. Older versions still rely on calling
<code>setupFastifyErrorHandler</code>.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(cloudflare): Allow interop with OpenTelemetry emitted spans (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16714">#16714</a>)</li>
<li>feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16681">#16681</a>)</li>
<li>fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16736">#16736</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/0xbad0c0d3"><code>@0xbad0c0d3</code></a>.
Thank you for your contribution!</p>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@sentry/browser</code></td>
<td>23.42 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> - with treeshaking flags</td>
<td>23.2 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> (incl. Tracing)</td>
<td>37.93 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> (incl. Tracing, Replay)</td>
<td>75.18 KB</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</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.33.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat: Add opt-in <code>vercelAiIntegration</code> to
cloudflare & vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16732">#16732</a>)</strong></li>
</ul>
<p>The <code>vercelAiIntegration</code> is now available as opt-in for
the Cloudflare and the Next.js SDK for Vercel Edge.
To use it, add the integration in <code>Sentry.init</code></p>
<pre lang="js"><code>Sentry.init({
tracesSampleRate: 1.0,
integrations: [Sentry.vercelAIIntegration()],
});
</code></pre>
<p>And enable telemetry for Vercel AI calls</p>
<pre lang="js"><code>const result = await generateText({
model: openai('gpt-4o'),
experimental_telemetry: {
isEnabled: true,
},
});
</code></pre>
<ul>
<li><strong>feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16665">#16665</a>)</strong></li>
</ul>
<p>The Node.js SDK now includes instrumentation for <a
href="https://www.npmjs.com/package/postgres">Postgres.js</a>.</p>
<ul>
<li><strong>feat(node): Use diagnostics channel for Fastify v5 error
handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16715">#16715</a>)</strong></li>
</ul>
<p>If you're on Fastify v5, you no longer need to call
<code>setupFastifyErrorHandler</code>. It is done automatically by the
node SDK. Older versions still rely on calling
<code>setupFastifyErrorHandler</code>.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(cloudflare): Allow interop with OpenTelemetry emitted spans (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16714">#16714</a>)</li>
<li>feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16681">#16681</a>)</li>
<li>fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16736">#16736</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/0xbad0c0d3"><code>@0xbad0c0d3</code></a>.
Thank you for your contribution!</p>
<h2>9.32.0</h2>
<h3>Important Changes</h3>
<ul>
<li>feat(browser): Add CLS sources to span attributes (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16710">#16710</a>)</li>
</ul>
<p>Enhances CLS (Cumulative Layout Shift) spans by adding attributes
detailing the elements that caused layout shifts.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="70e425f9bf"><code>70e425f</code></a>
release: 9.33.0</li>
<li><a
href="c07f2a21f3"><code>c07f2a2</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16750">#16750</a>
from getsentry/prepare-release/9.33.0</li>
<li><a
href="e8eb291938"><code>e8eb291</code></a>
meta(changelog): Update changelog for 9.33.0</li>
<li><a
href="e7891f749f"><code>e7891f7</code></a>
chore: Add external contributor to CHANGELOG.md (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16747">#16747</a>)</li>
<li><a
href="c20a3c4b20"><code>c20a3c4</code></a>
feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16681">#16681</a>)</li>
<li><a
href="510ba3eba9"><code>510ba3e</code></a>
feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16665">#16665</a>)</li>
<li><a
href="f916be14ac"><code>f916be1</code></a>
feat(node): Use diagnostics channel for Fastify v5 error handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16715">#16715</a>)</li>
<li><a
href="40f04bc671"><code>40f04bc</code></a>
feat: Add opt-in <code>vercelAiIntegration</code> to cloudflare &
vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16732">#16732</a>)</li>
<li><a
href="ae30471893"><code>ae30471</code></a>
test(nuxt): Add fake module and composable to E2E test (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16731">#16731</a>)</li>
<li><a
href="43403dc2dc"><code>43403dc</code></a>
fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16736">#16736</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-javascript/compare/9.27.0...9.33.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `@sentry/react` from 9.27.0 to 9.33.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.33.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat: Add opt-in <code>vercelAiIntegration</code> to
cloudflare & vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16732">#16732</a>)</strong></li>
</ul>
<p>The <code>vercelAiIntegration</code> is now available as opt-in for
the Cloudflare and the Next.js SDK for Vercel Edge.
To use it, add the integration in <code>Sentry.init</code></p>
<pre lang="js"><code>Sentry.init({
tracesSampleRate: 1.0,
integrations: [Sentry.vercelAIIntegration()],
});
</code></pre>
<p>And enable telemetry for Vercel AI calls</p>
<pre lang="js"><code>const result = await generateText({
model: openai('gpt-4o'),
experimental_telemetry: {
isEnabled: true,
},
});
</code></pre>
<ul>
<li><strong>feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16665">#16665</a>)</strong></li>
</ul>
<p>The Node.js SDK now includes instrumentation for <a
href="https://www.npmjs.com/package/postgres">Postgres.js</a>.</p>
<ul>
<li><strong>feat(node): Use diagnostics channel for Fastify v5 error
handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16715">#16715</a>)</strong></li>
</ul>
<p>If you're on Fastify v5, you no longer need to call
<code>setupFastifyErrorHandler</code>. It is done automatically by the
node SDK. Older versions still rely on calling
<code>setupFastifyErrorHandler</code>.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(cloudflare): Allow interop with OpenTelemetry emitted spans (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16714">#16714</a>)</li>
<li>feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16681">#16681</a>)</li>
<li>fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16736">#16736</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/0xbad0c0d3"><code>@0xbad0c0d3</code></a>.
Thank you for your contribution!</p>
<h2>Bundle size 📦</h2>
<table>
<thead>
<tr>
<th>Path</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@sentry/browser</code></td>
<td>23.42 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> - with treeshaking flags</td>
<td>23.2 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> (incl. Tracing)</td>
<td>37.93 KB</td>
</tr>
<tr>
<td><code>@sentry/browser</code> (incl. Tracing, Replay)</td>
<td>75.18 KB</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</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.33.0</h2>
<h3>Important Changes</h3>
<ul>
<li><strong>feat: Add opt-in <code>vercelAiIntegration</code> to
cloudflare & vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16732">#16732</a>)</strong></li>
</ul>
<p>The <code>vercelAiIntegration</code> is now available as opt-in for
the Cloudflare and the Next.js SDK for Vercel Edge.
To use it, add the integration in <code>Sentry.init</code></p>
<pre lang="js"><code>Sentry.init({
tracesSampleRate: 1.0,
integrations: [Sentry.vercelAIIntegration()],
});
</code></pre>
<p>And enable telemetry for Vercel AI calls</p>
<pre lang="js"><code>const result = await generateText({
model: openai('gpt-4o'),
experimental_telemetry: {
isEnabled: true,
},
});
</code></pre>
<ul>
<li><strong>feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16665">#16665</a>)</strong></li>
</ul>
<p>The Node.js SDK now includes instrumentation for <a
href="https://www.npmjs.com/package/postgres">Postgres.js</a>.</p>
<ul>
<li><strong>feat(node): Use diagnostics channel for Fastify v5 error
handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16715">#16715</a>)</strong></li>
</ul>
<p>If you're on Fastify v5, you no longer need to call
<code>setupFastifyErrorHandler</code>. It is done automatically by the
node SDK. Older versions still rely on calling
<code>setupFastifyErrorHandler</code>.</p>
<h3>Other Changes</h3>
<ul>
<li>feat(cloudflare): Allow interop with OpenTelemetry emitted spans (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16714">#16714</a>)</li>
<li>feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16681">#16681</a>)</li>
<li>fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16736">#16736</a>)</li>
</ul>
<p>Work in this release was contributed by <a
href="https://github.com/0xbad0c0d3"><code>@0xbad0c0d3</code></a>.
Thank you for your contribution!</p>
<h2>9.32.0</h2>
<h3>Important Changes</h3>
<ul>
<li>feat(browser): Add CLS sources to span attributes (<a
href="https://redirect.github.com/getsentry/sentry-javascript/pull/16710">#16710</a>)</li>
</ul>
<p>Enhances CLS (Cumulative Layout Shift) spans by adding attributes
detailing the elements that caused layout shifts.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="70e425f9bf"><code>70e425f</code></a>
release: 9.33.0</li>
<li><a
href="c07f2a21f3"><code>c07f2a2</code></a>
Merge pull request <a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16750">#16750</a>
from getsentry/prepare-release/9.33.0</li>
<li><a
href="e8eb291938"><code>e8eb291</code></a>
meta(changelog): Update changelog for 9.33.0</li>
<li><a
href="e7891f749f"><code>e7891f7</code></a>
chore: Add external contributor to CHANGELOG.md (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16747">#16747</a>)</li>
<li><a
href="c20a3c4b20"><code>c20a3c4</code></a>
feat(cloudflare): Flush after <code>waitUntil</code> (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16681">#16681</a>)</li>
<li><a
href="510ba3eba9"><code>510ba3e</code></a>
feat(node): Add postgresjs instrumentation (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16665">#16665</a>)</li>
<li><a
href="f916be14ac"><code>f916be1</code></a>
feat(node): Use diagnostics channel for Fastify v5 error handling (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16715">#16715</a>)</li>
<li><a
href="40f04bc671"><code>40f04bc</code></a>
feat: Add opt-in <code>vercelAiIntegration</code> to cloudflare &
vercel-edge (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16732">#16732</a>)</li>
<li><a
href="ae30471893"><code>ae30471</code></a>
test(nuxt): Add fake module and composable to E2E test (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16731">#16731</a>)</li>
<li><a
href="43403dc2dc"><code>43403dc</code></a>
fix(nextjs): Remove <code>ai</code> from default server external
packages (<a
href="https://redirect.github.com/getsentry/sentry-javascript/issues/16736">#16736</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-javascript/compare/9.27.0...9.33.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>
Bumps the react group in /rust/gui-client with 2 updates:
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)
and
[react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router).
Updates `@types/react` from 19.1.6 to 19.1.8
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare
view</a></li>
</ul>
</details>
<br />
Updates `react-router` from 7.6.2 to 7.6.3
<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.6.3</h2>
<p>See the changelog for release notes: <a
href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v763">https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v763</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.6.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>Do not serialize types for <code>useRouteLoaderData<typeof
clientLoader></code> (<a
href="https://redirect.github.com/remix-run/react-router/pull/13752">#13752</a>)</p>
<p>For types to distinguish a <code>clientLoader</code> from a
<code>serverLoader</code>, you MUST annotate <code>clientLoader</code>
args:</p>
<pre lang="ts"><code>// 👇 annotation required to skip serializing types
export function clientLoader({}: Route.ClientLoaderArgs) {
return { fn: () => "earth" };
}
<p>function SomeComponent() {<br />
const data = useRouteLoaderData<typeof
clientLoader>("routes/this-route");<br />
const planet = data?.fn() ?? "world";<br />
return <h1>Hello, {planet}!</h1>;<br />
}<br />
</code></pre></p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0dea762528"><code>0dea762</code></a>
chore: Update version for release (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13897">#13897</a>)</li>
<li><a
href="183cc68431"><code>183cc68</code></a>
chore: Update version for release (pre) (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13878">#13878</a>)</li>
<li><a
href="c5396bd94a"><code>c5396bd</code></a>
Merge branch 'main' into release-next</li>
<li><a
href="e7b61c01b1"><code>e7b61c0</code></a>
Fix Typos in Documentation and Test Comments (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13810">#13810</a>)</li>
<li><a
href="f499d260fb"><code>f499d26</code></a>
chore(react-router): remove unused code (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13761">#13761</a>)</li>
<li><a
href="0a6acb1342"><code>0a6acb1</code></a>
Do not serialize types for <code>useRouteLoaderData\<typeof
clientLoader>()</code> (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13752">#13752</a>)</li>
<li><a
href="db9cdf9e59"><code>db9cdf9</code></a>
chore: remove unused files (<a
href="https://github.com/remix-run/react-router/tree/HEAD/packages/react-router/issues/13740">#13740</a>)</li>
<li>See full diff in <a
href="https://github.com/remix-run/react-router/commits/react-router@7.6.3/packages/react-router">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>
I believe some of the recent changes around how we load the
`firezone-id.json` from the GUI client surfaced that we in fact don't
always have access to it. Previously, this was silenced because we would
only optionally add it as context to the Sentry client.
Now, we need it to initialise telemetry so we know whether or not to
send logs to Sentry.
In order to be able to access the file, we need to change the config's
directory and the file to be owned by the `firezone-client` group.
The GUI client binary performs quite a few checks prior to setting up
logging. In order to log at least something, we have a bootstrap logger
config that logs to stdout based on the `RUST_LOG` env var.
However, in the context of an error, the logger guard was dropped to
early and therefore we couldn't actually see the error.
To fix this, we pass a mutable `Option` in to `try_main` instead. This
allows the function to drop the bootstrap logger once the real one is
set up but also keep logging using the bootstrap logger in case of an
error.
HTTP headers only reliably support ASCII characters. We include
information like the user's kernel build name in there and therefore
need to strip non-ASCII characters from that to avoid encoding errors.
Fixes: #9706
Bumps the tauri group in /rust with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [tauri-plugin-dialog](https://github.com/tauri-apps/plugins-workspace)
| `2.2.2` | `2.3.0` |
|
[tauri-plugin-notification](https://github.com/tauri-apps/plugins-workspace)
| `2.2.2` | `2.3.0` |
| [tauri-plugin-opener](https://github.com/tauri-apps/plugins-workspace)
| `2.2.7` | `2.4.0` |
| [tauri-plugin-shell](https://github.com/tauri-apps/plugins-workspace)
| `2.2.1` | `2.3.0` |
| [tauri-runtime](https://github.com/tauri-apps/tauri) | `2.6.0` |
`2.7.0` |
| [tauri-utils](https://github.com/tauri-apps/tauri) | `2.4.0` | `2.5.0`
|
Updates `tauri-plugin-dialog` from 2.2.2 to 2.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/plugins-workspace/releases">tauri-plugin-dialog's
releases</a>.</em></p>
<blockquote>
<h2>opener-js v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code>npm warn publish npm auto-corrected some errors in your
package.json when publishing. Please run "npm pkg fix" to
address these errors.
npm warn publish errors corrected:
npm warn publish "repository" was changed from a string to an
object
npm warn publish "repository.url" was normalized to
"git+https://github.com/tauri-apps/plugins-workspace.git"
npm notice
npm notice 📦 @tauri-apps/plugin-opener@2.3.0
npm notice Tarball Contents
npm notice 888B LICENSE.spdx
npm notice 4.3kB README.md
npm notice 2.8kB dist-js/index.cjs
npm notice 1.8kB dist-js/index.d.ts
npm notice 2.7kB dist-js/index.js
npm notice 11B dist-js/init.d.ts
npm notice 729B package.json
npm notice Tarball Details
npm notice name: @tauri-apps/plugin-opener
npm notice version: 2.3.0
npm notice filename: tauri-apps-plugin-opener-2.3.0.tgz
npm notice package size: 3.4 kB
npm notice unpacked size: 13.2 kB
npm notice shasum: ea883f48daffd22873bbc40cc81b266df6f6a6cd
npm notice integrity: sha512-yAbauwp8BCHIh[...]otjYnnbUVmYrw==
npm notice total files: 7
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and
public access
npm notice publish Signed provenance statement with source and build
information from GitHub Actions
npm notice publish Provenance statement published to transparency log:
https://search.sigstore.dev/?logIndex=240371238
+ @tauri-apps/plugin-opener@2.3.0
</code></pre>
<!-- raw HTML omitted -->
<h2>opener v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code></tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="adc23d6c4f"><code>adc23d6</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2808">#2808</a>)</li>
<li><a
href="fc573b35a7"><code>fc573b3</code></a>
chore(deps): update rust crate tokio-tungstenite to 0.27 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2768">#2768</a>)</li>
<li><a
href="901ddfb73d"><code>901ddfb</code></a>
ci: enable create-pull-request sign commits (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2809">#2809</a>)</li>
<li><a
href="f209b2f23c"><code>f209b2f</code></a>
chore(deps): update tauri monorepo to v2.6.0 (v2) (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2804">#2804</a>)</li>
<li><a
href="19ed1bd3cc"><code>19ed1bd</code></a>
chore(deps): update dependency prettier to v3.6.1 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2806">#2806</a>)</li>
<li><a
href="5779099688"><code>5779099</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2780">#2780</a>)</li>
<li><a
href="2aec8ff4c4"><code>2aec8ff</code></a>
feat(opener): add <code>inAppBrowser</code> option for iOS and Android
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2803">#2803</a>)</li>
<li><a
href="9799f0dbab"><code>9799f0d</code></a>
fix(log): iOS simulator freezing due to early logging (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2802">#2802</a>)</li>
<li><a
href="8cdaacdc6e"><code>8cdaacd</code></a>
chore(examples): update API example mobile projects</li>
<li><a
href="d46778e80b"><code>d46778e</code></a>
chore(deps): update dependency typescript-eslint to v8.35.0 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2794">#2794</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/plugins-workspace/compare/os-v2.2.2...os-v2.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `tauri-plugin-notification` from 2.2.2 to 2.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/plugins-workspace/releases">tauri-plugin-notification's
releases</a>.</em></p>
<blockquote>
<h2>opener-js v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code>npm warn publish npm auto-corrected some errors in your
package.json when publishing. Please run "npm pkg fix" to
address these errors.
npm warn publish errors corrected:
npm warn publish "repository" was changed from a string to an
object
npm warn publish "repository.url" was normalized to
"git+https://github.com/tauri-apps/plugins-workspace.git"
npm notice
npm notice 📦 @tauri-apps/plugin-opener@2.3.0
npm notice Tarball Contents
npm notice 888B LICENSE.spdx
npm notice 4.3kB README.md
npm notice 2.8kB dist-js/index.cjs
npm notice 1.8kB dist-js/index.d.ts
npm notice 2.7kB dist-js/index.js
npm notice 11B dist-js/init.d.ts
npm notice 729B package.json
npm notice Tarball Details
npm notice name: @tauri-apps/plugin-opener
npm notice version: 2.3.0
npm notice filename: tauri-apps-plugin-opener-2.3.0.tgz
npm notice package size: 3.4 kB
npm notice unpacked size: 13.2 kB
npm notice shasum: ea883f48daffd22873bbc40cc81b266df6f6a6cd
npm notice integrity: sha512-yAbauwp8BCHIh[...]otjYnnbUVmYrw==
npm notice total files: 7
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and
public access
npm notice publish Signed provenance statement with source and build
information from GitHub Actions
npm notice publish Provenance statement published to transparency log:
https://search.sigstore.dev/?logIndex=240371238
+ @tauri-apps/plugin-opener@2.3.0
</code></pre>
<!-- raw HTML omitted -->
<h2>opener v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code></tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="adc23d6c4f"><code>adc23d6</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2808">#2808</a>)</li>
<li><a
href="fc573b35a7"><code>fc573b3</code></a>
chore(deps): update rust crate tokio-tungstenite to 0.27 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2768">#2768</a>)</li>
<li><a
href="901ddfb73d"><code>901ddfb</code></a>
ci: enable create-pull-request sign commits (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2809">#2809</a>)</li>
<li><a
href="f209b2f23c"><code>f209b2f</code></a>
chore(deps): update tauri monorepo to v2.6.0 (v2) (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2804">#2804</a>)</li>
<li><a
href="19ed1bd3cc"><code>19ed1bd</code></a>
chore(deps): update dependency prettier to v3.6.1 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2806">#2806</a>)</li>
<li><a
href="5779099688"><code>5779099</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2780">#2780</a>)</li>
<li><a
href="2aec8ff4c4"><code>2aec8ff</code></a>
feat(opener): add <code>inAppBrowser</code> option for iOS and Android
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2803">#2803</a>)</li>
<li><a
href="9799f0dbab"><code>9799f0d</code></a>
fix(log): iOS simulator freezing due to early logging (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2802">#2802</a>)</li>
<li><a
href="8cdaacdc6e"><code>8cdaacd</code></a>
chore(examples): update API example mobile projects</li>
<li><a
href="d46778e80b"><code>d46778e</code></a>
chore(deps): update dependency typescript-eslint to v8.35.0 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2794">#2794</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/plugins-workspace/compare/os-v2.2.2...os-v2.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `tauri-plugin-opener` from 2.2.7 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/plugins-workspace/releases">tauri-plugin-opener's
releases</a>.</em></p>
<blockquote>
<h2>cli-js v2.4.0</h2>
<h2>[2.4.0]</h2>
<ul>
<li><a
href="f209b2f23c"><code>f209b2f2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2804">#2804</a>
by <a
href="https://github.com/tauri-apps/plugins-workspace/../../renovate"><code>@renovate</code></a>)
Updated tauri to 2.6</li>
</ul>
<!-- raw HTML omitted -->
<pre><code>npm warn publish npm auto-corrected some errors in your
package.json when publishing. Please run "npm pkg fix" to
address these errors.
npm warn publish errors corrected:
npm warn publish "repository" was changed from a string to an
object
npm warn publish "repository.url" was normalized to
"git+https://github.com/tauri-apps/plugins-workspace.git"
npm notice
npm notice 📦 @tauri-apps/plugin-cli@2.4.0
npm notice Tarball Contents
npm notice 888B LICENSE.spdx
npm notice 3.4kB README.md
npm notice 1.1kB dist-js/index.cjs
npm notice 1.3kB dist-js/index.d.ts
npm notice 1.0kB dist-js/index.js
npm notice 653B package.json
npm notice Tarball Details
npm notice name: @tauri-apps/plugin-cli
npm notice version: 2.4.0
npm notice filename: tauri-apps-plugin-cli-2.4.0.tgz
npm notice package size: 2.9 kB
npm notice unpacked size: 8.4 kB
npm notice shasum: 8d6eacb113a377bb690a36676c63c7b426212f46
npm notice integrity: sha512-3AUUaaqj3Pkac[...]WBNAL4I4iIZRg==
npm notice total files: 6
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and
public access
npm notice publish Signed provenance statement with source and build
information from GitHub Actions
npm notice publish Provenance statement published to transparency log:
https://search.sigstore.dev/?logIndex=249977649
+ @tauri-apps/plugin-cli@2.4.0
</code></pre>
<!-- raw HTML omitted -->
<h2>cli v2.4.0</h2>
<h2>[2.4.0]</h2>
<ul>
<li><a
href="f209b2f23c"><code>f209b2f2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2804">#2804</a>
by <a
href="https://github.com/tauri-apps/plugins-workspace/../../renovate"><code>@renovate</code></a>)
Updated tauri to 2.6</li>
</ul>
<!-- raw HTML omitted -->
<pre><code>Updating crates.io index
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="adc23d6c4f"><code>adc23d6</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2808">#2808</a>)</li>
<li><a
href="fc573b35a7"><code>fc573b3</code></a>
chore(deps): update rust crate tokio-tungstenite to 0.27 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2768">#2768</a>)</li>
<li><a
href="901ddfb73d"><code>901ddfb</code></a>
ci: enable create-pull-request sign commits (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2809">#2809</a>)</li>
<li><a
href="f209b2f23c"><code>f209b2f</code></a>
chore(deps): update tauri monorepo to v2.6.0 (v2) (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2804">#2804</a>)</li>
<li><a
href="19ed1bd3cc"><code>19ed1bd</code></a>
chore(deps): update dependency prettier to v3.6.1 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2806">#2806</a>)</li>
<li><a
href="5779099688"><code>5779099</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2780">#2780</a>)</li>
<li><a
href="2aec8ff4c4"><code>2aec8ff</code></a>
feat(opener): add <code>inAppBrowser</code> option for iOS and Android
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2803">#2803</a>)</li>
<li><a
href="9799f0dbab"><code>9799f0d</code></a>
fix(log): iOS simulator freezing due to early logging (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2802">#2802</a>)</li>
<li><a
href="8cdaacdc6e"><code>8cdaacd</code></a>
chore(examples): update API example mobile projects</li>
<li><a
href="d46778e80b"><code>d46778e</code></a>
chore(deps): update dependency typescript-eslint to v8.35.0 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2794">#2794</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/plugins-workspace/compare/opener-v2.2.7...fs-v2.4.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `tauri-plugin-shell` from 2.2.1 to 2.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/plugins-workspace/releases">tauri-plugin-shell's
releases</a>.</em></p>
<blockquote>
<h2>opener-js v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code>npm warn publish npm auto-corrected some errors in your
package.json when publishing. Please run "npm pkg fix" to
address these errors.
npm warn publish errors corrected:
npm warn publish "repository" was changed from a string to an
object
npm warn publish "repository.url" was normalized to
"git+https://github.com/tauri-apps/plugins-workspace.git"
npm notice
npm notice 📦 @tauri-apps/plugin-opener@2.3.0
npm notice Tarball Contents
npm notice 888B LICENSE.spdx
npm notice 4.3kB README.md
npm notice 2.8kB dist-js/index.cjs
npm notice 1.8kB dist-js/index.d.ts
npm notice 2.7kB dist-js/index.js
npm notice 11B dist-js/init.d.ts
npm notice 729B package.json
npm notice Tarball Details
npm notice name: @tauri-apps/plugin-opener
npm notice version: 2.3.0
npm notice filename: tauri-apps-plugin-opener-2.3.0.tgz
npm notice package size: 3.4 kB
npm notice unpacked size: 13.2 kB
npm notice shasum: ea883f48daffd22873bbc40cc81b266df6f6a6cd
npm notice integrity: sha512-yAbauwp8BCHIh[...]otjYnnbUVmYrw==
npm notice total files: 7
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and
public access
npm notice publish Signed provenance statement with source and build
information from GitHub Actions
npm notice publish Provenance statement published to transparency log:
https://search.sigstore.dev/?logIndex=240371238
+ @tauri-apps/plugin-opener@2.3.0
</code></pre>
<!-- raw HTML omitted -->
<h2>opener v2.3.0</h2>
<h2>[2.3.0]</h2>
<ul>
<li><a
href="ce9888a2d4"><code>ce9888a2</code></a>
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/pull/2762">#2762</a>)
Similar to the <code>fs</code> plugin the <code>opener</code> plugin now
supports a <code>requireLiteralLeadingDot</code> configuration in
<code>tauri.conf.json</code>.</li>
</ul>
<!-- raw HTML omitted -->
<pre><code></tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="adc23d6c4f"><code>adc23d6</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2808">#2808</a>)</li>
<li><a
href="fc573b35a7"><code>fc573b3</code></a>
chore(deps): update rust crate tokio-tungstenite to 0.27 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2768">#2768</a>)</li>
<li><a
href="901ddfb73d"><code>901ddfb</code></a>
ci: enable create-pull-request sign commits (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2809">#2809</a>)</li>
<li><a
href="f209b2f23c"><code>f209b2f</code></a>
chore(deps): update tauri monorepo to v2.6.0 (v2) (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2804">#2804</a>)</li>
<li><a
href="19ed1bd3cc"><code>19ed1bd</code></a>
chore(deps): update dependency prettier to v3.6.1 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2806">#2806</a>)</li>
<li><a
href="5779099688"><code>5779099</code></a>
publish new versions (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2780">#2780</a>)</li>
<li><a
href="2aec8ff4c4"><code>2aec8ff</code></a>
feat(opener): add <code>inAppBrowser</code> option for iOS and Android
(<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2803">#2803</a>)</li>
<li><a
href="9799f0dbab"><code>9799f0d</code></a>
fix(log): iOS simulator freezing due to early logging (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2802">#2802</a>)</li>
<li><a
href="8cdaacdc6e"><code>8cdaacd</code></a>
chore(examples): update API example mobile projects</li>
<li><a
href="d46778e80b"><code>d46778e</code></a>
chore(deps): update dependency typescript-eslint to v8.35.0 (<a
href="https://redirect.github.com/tauri-apps/plugins-workspace/issues/2794">#2794</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/plugins-workspace/compare/os-v2.2.1...os-v2.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `tauri-runtime` from 2.6.0 to 2.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/tauri/releases">tauri-runtime's
releases</a>.</em></p>
<blockquote>
<h2>tauri-runtime v2.7.0</h2>
<!-- raw HTML omitted -->
<pre><code>Updating git repository
`https://github.com/tauri-apps/schemars.git`
Updating crates.io index
warning: Patch `schemars_derive v0.8.21
(https://github.com/tauri-apps/schemars.git?branch=feat%2Fpreserve-description-newlines#c30f9848)`
was not used in the crate graph.
Check that the patched package version and available features are
compatible
with the dependency requirements. If the patch has a different version
from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not
enabled.
Locking 1020 packages to latest compatible versions
Adding apple-codesign v0.27.0 (available: v0.29.0)
Adding axum v0.7.9 (available: v0.8.4)
Adding cargo_metadata v0.19.2 (available: v0.20.0)
Adding colored v2.2.0 (available: v3.0.0)
Adding ctor v0.2.9 (available: v0.4.2)
Adding elf v0.7.4 (available: v0.8.0)
Adding getrandom v0.2.16 (available: v0.3.3)
Adding html5ever v0.29.1 (available: v0.32.0)
Adding itertools v0.13.0 (available: v0.14.0)
Adding json-patch v3.0.1 (available: v4.0.0)
Adding jsonrpsee v0.24.9 (available: v0.25.1)
Adding jsonrpsee-client-transport v0.24.9 (available: v0.25.1)
Adding jsonrpsee-core v0.24.9 (available: v0.25.1)
Adding jsonrpsee-ws-client v0.24.9 (available: v0.25.1)
Adding minisign v0.7.3 (available: v0.7.9)
Adding muda v0.16.1 (available: v0.17.0)
Adding object v0.36.7 (available: v0.37.1)
Adding oxc_allocator v0.36.0 (available: v0.74.0)
Adding oxc_ast v0.36.0 (available: v0.74.0)
Adding oxc_parser v0.36.0 (available: v0.74.0)
Adding oxc_span v0.36.0 (available: v0.74.0)
Adding phf v0.11.3 (available: v0.12.1)
Adding proc-macro-crate v2.0.0 (available: v2.0.2)
Adding rand v0.8.5 (available: v0.9.1)
Adding rpm v0.16.0 (available: v0.17.0)
Adding schemars v0.8.22 (available: v1.0.1)
Adding serialize-to-javascript v0.1.1 (available: v0.1.2)
Adding serialize-to-javascript-impl v0.1.1 (available: v0.1.2)
Adding tiny_http v0.11.0 (available: v0.12.0)
Adding which v7.0.3 (available: v8.0.0)
Adding worker v0.5.0 (available: v0.6.0)
Adding worker-macros v0.5.0 (available: v0.6.0)
Adding x509-certificate v0.23.1 (available: v0.24.0)
Fetching advisory database from
`https://github.com/RustSec/advisory-db.git`
Loaded 787 security advisories (from /home/runner/.cargo/advisory-db)
Updating crates.io index
Scanning Cargo.lock for vulnerabilities (1045 crate dependencies)
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="594822aa55"><code>594822a</code></a>
Apply Version Updates From Current Changes (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13282">#13282</a>)</li>
<li><a
href="e4aa35e083"><code>e4aa35e</code></a>
fix(cli): init tests</li>
<li><a
href="9c16eefa31"><code>9c16eef</code></a>
Update kuchikiki, html5ever, tao, wry, webview2-com (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13629">#13629</a>)</li>
<li><a
href="3242e1c946"><code>3242e1c</code></a>
feat(cli): allow passing Cargo commands to mobile dev/build commands (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13659">#13659</a>)</li>
<li><a
href="4a880ca697"><code>4a880ca</code></a>
feat(cli): synchronize productName changes with iOS Xcode project (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13658">#13658</a>)</li>
<li><a
href="d1ce9af628"><code>d1ce9af</code></a>
feat(cli): add <code>--config</code> arg to the mobile init cmds, closes
<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13284">#13284</a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13660">#13660</a>)</li>
<li><a
href="ec6065fa4a"><code>ec6065f</code></a>
fix(cli): use original identifier to fix mobile options reading (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13625">#13625</a>)</li>
<li><a
href="18b5299952"><code>18b5299</code></a>
docs: where does resource dir resolve to (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13640">#13640</a>)</li>
<li><a
href="eb3f0248c2"><code>eb3f024</code></a>
fix: write default permission words if not empty (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13646">#13646</a>)</li>
<li><a
href="c03cc586e3"><code>c03cc58</code></a>
chore: check generated file on package lock change (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13641">#13641</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/tauri/compare/tauri-runtime-v2.6.0...tauri-runtime-v2.7.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `tauri-utils` from 2.4.0 to 2.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tauri-apps/tauri/releases">tauri-utils's
releases</a>.</em></p>
<blockquote>
<h2>tauri-utils v2.5.0</h2>
<!-- raw HTML omitted -->
<pre><code>Updating git repository
`https://github.com/tauri-apps/schemars.git`
Updating crates.io index
warning: Patch `schemars_derive v0.8.21
(https://github.com/tauri-apps/schemars.git?branch=feat%2Fpreserve-description-newlines#c30f9848)`
was not used in the crate graph.
Check that the patched package version and available features are
compatible
with the dependency requirements. If the patch has a different version
from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not
enabled.
Locking 1020 packages to latest compatible versions
Adding apple-codesign v0.27.0 (available: v0.29.0)
Adding axum v0.7.9 (available: v0.8.4)
Adding cargo_metadata v0.19.2 (available: v0.20.0)
Adding colored v2.2.0 (available: v3.0.0)
Adding ctor v0.2.9 (available: v0.4.2)
Adding elf v0.7.4 (available: v0.8.0)
Adding getrandom v0.2.16 (available: v0.3.3)
Adding html5ever v0.29.1 (available: v0.32.0)
Adding itertools v0.13.0 (available: v0.14.0)
Adding json-patch v3.0.1 (available: v4.0.0)
Adding jsonrpsee v0.24.9 (available: v0.25.1)
Adding jsonrpsee-client-transport v0.24.9 (available: v0.25.1)
Adding jsonrpsee-core v0.24.9 (available: v0.25.1)
Adding jsonrpsee-ws-client v0.24.9 (available: v0.25.1)
Adding minisign v0.7.3 (available: v0.7.9)
Adding muda v0.16.1 (available: v0.17.0)
Adding object v0.36.7 (available: v0.37.1)
Adding oxc_allocator v0.36.0 (available: v0.74.0)
Adding oxc_ast v0.36.0 (available: v0.74.0)
Adding oxc_parser v0.36.0 (available: v0.74.0)
Adding oxc_span v0.36.0 (available: v0.74.0)
Adding phf v0.11.3 (available: v0.12.1)
Adding proc-macro-crate v2.0.0 (available: v2.0.2)
Adding rand v0.8.5 (available: v0.9.1)
Adding rpm v0.16.0 (available: v0.17.0)
Adding schemars v0.8.22 (available: v1.0.1)
Adding serialize-to-javascript v0.1.1 (available: v0.1.2)
Adding serialize-to-javascript-impl v0.1.1 (available: v0.1.2)
Adding tiny_http v0.11.0 (available: v0.12.0)
Adding which v7.0.3 (available: v8.0.0)
Adding worker v0.5.0 (available: v0.6.0)
Adding worker-macros v0.5.0 (available: v0.6.0)
Adding x509-certificate v0.23.1 (available: v0.24.0)
Fetching advisory database from
`https://github.com/RustSec/advisory-db.git`
Loaded 787 security advisories (from /home/runner/.cargo/advisory-db)
Updating crates.io index
Scanning Cargo.lock for vulnerabilities (1045 crate dependencies)
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="594822aa55"><code>594822a</code></a>
Apply Version Updates From Current Changes (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13282">#13282</a>)</li>
<li><a
href="e4aa35e083"><code>e4aa35e</code></a>
fix(cli): init tests</li>
<li><a
href="9c16eefa31"><code>9c16eef</code></a>
Update kuchikiki, html5ever, tao, wry, webview2-com (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13629">#13629</a>)</li>
<li><a
href="3242e1c946"><code>3242e1c</code></a>
feat(cli): allow passing Cargo commands to mobile dev/build commands (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13659">#13659</a>)</li>
<li><a
href="4a880ca697"><code>4a880ca</code></a>
feat(cli): synchronize productName changes with iOS Xcode project (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13658">#13658</a>)</li>
<li><a
href="d1ce9af628"><code>d1ce9af</code></a>
feat(cli): add <code>--config</code> arg to the mobile init cmds, closes
<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13284">#13284</a>
(<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13660">#13660</a>)</li>
<li><a
href="ec6065fa4a"><code>ec6065f</code></a>
fix(cli): use original identifier to fix mobile options reading (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13625">#13625</a>)</li>
<li><a
href="18b5299952"><code>18b5299</code></a>
docs: where does resource dir resolve to (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13640">#13640</a>)</li>
<li><a
href="eb3f0248c2"><code>eb3f024</code></a>
fix: write default permission words if not empty (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13646">#13646</a>)</li>
<li><a
href="c03cc586e3"><code>c03cc58</code></a>
chore: check generated file on package lock change (<a
href="https://redirect.github.com/tauri-apps/tauri/issues/13641">#13641</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tauri-apps/tauri/compare/tauri-utils-v2.4.0...tauri-utils-v2.5.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>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.27 to
0.23.28.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="12fe0c123f"><code>12fe0c1</code></a>
Prepare 0.23.28</li>
<li><a
href="46ba039ba0"><code>46ba039</code></a>
Expose <code>named_groups</code> extension in
<code>ClientHello</code></li>
<li><a
href="b9a530a746"><code>b9a530a</code></a>
ci-bench: low-noise benchmarks with rustls-fuzzing-provider</li>
<li><a
href="9b452d26a4"><code>9b452d2</code></a>
fuzzing-provider: support no-op ticketer</li>
<li><a
href="136e857c77"><code>136e857</code></a>
fuzzing-provider: make ciphersuites public</li>
<li><a
href="96d66569c9"><code>96d6656</code></a>
Only include renegotiation SCSV for TLS1.2 attempts</li>
<li><a
href="568b2c6500"><code>568b2c6</code></a>
Use <code>ProtocolName</code> for ALPN protocol pervasively</li>
<li><a
href="229dfe250d"><code>229dfe2</code></a>
Allow future customisation of alert sent for
<code>InvalidMessage</code></li>
<li><a
href="d8828602c5"><code>d882860</code></a>
Return more specific type from <code>outer_hello_ext()</code></li>
<li><a
href="34cdce3d8c"><code>34cdce3</code></a>
Return more specific type from <code>grease_ext()</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/rustls/compare/v/0.23.27...v/0.23.28">compare
view</a></li>
</ul>
</details>
<br />
[](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>
In #9656, we already tried to fix the pipelining of messages to the
portal. Unfortunately, a bug was introduced in a last-minute refactoring
where we would _only_ send messages while we were joining a room. Due a
2nd bug where we weren't actually processing the room join replies
correctly, this didn't matter so the PR was effectively a no-op and
didn't change any behaviour.
Further investigation of the code surfaced additional problems. For one,
we were not re-queuing the message into the correct buffer. Two, we were
only flushing after sending a message.
To fix both of these, we move the flushing out of the message sending
branch completely and duplicate some of the code for sending messages in
order to correctly handle join requests before other messages.
Finally, join requests have an _empty_ payload and are therefore
processed in a different branch. By moving the checking for the replies
of join requests, we can correctly update the state and continue sending
messages once the join is successful.
Resolves: #9647
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.173 to 0.2.174.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/releases">libc's
releases</a>.</em></p>
<blockquote>
<h2>0.2.174</h2>
<h3>Added</h3>
<ul>
<li>Linux: Make <code>pidfd_info</code> fields pub (<a
href="https://redirect.github.com/rust-lang/libc/pull/4487">#4487</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Gnu x32: Add missing <code>timespec.tv_nsec</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4497">#4497</a>)</li>
<li>NuttX: Use <code>nlink_t</code> type for <code>st_nlink</code> in
<code>struct stat</code> definition (<a
href="https://redirect.github.com/rust-lang/libc/pull/4483">#4483</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Allow new <code>unpredictable_function_pointer_comparisons</code>
lints (<a
href="https://redirect.github.com/rust-lang/libc/pull/4489">#4489</a>)</li>
<li>OpenBSD: Fix some clippy warnings to use <code>pointer::cast</code>.
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4490">#4490</a>)</li>
<li>Remove unessecary semicolons from definitions of
<code>CMSG_NXTHDR</code>. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4492">#4492</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/blob/0.2.174/CHANGELOG.md">libc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/libc/compare/0.2.173...0.2.174">0.2.174</a>
- 2025-06-17</h2>
<h3>Added</h3>
<ul>
<li>Linux: Make <code>pidfd_info</code> fields pub (<a
href="https://redirect.github.com/rust-lang/libc/pull/4487">#4487</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Gnu x32: Add missing <code>timespec.tv_nsec</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4497">#4497</a>)</li>
<li>NuttX: Use <code>nlink_t</code> type for <code>st_nlink</code> in
<code>struct stat</code> definition (<a
href="https://redirect.github.com/rust-lang/libc/pull/4483">#4483</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Allow new <code>unpredictable_function_pointer_comparisons</code>
lints (<a
href="https://redirect.github.com/rust-lang/libc/pull/4489">#4489</a>)</li>
<li>OpenBSD: Fix some clippy warnings to use <code>pointer::cast</code>.
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4490">#4490</a>)</li>
<li>Remove unessecary semicolons from definitions of
<code>CMSG_NXTHDR</code>. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4492">#4492</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ea6f07f982"><code>ea6f07f</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4500">#4500</a>
from tgross35/release</li>
<li><a
href="ce31fdaf1c"><code>ce31fda</code></a>
chore: release libc 0.2.174</li>
<li><a
href="296b5801e9"><code>296b580</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4499">#4499</a>
from tgross35/backport-hungarian-wax</li>
<li><a
href="264a5399ab"><code>264a539</code></a>
Add missing timespec.tv_nsec for gnux32</li>
<li><a
href="7d92568ed6"><code>7d92568</code></a>
fix: use nlink_t type for st_nlink in struct stat definition for
NuttX</li>
<li><a
href="790180ba16"><code>790180b</code></a>
Remove unessecary semicolons from definitions of
<code>CMSG_NXTHDR</code>.</li>
<li><a
href="1e99d50bc9"><code>1e99d50</code></a>
make pidfd_info fields pub</li>
<li><a
href="c08c5073ef"><code>c08c507</code></a>
openbsd: Fix some clippy warnings to use
<code>pointer::cast</code>.</li>
<li><a
href="513405844c"><code>5134058</code></a>
Allow new <code>unpredictable_function_pointer_comparisons</code>
lints</li>
<li>See full diff in <a
href="https://github.com/rust-lang/libc/compare/0.2.173...0.2.174">compare
view</a></li>
</ul>
</details>
<br />
[](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>
Bumps [arboard](https://github.com/1Password/arboard) from 3.5.0 to
3.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/1Password/arboard/releases">arboard's
releases</a>.</em></p>
<blockquote>
<h2>v3.6.0</h2>
<h3>Added</h3>
<ul>
<li>Add support for excluding data from clipboard history on Linux.</li>
<li><code>arboard</code>, in debug builds, now attempts to call out
clipboard lifetime mishandling.
<ul>
<li>This is a debugging feature, and as such has no absolute or promised
behavior.</li>
</ul>
</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The background thread in the X11 backend no longer exits on every
selection request failure.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handled cases where using an unsupported Primary clipboard on
Wayland would return the wrong error.</li>
<li>Clearing the clipboard on Linux now behaves correctly when
interacting with other apps on the system.</li>
<li>Pasting text with an explicit locale ID on Windows now works as
intended.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/MrSmoer"><code>@MrSmoer</code></a> made
their first contribution in <a
href="https://redirect.github.com/1Password/arboard/pull/155">1Password/arboard#155</a></li>
<li><a
href="https://github.com/crumblingstatue"><code>@crumblingstatue</code></a>
made their first contribution in <a
href="https://redirect.github.com/1Password/arboard/pull/186">1Password/arboard#186</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/1Password/arboard/compare/v3.5.0...v3.6.0">https://github.com/1Password/arboard/compare/v3.5.0...v3.6.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/1Password/arboard/blob/master/CHANGELOG.md">arboard's
changelog</a>.</em></p>
<blockquote>
<h2>3.6.0 on 2025-06-27</h2>
<h3>Added</h3>
<ul>
<li>Add support for excluding data from clipboard history on Linux.</li>
<li><code>arboard</code>, in debug builds, now attempts to call out
clipboard lifetime mishandling.
<ul>
<li>This is a debugging feature, and as such has no absolute or promised
behavior.</li>
</ul>
</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The background thread in the X11 backend no longer exits on every
selection request failure.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handled cases where using an unsupported Primary clipboard on
Wayland would return the wrong error.</li>
<li>Clearing the clipboard on Linux now behaves correctly when
interacting with other apps on the system.</li>
<li>Pasting text with an explicit locale ID on Windows now works as
intended.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4f9bff86dc"><code>4f9bff8</code></a>
Release 3.6.0</li>
<li><a
href="380d2a691b"><code>380d2a6</code></a>
Remove deprecated authors Cargo manifest field</li>
<li><a
href="68ea2074ac"><code>68ea207</code></a>
Resolve new Clippy lints</li>
<li><a
href="8f6bab7d48"><code>8f6bab7</code></a>
Add README section about Linux clipboard ownership</li>
<li><a
href="b704da3cea"><code>b704da3</code></a>
Add debug helper for too-early Linux clipboard dropping</li>
<li><a
href="1040043ca4"><code>1040043</code></a>
Reword README sections and elaborate on Linux support</li>
<li><a
href="5f80bc1ddf"><code>5f80bc1</code></a>
linux/x11: Don't stop worker thread if handling selection request fails
(<a
href="https://redirect.github.com/1Password/arboard/issues/186">#186</a>)</li>
<li><a
href="b1e6720c3e"><code>b1e6720</code></a>
Fix getting text on Windows when locale identifiers differ</li>
<li><a
href="6b0e47ac8a"><code>6b0e47a</code></a>
Reimplement Linux clipboard clearing with correct primitives</li>
<li><a
href="825026572a"><code>8250265</code></a>
Refactor Wayland error handling to better account for missing Primary
clipboard</li>
<li>Additional commits viewable in <a
href="https://github.com/1Password/arboard/compare/v3.5.0...v3.6.0">compare
view</a></li>
</ul>
</details>
<br />
[](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>
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.103 to 2.0.104.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/syn/releases">syn's
releases</a>.</em></p>
<blockquote>
<h2>2.0.104</h2>
<ul>
<li>Disallow attributes on range expression (<a
href="https://redirect.github.com/dtolnay/syn/issues/1872">#1872</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2283a9852a"><code>2283a98</code></a>
Release 2.0.104</li>
<li><a
href="d745687fff"><code>d745687</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1872">#1872</a>
from dtolnay/attrrange</li>
<li><a
href="350a4ab22d"><code>350a4ab</code></a>
Disallow attributes on range expression</li>
<li><a
href="da96f95362"><code>da96f95</code></a>
Add test of attributes on range</li>
<li><a
href="7a79818f44"><code>7a79818</code></a>
Update test suite to nightly-2025-06-19</li>
<li>See full diff in <a
href="https://github.com/dtolnay/syn/compare/2.0.103...2.0.104">compare
view</a></li>
</ul>
</details>
<br />
[](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>
Bumps [test-strategy](https://github.com/frozenlib/test-strategy) from
0.4.1 to 0.4.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2816a09947"><code>2816a09</code></a>
Version 0.4.3.</li>
<li><a
href="f36275f3f8"><code>f36275f</code></a>
Clippy.</li>
<li><a
href="b45b00b214"><code>b45b00b</code></a>
Suppress <code>clippy::shadow_unrelated</code> warning in generated
code. (fix <a
href="https://redirect.github.com/frozenlib/test-strategy/issues/19">#19</a>)</li>
<li><a
href="bb9ef1bda5"><code>bb9ef1b</code></a>
Use <code>#![warn(clippy::shadow_unrelated)]</code> in tests.</li>
<li><a
href="58a9e9c5ad"><code>58a9e9c</code></a>
Version 0.4.2.</li>
<li><a
href="47172e723e"><code>47172e7</code></a>
Clippy.</li>
<li><a
href="c622d5faf4"><code>c622d5f</code></a>
Use edition 2021.</li>
<li><a
href="b397bbb466"><code>b397bbb</code></a>
Format.</li>
<li><a
href="75017c402d"><code>75017c4</code></a>
Resolve macro hygiene issue in Arbitrary. (fix <a
href="https://redirect.github.com/frozenlib/test-strategy/issues/18">#18</a>)</li>
<li><a
href="1822090c2f"><code>1822090</code></a>
Update expected compile error message.</li>
<li>Additional commits viewable in <a
href="https://github.com/frozenlib/test-strategy/compare/v0.4.1...v0.4.3">compare
view</a></li>
</ul>
</details>
<br />
[](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>
Bumps [uniffi](https://github.com/mozilla/uniffi-rs) from 0.29.2 to
0.29.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mozilla/uniffi-rs/blob/main/CHANGELOG.md">uniffi's
changelog</a>.</em></p>
<blockquote>
<h2>v0.29.3 (backend crates: v0.29.3) - (<em>2025-06-06</em>)</h2>
<h3>What's new?</h3>
<ul>
<li>HashMaps in UDL now support a default value with an empty map (<a
href="https://redirect.github.com/mozilla/uniffi-rs/pull/2539">#2539</a>).</li>
</ul>
<p><a
href="https://github.com/mozilla/uniffi-rs/compare/v0.29.2...v0.29.3">All
changes in v0.29.3</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8ece6a7211"><code>8ece6a7</code></a>
chore: Release</li>
<li><a
href="b12e09dc26"><code>b12e09d</code></a>
chore: Release</li>
<li><a
href="9aa167459b"><code>9aa1674</code></a>
Merge remote-tracking branch 'upstream/main' into release-v0.29.x</li>
<li><a
href="89a49b0504"><code>89a49b0</code></a>
Merge pull request <a
href="https://redirect.github.com/mozilla/uniffi-rs/issues/2559">#2559</a>
from mozilla/uniffi-309-unique-trait-interfaces</li>
<li><a
href="eb8eb00be5"><code>eb8eb00</code></a>
UNIFFI-309 Make callback interfaces unique</li>
<li><a
href="c9a59448e3"><code>c9a5944</code></a>
Internal docs for Rust/callback interface calls</li>
<li><a
href="a8ef084051"><code>a8ef084</code></a>
General pipeline updates</li>
<li><a
href="f04409aec5"><code>f04409a</code></a>
Merge pull request <a
href="https://redirect.github.com/mozilla/uniffi-rs/issues/2554">#2554</a>
from mozilla/groovecoder-patch-1</li>
<li><a
href="dc02a0c739"><code>dc02a0c</code></a>
Explicitly catch kotlin.Exception. (<a
href="https://redirect.github.com/mozilla/uniffi-rs/issues/2544">#2544</a>)</li>
<li><a
href="08aa589918"><code>08aa589</code></a>
fix typo in custom_types.md</li>
<li>Additional commits viewable in <a
href="https://github.com/mozilla/uniffi-rs/compare/v0.29.2...v0.29.3">compare
view</a></li>
</ul>
</details>
<br />
[](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>
In order to detect network changes on Windows, we implement the
`INetworkEvents` callback interface. This callback notifies us every
time the connectivity of a certain network changes.
Performing a network reset in connlib on any of these changes hurts the
user experience as Firezone is booting because it takes a while for this
to settle. Firezone itself is making changes to the network so several
of these change events happen _because_ Firezone is starting.
The documentation from Microsoft on what possible values the `NameType`
attribute can have is pretty thin but I did manage to find the following
values on the Internet:
- `6`: Wired network
- `71`: Wireless network
- `243`: Broadband network
We assume that the user is connected to the Internet through one of
these so we ignore network changes on all other networks.
An alternative approach to reducing the number of false-positive change
events would be to react to a narrower list of change events. I
discarded this approach because it wasn't clear to me, which of the
event types [0] would matter to us and when Windows emits them. I think
in order to effectively react to those, we'd have to do more fine
granular tracking of which state a network is in and e.g. only trigger a
reset if we move from "Disconnected" to e.g. "Subnet connectivity".
Windows also differentiates between local, subnet and Internet
connectivity, yet in my testing, I've never observed the "Internet"
connectivity being emitted.
Hence, it is deemed more robust to just filter out networks based on
their type. Firezone itself is of type 53 and is therefore automatically
filtered out as well. The risk here is that we don't react to
connectivity changes of a network that a customer is relying on.
Unfortunately, I don't think there is a better way to find this out
other than shipping this change and waiting for reports.
[0]:
https://learn.microsoft.com/en-us/windows/win32/api/netlistmgr/ne-netlistmgr-nlm_connectivity#constants
---------
Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
In a recent release, `str0m` downgraded all INFO logs to DEBUG. Whilst
generally appreciated, it means we don't have a lot of visibility
anymore into which candidates are being exchanged and what the ICE
credentials of the connections are.
We re-add this information to our existing logs when creating and
updating connections.
Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.6.0 to
1.7.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/proptest-rs/proptest/commits">compare
view</a></li>
</ul>
</details>
<br />
[](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>
As with some of our other applications, it is useful to know when they
restart and which version is running. Adding a log on INFO on startup
solves this.
To avoid race conditions, we wait for all room joins on the WebSocket to
be successful before sending any messages to the portal. This requires
us to split room join messages from other messages so we can still send
them separately.
Resolves: #9647
Instead of a 1 minute TTL for all connections, we vary the TTL based on
the protocol being used. For TCP, that is 2 hours. For UDP and ICMP, we
use 2 minutes.
Resolves: #9645
Originally, we introduced these to gather some data from logs / warnings
that we considered to be too spammy. We've since merged a
burst-protection that will at most submit the same event once every 5
minutes.
The data from the telemetry spans themselves have not been used at all.
I suspect that the new Windows runners are "too fast" and we hit a race
condition in the use of the keyring on Windows which causes failing CI
jobs. The attempt to fix this is to sleep for 1 seconds before every
assert in the test.
Sentry has a new "Logs" feature where we can stream logs directly to
Sentry. Doing this for all Clients and Gateways would be way too much
data to collect though.
In order to aid debugging from customer installations, we add a
PostHog-managed feature flag that - if set to `true` - enables the
streaming of logs to Sentry. This feature flag is evaluated every time
the telemetry context is initialised:
- For all FFI usages of connlib, this happens every time a new session
is created.
- For the Windows/Linux Tunnel service, this also happens every time we
create a new session.
- For the Headless Client and Gateway, it happens on startup and
afterwards, every minute. The feature-flag context itself is only
checked every 5 minutes though so it might take up to 5 minutes before
this takes effect.
The default value - like all feature flags - is `false`. Therefore, if
there is any issue with the PostHog service, we will fallback to the
previous behaviour where logs are simply stored locally.
Resolves: #9600
WireGuard implements a rate-limit mechanism when the number of handshake
initiations increases a certain limit. This is important because
handshakes involve asymmetric cryptography and are cryptographically
expensive. To prevent DoS attacks where other peers repeatedly ask for
new handshakes, the rate limiter implements a cookie mechanism where -
when under load - the remote peer needs to include a given cookie in new
handshakes. This cookie is tied to the peer's IP address to prevent it
from being reused by other peers.
Up until now, we have not been passing the sender's IP address to
`boringtun` and therefore, the only option when the rate limit was hit
was to error with `UnderLoad`.
By passing the source IP of the packet, `boringtun` can engage in the
cookie-reply mechanism and therefore avoid the `UnderLoad` error.
Resolves: #9643
When we receive the `account_slug` from the portal, the Gateway now
sends a `$identify` event to PostHog. This will allow us to target
Gateways with feature-flags based on the account they are connected to.
In order to more easily target customers with certain feature flags, we
include the `account_slug` in the `$identify` event to PostHog. This
will allow us to create Cohorts in PostHog and enable / disable feature
flags for all installations of Firezone for a particular customer.
Presently, `connlib` always just lets the OS pick a random port for our
UDP socket. This works well in many cases but has the downside that IF
network admins would like to aid in the process of establishing direct
connections, they cannot open a specific port because it is always
random.
It doesn't cost us anything to try and bind to a particular port (here
52625) and fallback to a random one if something is listening there.
The port 52625 was chosen because:
- It is within the ephemeral port range and will therefore never be
registered to anything else.
- It is an palindrome and therefore easy to remember.
- When typing FIRE on a phone keypad, it you get the numbers 3473. 52625
is the port at the offset 3473 from the ephemeral port range.
In order for this port to be useful in establishing direct connections,
we generate optimistic candidates based on existing remote candidates by
combining the IP of all server-reflexive candidates with the port of all
host candidates.
This patch deliberately does not publicly announce this feature in the
docs or the changelog so we can first gather experience with it in our
own test environment.
Resolves: #9559
A bit of legacy that we have inherited around our Firezone ID is that
the ID stored on the user's device is sha'd before being passed to the
portal as the "external ID". This makes it difficult to correlate IDs in
Sentry and PostHog with the data we have in the portal. For Sentry and
PostHog, we submit the raw UUID stored on the user's device.
As a first step in overcoming this, we embed an "external ID" in those
services as well IF the provided Firezone ID is a valid UUID. This will
allow us to immediately correlate those events.
As a second step, we automatically generate all new Firezone IDs for the
Windows and Linux Client as `hex(sha256(uuid))`. These won't parse as
valid UUIDs and therefore will be submitted as is to the portal.
As a third step, we update all documentation around generating Firezone
IDs to use `uuidgen | sha256` instead of just `uuidgen`. This is
effectively the equivalent of (2) but for the Headless Client and
Gateway where the Firezone ID can be configured via environment
variables.
Resolves: #9382
---------
Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
The latest `main` of str0m undoes a breaking change in the constructor
of `Candidate::relayed` by flipping the parameters back. This will make
it easier to upgrade to the latest release once it is out.
This has been disabled for several releases now and is not causing any
problems in production. We can therefore safely remove it.
It is about time we do this because our tests are actually still testing
the variant without the feature flag and therefore deviate from what we
do in production. We therefore have to convert the tests as well. Doing
so uncovered a minor problem in our ICMP error parsing code: We
attempted to parse the payload of an ICMP error as a fully-valid layer 4
header (e.g. TCP header or UDP header). However, per the RFC a node only
needs to embed the first 8 bytes of the original packet in an ICMPv4
error. That is not enough to parse a valid TCP header as those are at
least 20 bytes.
I don't expect this to be a huge problem in production right now though.
We only use this code to parse ICMP errors arriving on the Gateway and I
_think_ most devices actually include more than 8 bytes. This only
surfaced because we are very strict with only embedding exactly 8 bytes
when we generate an ICMP error.
Additionally, we change our ICMP errors to be sent from the resource IP
rather than the Gateway's TUN device. Given that we perform NAT on these
IPs anyway, I think this can still be argued to be RFC conform. The
_proxy_ IP which we are trying to contact can be reached but it cannot
be routed further. Therefore the destination is unreachable, yet the
source of this error is the proxy IP itself. I think this is actually
more correct than sending the packets from the Gateway's TUN device
because the TUN device itself is not a routing hop per-se: its IP won't
ever show up in the routing path.