Commit Graph

8285 Commits

Author SHA1 Message Date
Thomas Eizinger
66fcf8734c fix(android): handle exceptions when creating a new session (#10667)
The `Session.newAndroid` constructor can throw an exception.
Unfortunately, the Kotlin compiler didn't warn us about that and thus,
any errors when creating a new session caused the service process to
crash.

We fix this by wrapping the entire thing in a `try-catch-finally` block.

Resolves: #10289
2025-10-21 21:01:41 +00:00
Thomas Eizinger
dee535f30e chore(client-ffi): tweak uniffi settings (#10665)
As far as I can tell, the `async_runtime` config option doesn't exist in
UniFFI, hence we remove that.

Whilst going through the UniFFI docs, I also noticed that there is a
specific flag about Android that we can toggle on. Effectively, this
uses the shared
[`SystemCleaner`](https://developer.android.com/reference/android/system/SystemCleaner)
instead of a per-thread one which is supposed to be more performant.

Finally, using immutable records seems like a good idea as mutating any
FFI-originated field is not going to be reflected in connlib's state.
Preventing that at compile-time has a good chance of reducing bugs.
2025-10-21 05:19:26 +00:00
Thomas Eizinger
b854b7407c chore: fix clippy warnings in eBPF code (#10660)
This code appears to be configured out in CI and thus we don't run
clippy there. My IDE pointed these out however so it seems fair enough
to fix them. It is just unnecessary references, doesn't actually have an
impact on the functionality.
2025-10-21 05:19:07 +00:00
Thomas Eizinger
5fff000623 ci: add sentry dependabot group (#10658) 2025-10-21 05:18:53 +00:00
Thomas Eizinger
8bb157f579 chore(connlib): silence hickory_proto logs (#10624)
These are a bit noisy on DEBUG.
2025-10-21 05:18:43 +00:00
Jamil
9d640b52b4 feat(website): 09/2025 devlog (#10571)
First in a series of new monthly devlog posts to summarize what we've
shipped over the previous month.

Intentionally detailed and engineering focused - added a new
`Engineering` section to the blog.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-10-21 03:35:41 +00:00
Thomas Eizinger
a59f7ee2e2 chore: install JDK via .tool-versions (#10663)
For working on the Android app, we need an installation of the JDK.
Currently, that is being installed separately in CI. We already have
`.tool-versions` which is designed to take care of this so we add
OpenJDK 17 to the list of required tools and remove the dedicated CI
step.
2025-10-21 03:13:03 +00:00
Jamil
2729a7731b chore(portal): remove dead Web.ControllerDocumentation (#10619) 2025-10-21 03:07:36 +00:00
Thomas Eizinger
20d0298a8a chore: fix clippy warnings about HashMap iteration (#10661)
Not quite sure how these didn't get picked up by CI but they showed in
my local IDE.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-21 02:54:20 +00:00
Thomas Eizinger
fc97816d6e chore: remove redunant clone (#10662) 2025-10-21 01:11:03 +00:00
Firezone Bot
76d86545a6 chore: publish apple-client 1.5.9 (#10654) 2025-10-20 14:04:08 +00:00
dependabot[bot]
6e1fb01286 build(deps): bump github.com/getsentry/sentry-cocoa from 8.55.1 to 8.56.0 in /swift/apple/FirezoneKit (#10629)
Bumps
[github.com/getsentry/sentry-cocoa](https://github.com/getsentry/sentry-cocoa)
from 8.55.1 to 8.56.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-cocoa/releases">github.com/getsentry/sentry-cocoa's
releases</a>.</em></p>
<blockquote>
<h2>8.56.0</h2>
<blockquote>
<p>[!Warning]
This version can cause runtime crashes because the
<code>UIApplication.sharedApplication</code>/<code>NSApplication.sharedApplication</code>
is not yet available during SDK initialization, due to the changes in
[PR <a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5900">#5900</a>](<a
href="https://redirect.github.com/getsentry/sentry-cocoa/pull/5900">getsentry/sentry-cocoa#5900</a>),
released in <a
href="https://github.com/getsentry/sentry-cocoa/releases/tag/8.56.0">8.56.0</a>.</p>
</blockquote>
<blockquote>
<p>[!Warning]
Session Replay in this version does not correctly mask views when built
with Xcode 26 and running on iOS 26 with Liquid Glass, which may lead to
PII leaks. Please upgrade to 8.57.0 or later, which automatically
<strong>disables session replay</strong> in such environments.</p>
</blockquote>
<h3>Features</h3>
<ul>
<li>Structured Logs: Flush logs on SDK flush/close (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5834">#5834</a>)</li>
<li>Add masking options for screenshots (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5401">#5401</a>)</li>
<li>Add significant time change breadcrumb (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6112">#6112</a>)</li>
<li>Add support for iOS 26, macOS 26, visionOS 26, watchOS 26, and tvOS
26 in device tests (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6063">#6063</a>)</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>Lazily CharacterSet only once in SentryBaggageSerialization (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5871">#5871</a>)</li>
<li>Structured Logging: Log <code>SentrySDK.logger</code> calls to
<code>SentrySDKLog</code> (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5991">#5991</a>)</li>
<li>The build type in the app context now differentiates between
<code>enterprise</code> and <code>adhoc</code> (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6044">#6044</a>)</li>
<li>visionOS no longer needs swift's interoperability mode (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6077">#6077</a>)</li>
<li>Ensure IP address is only inferred by Relay if sendDefaultPii is
true (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5877">#5877</a>)</li>
<li>Sentry without UIKit / AppKit is available to install with SPM (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6160">#6160</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Don't capture replays for events dropped in <code>beforeSend</code>
(<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5916">#5916</a>)</li>
<li>Fix linking with SentrySwiftUI on Xcode 26 for visionOS (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5823">#5823</a>)</li>
<li>Structured Logging: Logger called before
<code>SentrySDK.start</code> becomes unusable (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5984">#5984</a>)</li>
<li>Add masking for AVPlayerView (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5910">#5910</a>)</li>
<li>Fix missing view hierachy when enabling
<code>attachScreenshot</code> too (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5989">#5989</a>)</li>
<li>Fix macOS's frameworks not following the versioned framework
structure (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6049">#6049</a>)</li>
<li>Add warning to addBreadcrumb when used before SDK init (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6083">#6083</a>)</li>
<li>Add null-handling for parsed DSN in SentryHTTPTransport (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5800">#5800</a>)</li>
<li>Fix crash in Session Replay when opening the camera UI on iOS 26+ by
skipping redaction of internal views.
This may result in more of the camera screen being redacted. (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6045">#6045</a>)</li>
<li>Fix crash in SentryDependencyContainer init when using the SDK as a
static framework (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6125">#6125</a>)</li>
<li>Fixes a React Native legacy build failure by adding the missing self
references for explicit capture semantics (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6156">#6156</a>)</li>
</ul>
<h2>8.56.0-alpha.3</h2>
<h3>Features</h3>
<ul>
<li>Structured Logs: Flush logs on SDK flush/close (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5834">#5834</a>)</li>
<li>Add masking options for screenshots (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5401">#5401</a>)</li>
<li>Add significant time change breadcrumb (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6112">#6112</a>)</li>
<li>Add support for iOS 26, macOS 26, visionOS 26, watchOS 26, and tvOS
26 in device tests (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6063">#6063</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Don't capture replays for events dropped in <code>beforeSend</code>
(<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5916">#5916</a>)</li>
<li>Fix linking with SentrySwiftUI on Xcode 26 for visionOS (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/5823">#5823</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3365d74b0a"><code>3365d74</code></a>
chore: Add changes from alpha releases to v8.56.0 changelog (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6166">#6166</a>)</li>
<li><a
href="5542c69989"><code>5542c69</code></a>
release: 8.56.0</li>
<li><a
href="c30e40105c"><code>c30e401</code></a>
feat: Make Sentry-WithoutUIKitOrAppKit available with SPM (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6160">#6160</a>)</li>
<li><a
href="5ae9ff1e4f"><code>5ae9ff1</code></a>
ref: Remove unused memory pressure typdef (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6152">#6152</a>)</li>
<li><a
href="8745cc0ff5"><code>8745cc0</code></a>
ref: Convert <code>SentryCrashWrapper</code> to Swift (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6047">#6047</a>)</li>
<li><a
href="c1f202e16b"><code>c1f202e</code></a>
Merge branch 'release/8.56.0-alpha.3'</li>
<li><a
href="fad8f23d7a"><code>fad8f23</code></a>
release: 8.56.0-alpha.3</li>
<li><a
href="5cbd333fee"><code>5cbd333</code></a>
chore(ci): React-Native: Adds missing self to make capture semantics
explicit...</li>
<li><a
href="89e74bc125"><code>89e74bc</code></a>
Merge branch 'release/8.56.0-alpha.2'</li>
<li><a
href="36b80343ab"><code>36b8034</code></a>
chore: Fix changelog (<a
href="https://redirect.github.com/getsentry/sentry-cocoa/issues/6154">#6154</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-cocoa/compare/8.55.1...8.56.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 14:02:21 +00:00
dependabot[bot]
3c167cb60d build(deps-dev): bump eslint-config-next from 15.3.3 to 15.5.3 in /website (#10637)
Bumps
[eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)
from 15.3.3 to 15.5.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">eslint-config-next's
releases</a>.</em></p>
<blockquote>
<h2>v15.5.3</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: validation return types of pages API routes (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83069">#83069</a>)</li>
<li>fix: relative paths in dev in validator.ts (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83073">#83073</a>)</li>
<li>fix: remove satisfies keyword from type validation to preserve old
TS compatibility (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83071">#83071</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/bgub"><code>@​bgub</code></a> for helping!</p>
<h2>v15.5.1-canary.39</h2>
<h3>Core Changes</h3>
<ul>
<li>[metadata] change the metadata routes params to promises: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83560">#83560</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/huozhi"><code>@​huozhi</code></a> for
helping!</p>
<h2>v15.5.1-canary.38</h2>
<h3>Core Changes</h3>
<ul>
<li>Ignore unhandledRejection events for promises that reject after a
React render aborts: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83590">#83590</a></li>
<li>Update font data: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83631">#83631</a></li>
<li>[dev] Serve static metadata from filesystem: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83460">#83460</a></li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li>Turbopack: run NFT unit test: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83233">#83233</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/gnoff"><code>@​gnoff</code></a>, <a
href="https://github.com/vercel-release-bot"><code>@​vercel-release-bot</code></a>,
<a
href="https://github.com/devjiwonchoi"><code>@​devjiwonchoi</code></a>,
and <a href="https://github.com/mischnic"><code>@​mischnic</code></a>
for helping!</p>
<h2>v15.5.1-canary.37</h2>
<h3>Core Changes</h3>
<ul>
<li>Development: Make 'ready in' 195ms faster: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/83628">#83628</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/timneutkens"><code>@​timneutkens</code></a> for
helping!</p>
<h2>v15.5.1-canary.36</h2>
<h3>Core Changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="07d1cbc9c6"><code>07d1cbc</code></a>
v15.5.3</li>
<li><a
href="497ec6aa08"><code>497ec6a</code></a>
v15.5.2</li>
<li><a
href="cc68ced552"><code>cc68ced</code></a>
v15.5.1</li>
<li><a
href="7e08c8223d"><code>7e08c82</code></a>
v15.5.0</li>
<li><a
href="8f6d345d2d"><code>8f6d345</code></a>
v15.4.2-canary.56</li>
<li><a
href="e3e21977ed"><code>e3e2197</code></a>
v15.4.2-canary.55</li>
<li><a
href="a745826b2c"><code>a745826</code></a>
v15.4.2-canary.54</li>
<li><a
href="bec38efdb6"><code>bec38ef</code></a>
v15.4.2-canary.53</li>
<li><a
href="97dbf5f2e1"><code>97dbf5f</code></a>
v15.4.2-canary.52</li>
<li><a
href="9934b3788a"><code>9934b37</code></a>
v15.4.2-canary.51</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/commits/v15.5.3/packages/eslint-config-next">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 14:02:03 +00:00
dependabot[bot]
c089930f1b build(deps): bump framer-motion from 12.23.12 to 12.23.18 in /website (#10630)
Bumps [framer-motion](https://github.com/motiondivision/motion) from
12.23.12 to 12.23.18.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/motiondivision/motion/blob/main/CHANGELOG.md">framer-motion's
changelog</a>.</em></p>
<blockquote>
<h2>[12.23.18] 2025-09-19</h2>
<h3>Fixed</h3>
<ul>
<li><code>&lt;motion /&gt;</code> components now support changing
<code>ref</code> prop.</li>
</ul>
<h2>[12.23.17] 2025-09-19</h2>
<h3>Fixed</h3>
<ul>
<li>Ensure <code>animate()</code> <code>onComplete</code> only fires
once, when all values are complete.</li>
</ul>
<h2>[12.23.16] 2025-09-19</h2>
<h3>Fixed</h3>
<ul>
<li>Fixing <code>ref</code> when passed to a child of
<code>AnimatePresence</code> in <code>&quot;popLayout&quot;</code>
mode.</li>
</ul>
<h2>[12.23.15] 2025-09-18</h2>
<h3>Fixed</h3>
<ul>
<li>Fixing <code>export *</code> error in RSC.</li>
</ul>
<h2>[12.23.14] 2025-09-17</h2>
<h3>Fixed</h3>
<ul>
<li>Fixing types of <code>Reorder.Item</code> and
<code>Reorder.Group</code> so incorrect HTML props are correctly
flagged.</li>
<li>Reverting rehydration of <code>externalRef</code> when it
switches.</li>
</ul>
<h2>[12.23.13] 2025-09-16</h2>
<h3>Fixed</h3>
<ul>
<li>Fixed issue where motion components don't update refs when
externalRef changes. The <code>useMotionRef</code> function now properly
includes <code>externalRef</code> in the dependency array to ensure ref
callbacks update when the external ref changes.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Stopped tracking yarn cache in the repo.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ffe5182684"><code>ffe5182</code></a>
v12.23.18</li>
<li><a
href="b4f71424c0"><code>b4f7142</code></a>
Adding changelog csv script</li>
<li><a
href="4c3cc17b37"><code>4c3cc17</code></a>
Merge pull request <a
href="https://redirect.github.com/motiondivision/motion/issues/3374">#3374</a>
from motiondivision/fix/handle-external-ref</li>
<li><a
href="1800f34159"><code>1800f34</code></a>
Fixing changed external ref</li>
<li><a
href="7d11517d3a"><code>7d11517</code></a>
v12.23.17</li>
<li><a
href="b2e348812f"><code>b2e3488</code></a>
Updating changelog</li>
<li><a
href="990686d31c"><code>990686d</code></a>
Refactor</li>
<li><a
href="9182d2c5dd"><code>9182d2c</code></a>
Merge pull request <a
href="https://redirect.github.com/motiondivision/motion/issues/3343">#3343</a>
from rortan134/fix-3337</li>
<li><a
href="063d9b1158"><code>063d9b1</code></a>
Merge branch 'main' into fix-3337</li>
<li><a
href="13129dad58"><code>13129da</code></a>
v12.23.16</li>
<li>Additional commits viewable in <a
href="https://github.com/motiondivision/motion/compare/v12.23.12...v12.23.18">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 13:55:08 +00:00
dependabot[bot]
e24f8cea3b build(deps): bump @types/node from 24.3.0 to 24.5.2 in /website (#10628)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 24.3.0 to 24.5.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 13:08:47 +00:00
dependabot[bot]
32a00647cf build(deps): bump @next/mdx from 15.3.3 to 15.5.3 in /website (#10625)
Bumps
[@next/mdx](https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx)
from 15.3.3 to 15.5.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases"><code>@​next/mdx</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v15.5.3</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: validation return types of pages API routes (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83069">#83069</a>)</li>
<li>fix: relative paths in dev in validator.ts (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83073">#83073</a>)</li>
<li>fix: remove satisfies keyword from type validation to preserve old
TS compatibility (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83071">#83071</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/bgub"><code>@​bgub</code></a> for helping!</p>
<h2>v15.5.1-canary.39</h2>
<h3>Core Changes</h3>
<ul>
<li>[metadata] change the metadata routes params to promises: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83560">#83560</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/huozhi"><code>@​huozhi</code></a> for
helping!</p>
<h2>v15.5.1-canary.38</h2>
<h3>Core Changes</h3>
<ul>
<li>Ignore unhandledRejection events for promises that reject after a
React render aborts: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83590">#83590</a></li>
<li>Update font data: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83631">#83631</a></li>
<li>[dev] Serve static metadata from filesystem: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83460">#83460</a></li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li>Turbopack: run NFT unit test: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83233">#83233</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/gnoff"><code>@​gnoff</code></a>, <a
href="https://github.com/vercel-release-bot"><code>@​vercel-release-bot</code></a>,
<a
href="https://github.com/devjiwonchoi"><code>@​devjiwonchoi</code></a>,
and <a href="https://github.com/mischnic"><code>@​mischnic</code></a>
for helping!</p>
<h2>v15.5.1-canary.37</h2>
<h3>Core Changes</h3>
<ul>
<li>Development: Make 'ready in' 195ms faster: <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/next-mdx/issues/83628">#83628</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/timneutkens"><code>@​timneutkens</code></a> for
helping!</p>
<h2>v15.5.1-canary.36</h2>
<h3>Core Changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="07d1cbc9c6"><code>07d1cbc</code></a>
v15.5.3</li>
<li><a
href="497ec6aa08"><code>497ec6a</code></a>
v15.5.2</li>
<li><a
href="cc68ced552"><code>cc68ced</code></a>
v15.5.1</li>
<li><a
href="7e08c8223d"><code>7e08c82</code></a>
v15.5.0</li>
<li><a
href="8f6d345d2d"><code>8f6d345</code></a>
v15.4.2-canary.56</li>
<li><a
href="e3e21977ed"><code>e3e2197</code></a>
v15.4.2-canary.55</li>
<li><a
href="a745826b2c"><code>a745826</code></a>
v15.4.2-canary.54</li>
<li><a
href="bec38efdb6"><code>bec38ef</code></a>
v15.4.2-canary.53</li>
<li><a
href="97dbf5f2e1"><code>97dbf5f</code></a>
v15.4.2-canary.52</li>
<li><a
href="9934b3788a"><code>9934b37</code></a>
v15.4.2-canary.51</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/commits/v15.5.3/packages/next-mdx">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 12:46:03 +00:00
Thomas Eizinger
0e48d27b5a feat(ffi): make all calls infallible (#10621)
In the spirit of making Firezone as robust as possible, we make the FFI
calls infallible and complete as much of the task as possible. For
example, we don't fail `setDns` entirely just because we cannot parse a
single DNS server's IP.

Resolves: #10611
2025-10-20 01:03:26 +00:00
Thomas Eizinger
fcda9c3b65 chore(connlib): add unit test for site-name change (#10622)
Turns out name changes of sites are already ignored as per the
`PartialEq` implementation of `Site`. This adds a unit-test to assert
that.
2025-10-19 23:57:45 +00:00
Thomas Eizinger
fdd05e0e0f chore(connlib): remove stale comments (#10617)
These comments are no longer correct and need to be removed before the
confuse someone.
2025-10-19 12:04:42 +00:00
Jamil
8cd469a9a9 refactor(portal): recreate remaining indexes without deleted_at (#10615)
Followup to #10607
2025-10-18 11:09:44 -07:00
Brian Manifold
27565ea5c8 refactor(portal): remove soft delete elements from portal code (#10607)
Why:

* In previous commits, the portal code had been updated to use hard
deletion rather than soft deletion of data. The fields used in the soft
deletion were still kept in the DB and the code to allow for zero
downtime rollout and an easy rollback if necessary. To continue with
that work the portal code has now been updated to remove any reference
to the soft deleted fields (e.g. deleted_at, persistent_id, etc...).
While the code has been updated the actual data in the DB will need to
remain for now, to once again allow for a zero downtime rollout. Once
this commit has been deployed to production another PR can follow to
remove the columns from the necessary tables in the DB.


Related: #8187
2025-10-18 17:02:26 +00:00
Firezone Bot
9b6ebb01ed chore: publish android-client 1.5.5 (#10614) 2025-10-18 16:54:35 +00:00
Thomas Eizinger
0dd7792428 refactor(swift): revise event-loop (#10573)
This is a follow-up from #10368 where we revise the forwarding logic in
`runSessionEventLoop`. Redundant logs are removed and the only exit
conditions from the event-loop are now the closing of either the event
or the command stream. The event-stream will only close once `connlib`
has successfully shut down and the command stream will only close of the
adapter shuts down (and thus drops the sender-side of the channel).
2025-10-17 19:39:46 +00:00
Thomas Eizinger
a07dfc9869 test(connlib): workaround DNS cache in proptests (#10602)
With the introduction of the DNS cache for Clients in #10533, we now
enable a behaviour where we don't necessarily need to establish a
connection to a Gateway to resolve a DNS query if we still have a valid
entry in the DNS cache. In particular, the proptests discovered that:

- a DNS query for an upstream resolver
- which happens to be a resource
- and has a valid entry in the DNS cache
- but (no longer) a connection to the corresponding Gateway

will now serve the cached DNS records instead of establishing a new
connection to the Gateway. As a result, the site status which we assert
in the proptests remains in "unknown" instead of the expected "online".

Modelling the caching behaviour in the tests is rather tedious. To avoid
that, we set the TTL of all simulated upstream DNS responses to 1 which
effectively bypasses the cache. Whilst not an ideal solution, it ensures
that CI is consistently green without flaky tests. The DNS cache itself
is already unit-tested.
2025-10-17 16:17:52 +00:00
Jamil
97895c499a fix(apple): call completionHandler only after initialized (#10606)
Apple's [docs
state](https://developer.apple.com/documentation/networkextension/nepackettunnelprovider/starttunnel(options:completionhandler:)#Discussion)
that we should only call the PacketTunnelProvider's `completionHandler`
once the tunnel is ready to route packets. Calling it prematurely, while
shouldn't cause packets to get routed to us (we haven't added the routes
yet), will however cause the system to think our VPN is "online", which
disconnects other VPNs and communicates to the user Firezone is
"connected".

If the portal is then slow to send us the init, we will be stuck in this
quasi-connected state for more than a brief moment of time.

To fix this, we thread `completionHandler` through to `Adapter` and call
this if we are configuring the tun interface for the first time. This
way, we remain in the `connecting` state until the tunnel is fully
configured.
2025-10-17 15:53:26 +00:00
Jamil
fbade40e66 fix(apple): don't return Data() to fetchResources (#10605)
When the tunnel first comes up, the first call to `fetchResources` was
returning an empty `Data()` instance that the receiver would fail to
decode properly because it assumes if a `Data` is non-nil, it is a list
of Resources.

This resulted in a decode error each time the tunnel was started.

Related:
https://github.com/firezone/firezone/pull/10603#discussion_r2438472011

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-17 08:50:44 -07:00
Jamil
73576922ff fix(apple/macos): clean up utun on quit (#10603)
On macOS, because it uses the System Extension packaging type, the
lifecycle of the tunnel provider process is not tied directly to
connlib's session start and end, but rather managed by the system. The
process is likely running at all times, even when the GUI is not open or
signed in.

The system will start the provider process upon the first IPC call to
it, which allocates a `utun` interface. The tricky part is ensuring this
interface gets removed when the GUI app quits. Otherwise, it's likely
that upon the next launch of the GUI app, the system will allocate a
_new_ utun interface, and the old one will linger until the next system
reboot.

Here's where things get strange. The system will only remove the `utun`
interface when stopping the tunnel under the following conditions:

- The provider is currently not in a `disconnected` state (so it needs
to be in `reasserting`, `connecting`, or `connected`
- The GUI side has called `stopTunnel`, thereby invoking the provider's
`stopTunnel` override function, or
- The provider side has called `cancelTunnelWithError`, or
- The `startTunnel`'s completionHandler is called with an `Error`

The problem we had is that we make various IPC calls throughout the
lifecycle of the GUI app, for example, to gather logs, set tunnel
configuration, and the like. If the GUI app was _not_ in a connected
state when the user quit, the `utun` would linger, even though we were
issuing a final `stopTunnel` upon quit in all circumstances.

To fix the issue, we update the dry run `startTunnel` code path we added
previously in two ways:

1. We add a `dryRun` error type to the `startTunnel`'s completionHandler
2. We implement the GUI app `applicationShouldTerminate` handler in
order to trigger one final dryRun which briefly moves the provider to a
connected state so the system will clean us up when its
completionHandler is invoked.


Tested under the following conditions:

- Launch app in a signed-out state -> quit
- Launch app in a signed-out state -> sign in -> quit
- Launch app in a signed-out state -> sign in -> sign out -> quit
- Launch app in a signed-in state -> quit
- Launch app in a signed-in state -> sign out -> quit

Notably, if the GUI app is killed with `SIGKILL`, our terminate hook is
_not_ called, and the utun lingers. We'll have to accept this edge case
for now.

Along with the above, the janky `consumeStopReason` mechanism has been
removed in favor of NE's `cancelTunnelWithError` to pass the error back
to the GUI we can then use to show the signed out alert.


Fixes #10580
2025-10-17 15:12:29 +00:00
Thomas Eizinger
928d8a2512 fix(connlib): handle resources changing site (#10604)
Similar to how resources can be edited to change their address, IP stack
or other properties, they can also be moved between different sites.
Currently, `connlib` requires the portal to explicitly remove the
resource and then re-add it for this to work.

Our system gets more robust if we also detect that the sites of a
resource have changed and handle it like other addressability changes.

To ensure that this works correctly, we also extend the proptests to
simulate addressability changes of resources.

Resolves: #9881
Related: #10593
2025-10-17 14:52:14 +00:00
Thomas Eizinger
fba904d570 chore(apple): always build client-ffi on debug (#10601)
Incorporating feedback from Copilot in #10600.
2025-10-17 02:43:05 +00:00
Thomas Eizinger
b70865564d chore(apple): allow generating UniFFI bindings on Linux (#10600)
To generate the UniFFI bindings, we don't actually need to be on an
Apple device. To make cross-platform development a bit easier, we
extract the binding generation step into the Makefile.
2025-10-17 01:49:33 +00:00
Jamil
8a6f60a2ec build(deps): bump react from 18 to 19 (#10595)
Bumps the react family from 18 to 19 and fixes one type issue.

Supersedes #10081
2025-10-16 22:17:52 +00:00
Jamil
8ff29c52a3 chore(android): bump firebase-bom from 33.16.0 to 34.4.0 (#10596)
Bumps the firebase-bom from 33.16.0 to 34.4.0 and fixes an issue due to
some of the bundled libraries changing. Namely, all of the `ktx`
libraries (representing Kotlin versions) have been included in the core
libraries and `ktx` is no longer a thing.

Supersedes #10558

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2025-10-16 20:44:09 +00:00
Thomas Eizinger
7e5ec7c2d7 ci: upload .deb from releases to APT repository (#10587)
This PR creates the necessary CI infrastructure to copy `.deb` packages
from releases to our APT repository. Re-generation of the index is
separated out into a dedicated workflow to avoid concurrency issues and
so we can re-generate it without making a release.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-16 19:39:35 +00:00
Mariusz Klochowicz
a27676a903 fix(portal): support dark mode in outbound emails (#10493)
Ensure that users with dark mode enabled system-wide get nice experience
whilst reading the emails.

Add a `mix test_emails` task to send all the emails and quickly inspect
them locally.

Before:

<img width="767" height="924" alt="image"
src="https://github.com/user-attachments/assets/aaac75bd-67ad-4fd8-82e8-6726ffea6bae"
/>


After (viewed via `mix test_emails`):

<img width="1063" height="928" alt="image"
src="https://github.com/user-attachments/assets/57d3a4d9-5b8f-4a45-8546-7615e15422d8"
/>

---------

Signed-off-by: Mariusz Klochowicz <mariusz@klochowicz.com>
Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com>
2025-10-16 19:35:36 +00:00
Jamil
bf91021e2e docs: update POP map and relay ips for azure (#10293)
Updates our list of potential Relay IPs and the regional map diagram for
customer reference.
2025-10-16 18:31:09 +00:00
Jamil
79a4aeb3a8 chore(website): add eslint (#9560)
- [x] Add eslint configured for NextJS
- [x] Add lint before build
- [x] Fix errors
2025-10-16 16:39:16 +00:00
Jamil
be3ec74cdb chore(website): remove /dev.firezone.firezone.plist (#10594)
This seems to have been added mistakenly in #9233 and can be removed.
2025-10-16 15:38:04 +00:00
Jamil
4d43d2cb77 fix(portal): trigger email for Okta 4xx errors (#10578)
When Okta returned a 4xx status code from the API, we had updated error
handler to grab the errors from body or headers and return these.

However, the caller was expecting an explicit empty string for 401 and
403 errors in order to trigger the email send behavior.

Since that wasn't being matched, we were logging the error internally
only, and continuing to retry the sync indefinitely without sending the
user an email.


Fixes #8744 
Fixes #9825
2025-10-16 15:10:04 +00:00
Jamil
e81b4dbdac build(deps): bump floki from 0.37.1 to 0.38.0 in /elixir (#10585)
Bumps floki and updates calls to `Floki.find` and `Floki.attribute` to
use the new API.

Supersedes #9758
2025-10-16 15:09:50 +00:00
Thomas Eizinger
6b3f2a32ce feat(gateway): associate packets with resource ID (#10588)
In order to support flow logs, we need to associate each IP packet that
gets routed with its corresponding resource ID. Currently, we only track
what is necessary for the actual routing behaviour: The IP addresses and
the filters. Therefore, we extend the data structures in `peer` to also
track the `ResourceId` now.

The entire code within `peer` became a bit hard to manage so I took this
opportunity to split it out into two dedicated modules.

This PR forms the base for recording flows logs in #10576.
2025-10-16 13:53:53 +00:00
Thomas Eizinger
17ab1a6d04 ci: remove jitter from docker-compose (#10589)
Jitter causes packets to get re-ordered which makes it really hard to
get predictable performance results. With jitter disabled, we get more
consistent performance numbers.
2025-10-16 13:34:59 +00:00
Firezone Bot
5272e0c992 chore: publish headless-client 1.5.4 (#10590) 2025-10-16 09:15:32 +00:00
Firezone Bot
f78cccea1b chore: publish gui-client 1.5.8 (#10591) 2025-10-16 08:47:35 +00:00
Jamil
37472fee49 build(deps): Bump nodejs to 22 (#10586)
Bumps node from the now-unsupported 20 LTS to the currently active 22
LTS which fixes a few compile warnings for the website.
2025-10-16 08:01:59 +00:00
Firezone Bot
e3bb2fb931 chore: publish gateway 1.4.17 (#10584) 2025-10-16 05:38:12 +00:00
Thomas Eizinger
d35cf445d4 fix(linux): don't sync link-scope routes of offline interfaces (#10583)
In #10554, we added a syncing mechanism that would copy all link-scoped
routes of the `main` routing table over to the Firezone routing table.
Routes for interfaces that are currently offline cannot be added and
cause a netlink error of "Invalid argument".

To prevent unnecessary warnings from being logged to Sentry, we retrieve
the link state of each interface and skip routes for interfaces are not
online.
2025-10-16 05:34:10 +00:00
Mariusz Klochowicz
e76daaaab3 refactor: remove JSON serialization from FFI boundary (#10575)
This PR eliminates JSON-based communication across the FFI boundary,
replacing it with proper
uniffi-generated types for improved type safety, performance, and
reliability. We replace JSON string parameters with native uniffi types
for:
 - Resources (DNS, CIDR, Internet)
 - Device information
 - DNS server lists
 - Network routes (CIDR representation)
 
Also, get rid of JSON serialisation in Swift client IPC in favour of
PropertyList based serialisation.
 
 Fixes: https://github.com/firezone/firezone/issues/9548

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-10-16 05:15:31 +00:00
Mariusz Klochowicz
97f3979fa6 fix(apple): Explicitly hide network extension from the UI (#10581)
Apparently if we set the CFBundleDisplayName we hint by default that
we *do* want to show it on newer macOS versions.

This seems to have been uncovered by Xcode 26 build recently.

Fixes #10579
2025-10-16 03:42:10 +00:00
Jamil
ad69864e41 chore(ci): use bin/ prefix for binary artifacts (#10582)
We'll be using a consistent `artifacts` storage account for these built
binaries, so we've renamed the container to `binaries`.

The apt packages would be under the `apt` container at
`artifacts.firezone.dev/apt/` accordingly.

Related: firezone/infra#182
2025-10-16 02:30:27 +00:00
dependabot[bot]
e30583de37 build(deps): bump react-syntax-highlighter from 15.6.1 to 15.6.6 in /website (#10555)
Bumps
[react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter)
from 15.6.1 to 15.6.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/releases">react-syntax-highlighter's
releases</a>.</em></p>
<blockquote>
<h2>v15.6.6</h2>
<p>Updated <code>overrides</code> block attempting to solve transitive
<code>prismjs</code> dependency issue:</p>
<pre><code>&quot;overrides&quot;: {
    &quot;prismjs&quot;: &quot;^1.30.0&quot;,
    &quot;refractor&quot;: {
      &quot;prismjs&quot;: &quot;^1.30.0&quot;
    }
  }
</code></pre>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.5...v15.6.6">https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.5...v15.6.6</a></p>
<h2>v15.6.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump elliptic from 6.5.5 to 6.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/576">react-syntax-highlighter/react-syntax-highlighter#576</a></li>
<li>Bump ws from 6.2.2 to 6.2.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/574">react-syntax-highlighter/react-syntax-highlighter#574</a></li>
<li>Bump express from 4.19.2 to 4.21.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/572">react-syntax-highlighter/react-syntax-highlighter#572</a></li>
<li>Bump send and express by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/571">react-syntax-highlighter/react-syntax-highlighter#571</a></li>
<li>Bump cookie and express by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/570">react-syntax-highlighter/react-syntax-highlighter#570</a></li>
<li>Bump serve-static and express by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/569">react-syntax-highlighter/react-syntax-highlighter#569</a></li>
<li>Bump body-parser and express by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/568">react-syntax-highlighter/react-syntax-highlighter#568</a></li>
<li>Add Boemly to the built with section of the readme by <a
href="https://github.com/lukasbals"><code>@​lukasbals</code></a> in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/467">react-syntax-highlighter/react-syntax-highlighter#467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lukasbals"><code>@​lukasbals</code></a>
made their first contribution in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/467">react-syntax-highlighter/react-syntax-highlighter#467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.4...v15.6.5">https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.4...v15.6.5</a></p>
<h2>v15.6.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Override <code>refractor 3.6.0</code>'s <code>prismjs</code>
dependency by <a
href="https://github.com/simmerer"><code>@​simmerer</code></a> in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/605">react-syntax-highlighter/react-syntax-highlighter#605</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.3...v15.6.4">https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.3...v15.6.4</a></p>
<h2>v15.6.3</h2>
<h2>What's Changed</h2>
<ul>
<li>fix line count error by <a
href="https://github.com/bbbert"><code>@​bbbert</code></a> in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/583">react-syntax-highlighter/react-syntax-highlighter#583</a></li>
<li>fix spelling error by <a
href="https://github.com/BrianHung"><code>@​BrianHung</code></a> in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/579">react-syntax-highlighter/react-syntax-highlighter#579</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/bbbert"><code>@​bbbert</code></a> made
their first contribution in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/583">react-syntax-highlighter/react-syntax-highlighter#583</a></li>
<li><a href="https://github.com/BrianHung"><code>@​BrianHung</code></a>
made their first contribution in <a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/pull/579">react-syntax-highlighter/react-syntax-highlighter#579</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.2...v15.6.3">https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.2...v15.6.3</a></p>
<h2>v15.6.2</h2>
<h2>What's Changed</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/blob/master/CHANGELOG.MD">react-syntax-highlighter's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="56a1b0f779"><code>56a1b0f</code></a>
add top-level override for prismjs, bump to 15.6.6</li>
<li><a
href="a169285045"><code>a169285</code></a>
bump to 15.6.5</li>
<li><a
href="5d507f0a97"><code>5d507f0</code></a>
Add Boemly to the built with section of the readme (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/467">#467</a>)</li>
<li><a
href="0bda76915b"><code>0bda769</code></a>
Bump body-parser and express (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/568">#568</a>)</li>
<li><a
href="9fb3f732fc"><code>9fb3f73</code></a>
Bump serve-static and express (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/569">#569</a>)</li>
<li><a
href="5f0dbfcc3c"><code>5f0dbfc</code></a>
Bump cookie and express (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/570">#570</a>)</li>
<li><a
href="53e66073ca"><code>53e6607</code></a>
Bump send and express (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/571">#571</a>)</li>
<li><a
href="130c9c322b"><code>130c9c3</code></a>
Bump express from 4.19.2 to 4.21.1 (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/572">#572</a>)</li>
<li><a
href="93825906ee"><code>9382590</code></a>
Bump ws from 6.2.2 to 6.2.3 (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/574">#574</a>)</li>
<li><a
href="7ecf60606a"><code>7ecf606</code></a>
Bump elliptic from 6.5.5 to 6.6.0 (<a
href="https://redirect.github.com/react-syntax-highlighter/react-syntax-highlighter/issues/576">#576</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/react-syntax-highlighter/react-syntax-highlighter/compare/v15.6.1...v15.6.6">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-15 15:31:31 +00:00