mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
88cda1c6ad2e5dfd0fe400f4183f896e32ec320d
2433 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
88cda1c6ad |
fix(telemetry): negate filters for spammy events (#9469)
Boolean logic is hard. Instead of filtering _out_ these spammy events on a certain level, we accidentally configured the `SentryLayer` such that only events on level ERROR would be sent to Sentry. To fix this, we rewrite the filter such that it is phrased in an affirmative manner, i.e. it only allows an event if it matches all of the given criteria. This filter this then applied in a **negated** way, i.e. we don't want to see events that match these criteria. Resolves: #9400 |
||
|
|
caafcbcf0b |
fix(gui-client): apply log directives from MDM config (#9443)
When introducing the MDM config, we took into account the log directives from the config when applying it via the GUI but failed to apply the new directives on startup. |
||
|
|
2eda6f5f74 |
build(deps): bump react-router from 7.6.1 to 7.6.2 in /rust/gui-client in the react group (#9448)
Bumps the react group in /rust/gui-client with 1 update: [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router). Updates `react-router` from 7.6.1 to 7.6.2 <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.2</h2> <h3>Patch Changes</h3> <ul> <li>Avoid additional <code>with-props</code> chunk in Framework Mode by moving route module component prop logic from the Vite plugin to <code>react-router</code> (<a href="https://redirect.github.com/remix-run/react-router/pull/13650">#13650</a>)</li> <li>[INTERNAL] Slight refactor of internal <code>headers()</code> function processing for use with RSC (<a href="https://redirect.github.com/remix-run/react-router/pull/13639">#13639</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c2118c4564 |
build(deps): bump derive_more from 1.0.0 to 2.0.1 in /rust (#9449)
Bumps [derive_more](https://github.com/JelteF/derive_more) from 1.0.0 to 2.0.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/releases">derive_more's releases</a>.</em></p> <blockquote> <h2>2.0.1</h2> <p><a href="https://docs.rs/derive_more/2.0.1">API docs</a> <a href="https://github.com/JelteF/derive_more/blob/v2.0.1/CHANGELOG.md#201---2025-02-03">Changelog</a></p> <h2>2.0.0 - The first release is never perfect</h2> <h2>Breaking changes</h2> <ul> <li><code>use derive_more::SomeTrait</code> now imports macro only. Importing macro with its trait along is possible now via <code>use derive_more::with_trait::SomeTrait</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/406">#406</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum now has defaulting behavior instead of replacing when no wrapping is possible (no <code>_variant</code> placeholder). (<a href="https://redirect.github.com/JelteF/derive_more/pull/395">#395</a>)</li> </ul> <h2>Fixed</h2> <ul> <li>Associated types of type parameters not being treated as generics in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/399">#399</a>)</li> <li><code>unreachable_code</code> warnings on generated code when <code>!</code> (never type) is used. (<a href="https://redirect.github.com/JelteF/derive_more/pull/404">#404</a>)</li> <li>Ambiguous associated item error when deriving <code>TryFrom</code>, <code>TryInto</code> or <code>FromStr</code> with an associated item called <code>Error</code> or <code>Err</code> respectively. (<a href="https://redirect.github.com/JelteF/derive_more/pull/410">#410</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum being incorrectly treated as transparent or wrapping. (<a href="https://redirect.github.com/JelteF/derive_more/pull/395">#395</a>)</li> <li>Omitted raw identifiers in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/431">#431</a>)</li> <li>Incorrect rendering of raw identifiers as field names in <code>Debug</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/431">#431</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum not working transparently for directly specified fields. (<a href="https://redirect.github.com/JelteF/derive_more/pull/438">#438</a>)</li> <li>Incorrect dereferencing of unsized fields in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/440">#440</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/bluurryy"><code>@bluurryy</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/410">JelteF/derive_more#410</a></li> <li><a href="https://github.com/minh-dng"><code>@minh-dng</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/423">JelteF/derive_more#423</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/JelteF/derive_more/compare/v1.0.0...v2.0.0">https://github.com/JelteF/derive_more/compare/v1.0.0...v2.0.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md">derive_more's changelog</a>.</em></p> <blockquote> <h2>2.0.1 - 2025-02-03</h2> <h3>Added</h3> <ul> <li>Add crate metadata for the Rust Playground. This makes sure that the Rust Playground will have all <code>derive_more</code> features available once <a href="https://docs.rs/selectors/latest/selectors"><code>selectors</code></a> crate updates its <code>derive_more</code> version. (<a href="https://redirect.github.com/JelteF/derive_more/pull/445">#445</a>)</li> </ul> <h2>2.0.0 - 2025-02-03</h2> <h3>Breaking changes</h3> <ul> <li><code>use derive_more::SomeTrait</code> now imports macro only. Importing macro with its trait along is possible now via <code>use derive_more::with_trait::SomeTrait</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/406">#406</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum now has defaulting behavior instead of replacing when no wrapping is possible (no <code>_variant</code> placeholder). (<a href="https://redirect.github.com/JelteF/derive_more/pull/395">#395</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Associated types of type parameters not being treated as generics in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/399">#399</a>)</li> <li><code>unreachable_code</code> warnings on generated code when <code>!</code> (never type) is used. (<a href="https://redirect.github.com/JelteF/derive_more/pull/404">#404</a>)</li> <li>Ambiguous associated item error when deriving <code>TryFrom</code>, <code>TryInto</code> or <code>FromStr</code> with an associated item called <code>Error</code> or <code>Err</code> respectively. (<a href="https://redirect.github.com/JelteF/derive_more/pull/410">#410</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum being incorrectly treated as transparent or wrapping. (<a href="https://redirect.github.com/JelteF/derive_more/pull/395">#395</a>)</li> <li>Omitted raw identifiers in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/431">#431</a>)</li> <li>Incorrect rendering of raw identifiers as field names in <code>Debug</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/431">#431</a>)</li> <li>Top-level <code>#[display("...")]</code> attribute on an enum not working transparently for directly specified fields. (<a href="https://redirect.github.com/JelteF/derive_more/pull/438">#438</a>)</li> <li>Incorrect dereferencing of unsized fields in <code>Debug</code> and <code>Display</code> expansions. (<a href="https://redirect.github.com/JelteF/derive_more/pull/440">#440</a>)</li> </ul> <h2>0.99.19 - 2025-02-03</h2> <ul> <li>Add crate metadata for the Rust Playground.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
641db5d85f |
build(deps): bump tracing-core from 0.1.33 to 0.1.34 in /rust (#9450)
Bumps [tracing-core](https://github.com/tokio-rs/tracing) from 0.1.33 to 0.1.34. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/tracing/releases">tracing-core's releases</a>.</em></p> <blockquote> <h2>tracing-core 0.1.34</h2> <h3>Changed</h3> <ul> <li>Bump MSRV to 1.65 (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3033">#3033</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Do not compare references to pointers to compare pointers (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3236">#3236</a>)</li> </ul> <p><a href="https://redirect.github.com/tokio-rs/tracing/issues/3033">#3033</a>: <a href="https://redirect.github.com/tokio-rs/tracing/pull/3033">tokio-rs/tracing#3033</a> <a href="https://redirect.github.com/tokio-rs/tracing/issues/3236">#3236</a>: <a href="https://redirect.github.com/tokio-rs/tracing/pull/3236">tokio-rs/tracing#3236</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
365bc51ea9 |
build(deps): bump sentry to v0.38.1 (#9357)
Unfortunately, this pulls in a lot of dependencies that aren't actually used due to a bug in `cargo`. See https://github.com/getsentry/sentry-rust/issues/804#issuecomment-2929627500. |
||
|
|
b79b5702f0 |
chore(gui-client): specify correct path to frontend (#9444)
When debugging logging is enabled, we see that Tauri currently iterates through several possible paths of the frontend page before it finds the one that it actually renders. We can fix this by specifying the URL without the directory path. ``` 2025-06-06T08:23:06.538Z DEBUG tauri::manager: Asset `src-frontend/index.html` not found; fallback to src-frontend/index.html.html 2025-06-06T08:23:06.538Z DEBUG tauri::manager: Asset `src-frontend/index.html` not found; fallback to src-frontend/index.html/index.html 2025-06-06T08:23:06.539Z DEBUG tauri::manager: Asset `src-frontend/index.html` not found; fallback to index.html 2025-06-06T08:23:06.566Z DEBUG firezone_gui_client::controller: Starting new instance of `Controller` ``` |
||
|
|
b0d594100d |
fix(gui-client): don't busy-loop when update checker is disabled (#9445)
The GUI client's update checker is a task that runs concurrently to the main event-loop of the client. When a new update is found, it sends a notification through a channel. When the update checker is disabled via MDM, this channel is instantly closed, resulting in `None` being read as part of the event-loop in the client. Previously, we would then return `Poll::Ready(EventloopTick::UpdateNotification(None))` and then simply ignore this event. This however is wrong. Returning `Poll::Ready` means that the future needs to be polled again, resulting in an effective busy-loop where we constantly emit the above event and then ignore it. Due to the priority order that was previously defined, this led to us never checking another channel: The one where we receive deep-links from 2nd GUI instances. As a result, signing into the client when the update checker was disabled does not work and instead, the newly launched instance hangs because it can never send over the deep-link. Resolves: #9420 |
||
|
|
822832e02b |
chore(macos): allow tauri to build on macOS (#9391)
When working on UI stuff for the Tauri clients on macOS it's helpful if the UI is buildable. This is a first stab at getting a stub client to launch on macOS with the help of our AI overlords. Feel free to close or heavily critique if there is a better approach. |
||
|
|
192e7e040e |
build(deps): bump @vitejs/plugin-react from 4.5.0 to 4.5.1 in /rust/gui-client (#9433)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.5.0 to 4.5.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/releases"><code>@vitejs/plugin-react</code>'s releases</a>.</em></p> <blockquote> <h2>plugin-react@4.5.1</h2> <h3>Add explicit semicolon in preambleCode <a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/485">#485</a></h3> <p>This fixes an edge case when using HTML minifiers that strips line breaks aggressively.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md"><code>@vitejs/plugin-react</code>'s changelog</a>.</em></p> <blockquote> <h2>4.5.1 (2025-06-03)</h2> <h3>Add explicit semicolon in preambleCode <a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/485">#485</a></h3> <p>This fixes an edge case when using HTML minifiers that strips line breaks aggressively.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ca2b8fa10c |
build(deps): bump @sentry/react from 9.24.0 to 9.27.0 in /rust/gui-client (#9432)
Bumps [@sentry/react](https://github.com/getsentry/sentry-javascript) from 9.24.0 to 9.27.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.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> <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.43 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.46 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay)</td> <td>74.68 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay) - with treeshaking flags</td> <td>67.94 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay with Canvas)</td> <td>79.33 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay, Feedback)</td> <td>91.13 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Feedback)</td> <td>39.77 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. sendFeedback)</td> <td>28.03 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. FeedbackAsync)</td> <td>32.8 KB</td> </tr> <tr> <td><code>@sentry/react</code></td> <td>25.15 KB</td> </tr> <tr> <td><code>@sentry/react</code> (incl. Tracing)</td> <td>39.41 KB</td> </tr> <tr> <td><code>@sentry/vue</code></td> <td>27.69 KB</td> </tr> <tr> <td><code>@sentry/vue</code> (incl. Tracing)</td> <td>39.27 KB</td> </tr> <tr> <td><code>@sentry/svelte</code></td> <td>23.45 KB</td> </tr> <tr> <td>CDN Bundle</td> <td>24.88 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing)</td> <td>37.63 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay)</td> <td>72.66 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback)</td> <td>77.99 KB</td> </tr> <tr> <td>CDN Bundle - uncompressed</td> <td>72.67 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing) - uncompressed</td> <td>111.42 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td> <td>222.72 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td> <td>235.25 KB</td> </tr> <tr> <td><code>@sentry/nextjs</code> (client)</td> <td>41.03 KB</td> </tr> <tr> <td><code>@sentry/sveltekit</code> (client)</td> <td>37.93 KB</td> </tr> <tr> <td><code>@sentry/node</code></td> <td>146.75 KB</td> </tr> <tr> <td><code>@sentry/node</code> - without tracing</td> <td>96.03 KB</td> </tr> <tr> <td><code>@sentry/aws-serverless</code></td> <td>121.19 KB</td> </tr> </tbody> </table> <h2>9.26.0</h2> <ul> <li>feat(react-router): Re-export functions from <code>@sentry/react</code> (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16465">#16465</a>)</li> <li>fix(nextjs): Skip re instrumentating on generate phase of experimental build mode (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16410">#16410</a>)</li> <li>fix(node): Ensure adding sentry-trace and baggage headers via SentryHttpInstrumentation doesn't crash (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16473">#16473</a>)</li> </ul> <h2>Bundle size 📦</h2> <table> <thead> <tr> <th>Path</th> <th>Size</th> </tr> </thead> </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.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> <h2>9.26.0</h2> <ul> <li>feat(react-router): Re-export functions from <code>@sentry/react</code> (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16465">#16465</a>)</li> <li>fix(nextjs): Skip re instrumentating on generate phase of experimental build mode (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16410">#16410</a>)</li> <li>fix(node): Ensure adding sentry-trace and baggage headers via SentryHttpInstrumentation doesn't crash (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16473">#16473</a>)</li> </ul> <h2>9.25.1</h2> <ul> <li>fix(otel): Don't ignore child spans after the root is sent (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16416">#16416</a>)</li> </ul> <h2>9.25.0</h2> <h3>Important Changes</h3> <ul> <li><strong>feat(browser): Add option to ignore <code>mark</code> and <code>measure</code> spans (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16443">#16443</a>)</strong></li> </ul> <p>This release adds an option to <code>browserTracingIntegration</code> that lets you ignore <code>mark</code> and <code>measure</code> spans created from the <code>performance.mark(...)</code> and <code>performance.measure(...)</code> browser APIs:</p> <pre lang="js"><code>Sentry.init({ integrations: [ Sentry.browserTracingIntegration({ ignorePerformanceApiSpans: ['measure-to-ignore', /mark-to-ignore/], }), ], }); </code></pre> <h3>Other Changes</h3> <ul> <li>feat(browser): Export getTraceData from the browser sdks (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16433">#16433</a>)</li> <li>feat(node): Add <code>includeServerName</code> option (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16442">#16442</a>)</li> <li>fix(nuxt): Remove setting <code>@sentry/nuxt</code> external (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16444">#16444</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
56c57086eb |
build(deps): bump reqwest from 0.12.18 to 0.12.19 in /rust (#9438)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.18 to 0.12.19. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/seanmonstar/reqwest/releases">reqwest's releases</a>.</em></p> <blockquote> <h2>v0.12.19</h2> <h2>What's Changed</h2> <ul> <li>refactor: report custom reason phrase in error message by <a href="https://github.com/chanbengz"><code>@chanbengz</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2697">seanmonstar/reqwest#2697</a></li> <li>fix: only check scheme after Policy return <code>follow</code> by <a href="https://github.com/linyihai"><code>@linyihai</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2710">seanmonstar/reqwest#2710</a></li> <li>ci: check cookies feature on wasm target by <a href="https://github.com/seanmonstar"><code>@seanmonstar</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2711">seanmonstar/reqwest#2711</a></li> <li>fix(redirect): Using <code>tower-http</code> patch to fix invalid <code>content-length</code> header by <a href="https://github.com/linyihai"><code>@linyihai</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2709">seanmonstar/reqwest#2709</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/seanmonstar/reqwest/compare/v0.12.18...v0.12.19">https://github.com/seanmonstar/reqwest/compare/v0.12.18...v0.12.19</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md">reqwest's changelog</a>.</em></p> <blockquote> <h2>v0.12.19</h2> <ul> <li>Fix redirect that changes the method to GET should remove payload headers.</li> <li>Fix redirect to only check the next scheme if the policy action is to follow.</li> <li>(wasm) Fix compilation error if <code>cookies</code> feature is enabled (by the way, it's a noop feature in wasm).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
30991327bc |
build(deps): bump @types/react-dom from 19.1.5 to 19.1.6 in /rust/gui-client (#9427)
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 19.1.5 to 19.1.6. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom">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> |
||
|
|
d1551de09a |
build(deps): bump @types/node from 22.15.29 to 22.15.30 in /rust/gui-client (#9434)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.29 to 22.15.30. <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 /> [](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> |
||
|
|
c3ad2cab42 |
build(deps): bump @sentry/core from 9.24.0 to 9.27.0 in /rust/gui-client (#9436)
Bumps [@sentry/core](https://github.com/getsentry/sentry-javascript) from 9.24.0 to 9.27.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.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> <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.43 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.46 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay)</td> <td>74.68 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay) - with treeshaking flags</td> <td>67.94 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay with Canvas)</td> <td>79.33 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Tracing, Replay, Feedback)</td> <td>91.13 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. Feedback)</td> <td>39.77 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. sendFeedback)</td> <td>28.03 KB</td> </tr> <tr> <td><code>@sentry/browser</code> (incl. FeedbackAsync)</td> <td>32.8 KB</td> </tr> <tr> <td><code>@sentry/react</code></td> <td>25.15 KB</td> </tr> <tr> <td><code>@sentry/react</code> (incl. Tracing)</td> <td>39.41 KB</td> </tr> <tr> <td><code>@sentry/vue</code></td> <td>27.69 KB</td> </tr> <tr> <td><code>@sentry/vue</code> (incl. Tracing)</td> <td>39.27 KB</td> </tr> <tr> <td><code>@sentry/svelte</code></td> <td>23.45 KB</td> </tr> <tr> <td>CDN Bundle</td> <td>24.88 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing)</td> <td>37.63 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay)</td> <td>72.66 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback)</td> <td>77.99 KB</td> </tr> <tr> <td>CDN Bundle - uncompressed</td> <td>72.67 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing) - uncompressed</td> <td>111.42 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay) - uncompressed</td> <td>222.72 KB</td> </tr> <tr> <td>CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed</td> <td>235.25 KB</td> </tr> <tr> <td><code>@sentry/nextjs</code> (client)</td> <td>41.03 KB</td> </tr> <tr> <td><code>@sentry/sveltekit</code> (client)</td> <td>37.93 KB</td> </tr> <tr> <td><code>@sentry/node</code></td> <td>146.75 KB</td> </tr> <tr> <td><code>@sentry/node</code> - without tracing</td> <td>96.03 KB</td> </tr> <tr> <td><code>@sentry/aws-serverless</code></td> <td>121.19 KB</td> </tr> </tbody> </table> <h2>9.26.0</h2> <ul> <li>feat(react-router): Re-export functions from <code>@sentry/react</code> (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16465">#16465</a>)</li> <li>fix(nextjs): Skip re instrumentating on generate phase of experimental build mode (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16410">#16410</a>)</li> <li>fix(node): Ensure adding sentry-trace and baggage headers via SentryHttpInstrumentation doesn't crash (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16473">#16473</a>)</li> </ul> <h2>Bundle size 📦</h2> <table> <thead> <tr> <th>Path</th> <th>Size</th> </tr> </thead> </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.27.0</h2> <ul> <li>feat(node): Expand how vercel ai input/outputs can be set (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16455">#16455</a>)</li> <li>feat(node): Switch to new semantic conventions for Vercel AI (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16476">#16476</a>)</li> <li>feat(react-router): Add component annotation plugin (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16472">#16472</a>)</li> <li>feat(react-router): Export wrappers for server loaders and actions (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16481">#16481</a>)</li> <li>fix(browser): Ignore unrealistically long INP values (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16484">#16484</a>)</li> <li>fix(react-router): Conditionally add <code>ReactRouterServer</code> integration (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16470">#16470</a>)</li> </ul> <h2>9.26.0</h2> <ul> <li>feat(react-router): Re-export functions from <code>@sentry/react</code> (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16465">#16465</a>)</li> <li>fix(nextjs): Skip re instrumentating on generate phase of experimental build mode (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16410">#16410</a>)</li> <li>fix(node): Ensure adding sentry-trace and baggage headers via SentryHttpInstrumentation doesn't crash (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16473">#16473</a>)</li> </ul> <h2>9.25.1</h2> <ul> <li>fix(otel): Don't ignore child spans after the root is sent (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16416">#16416</a>)</li> </ul> <h2>9.25.0</h2> <h3>Important Changes</h3> <ul> <li><strong>feat(browser): Add option to ignore <code>mark</code> and <code>measure</code> spans (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16443">#16443</a>)</strong></li> </ul> <p>This release adds an option to <code>browserTracingIntegration</code> that lets you ignore <code>mark</code> and <code>measure</code> spans created from the <code>performance.mark(...)</code> and <code>performance.measure(...)</code> browser APIs:</p> <pre lang="js"><code>Sentry.init({ integrations: [ Sentry.browserTracingIntegration({ ignorePerformanceApiSpans: ['measure-to-ignore', /mark-to-ignore/], }), ], }); </code></pre> <h3>Other Changes</h3> <ul> <li>feat(browser): Export getTraceData from the browser sdks (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16433">#16433</a>)</li> <li>feat(node): Add <code>includeServerName</code> option (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16442">#16442</a>)</li> <li>fix(nuxt): Remove setting <code>@sentry/nuxt</code> external (<a href="https://redirect.github.com/getsentry/sentry-javascript/pull/16444">#16444</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ab01a1ef91 | chore: bump gui to 1.5.1 (#9440) | ||
|
|
7b0e33f0a2 |
fix(gui-client): allow legacy settings to parse new format (#9418)
As part of the introduction of General settings, we split up "Advanced settings" and also renamed one of the fields. Upon first start, the settings are migrated to the new format. What we failed to notice is that one the next subsequent start, the legacy settings struct will fail to parse the now migrated configuration and fall back to the default. This then appears as if the settings are not getting saved. Resolves: #9417 --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com> |
||
|
|
51e13d453f |
chore: publish GUI client 1.5.0 (#9413)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io> |
||
|
|
b60d77cef4 | chore: publish gateway 1.4.10 (#9412) | ||
|
|
6683178c8b | chore: publish headless client 1.5.0 (#9414) | ||
|
|
6f566450da |
build(deps): bump reqwest from 0.12.15 to 0.12.18 in /rust (#9360)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.15 to 0.12.18. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/seanmonstar/reqwest/releases">reqwest's releases</a>.</em></p> <blockquote> <h2>v0.12.18</h2> <h2>What's Changed</h2> <ul> <li>Fix compilation when <code>socks</code> enabled without TLS.</li> </ul> <h2>v0.12.17</h2> <h2>What's Changed</h2> <ul> <li>build: Fix compilation issues on macOS by <a href="https://github.com/0x676e67"><code>@0x676e67</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2696">seanmonstar/reqwest#2696</a></li> </ul> <h2>v0.12.16</h2> <h2>Highlights</h2> <ul> <li>Add <code>ClientBuilder::http3_congestion_bbr()</code> to enable BBR congestion control.</li> <li>Add <code>ClientBuilder::http3_send_grease()</code> to configure whether to send use QUIC grease.</li> <li>Add <code>ClientBuilder::http3_max_field_section_size()</code> to configure the maximum response headers.</li> <li>Add <code>ClientBuilder::tcp_keepalive_interval()</code> to configure TCP probe interval.</li> <li>Add <code>ClientBuilder::tcp_keepalive_retries()</code> to configure TCP probe count.</li> <li>Add <code>Proxy::headers()</code> to add extra headers that should be sent to a proxy.</li> <li>Fix <code>redirect::Policy::limit()</code> which had an off-by-1 error, allowing 1 more redirect than specified.</li> <li>Fix HTTP/3 to support streaming request bodies.</li> <li>(wasm) Fix null bodies when calling <code>Response::bytes_stream()</code>.</li> </ul> <h2>What's Changed</h2> <ul> <li>Clarify that <code>Response::content_length()</code> is not derived from a <code>Content-Length</code> header in docs by <a href="https://github.com/babolivier"><code>@babolivier</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2588">seanmonstar/reqwest#2588</a></li> <li>docs: link to <code>char::REPLACEMENT_CHARACTER</code> by <a href="https://github.com/marcospb19"><code>@marcospb19</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/1880">seanmonstar/reqwest#1880</a></li> <li>feat: add H3 client config support by <a href="https://github.com/smalls0098"><code>@smalls0098</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2609">seanmonstar/reqwest#2609</a></li> <li>chore: update brotli to v7 by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2620">seanmonstar/reqwest#2620</a></li> <li>Do not pull in an entirely different DEFLATE implementation just for tests by <a href="https://github.com/Shnatsel"><code>@Shnatsel</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2625">seanmonstar/reqwest#2625</a></li> <li>chore: fix some typos in comment by <a href="https://github.com/xixishidibei"><code>@xixishidibei</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2628">seanmonstar/reqwest#2628</a></li> <li>fix(wasm): handle null body in bytes_stream by <a href="https://github.com/alongubkin"><code>@alongubkin</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2632">seanmonstar/reqwest#2632</a></li> <li><code>ClientBuilder::interface</code> on macOS/Solarish OSes by <a href="https://github.com/hawkw"><code>@hawkw</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2623">seanmonstar/reqwest#2623</a></li> <li>ci: use ubuntu-latest in nightly job by <a href="https://github.com/seanmonstar"><code>@seanmonstar</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2646">seanmonstar/reqwest#2646</a></li> <li>feat: BBR congestion control for http3 by <a href="https://github.com/threeninesixseven"><code>@threeninesixseven</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2642">seanmonstar/reqwest#2642</a></li> <li>feat: Add extentions for Request by <a href="https://github.com/Xuanwo"><code>@Xuanwo</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2647">seanmonstar/reqwest#2647</a></li> <li>refactor: Store request timeout in request extensions instead by <a href="https://github.com/Xuanwo"><code>@Xuanwo</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2650">seanmonstar/reqwest#2650</a></li> <li>chore: make ci pass by <a href="https://github.com/linyihai"><code>@linyihai</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2666">seanmonstar/reqwest#2666</a></li> <li>update h3 dependencys by <a href="https://github.com/Ruben2424"><code>@Ruben2424</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2670">seanmonstar/reqwest#2670</a></li> <li>Document reqwest can make TLS and cookie requests with Wasm by <a href="https://github.com/nickbabcock"><code>@nickbabcock</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2661">seanmonstar/reqwest#2661</a></li> <li>fix(redirect): make the number of redirects of policy matches its maximum limit. by <a href="https://github.com/linyihai"><code>@linyihai</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2664">seanmonstar/reqwest#2664</a></li> <li>Exposed hyper tcp keepalive interval and retries parameters by <a href="https://github.com/mackliet"><code>@mackliet</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2675">seanmonstar/reqwest#2675</a></li> <li>refactor: use hyper-util's proxy::Matcher by <a href="https://github.com/seanmonstar"><code>@seanmonstar</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2681">seanmonstar/reqwest#2681</a></li> <li>Support streaming request body in HTTP/3 by <a href="https://github.com/ducaale"><code>@ducaale</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2673">seanmonstar/reqwest#2673</a></li> <li>refactor: use hyper-util <code>Tunnel</code> by <a href="https://github.com/seanmonstar"><code>@seanmonstar</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2684">seanmonstar/reqwest#2684</a></li> <li>Upgrade webpki-roots to 1 by <a href="https://github.com/djc"><code>@djc</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2688">seanmonstar/reqwest#2688</a></li> <li>refactor: remove <code>futures-util</code> unless using <code>stream</code>/<code>multipart</code>/compression/<code>blocking</code> by <a href="https://github.com/paolobarbolini"><code>@paolobarbolini</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2692">seanmonstar/reqwest#2692</a></li> <li>chore: replace rustls-pemfile with rustls-pki-types by <a href="https://github.com/tottoto"><code>@tottoto</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2541">seanmonstar/reqwest#2541</a></li> <li>Ensure H3ResponseFuture Implements Sync by <a href="https://github.com/ducaale"><code>@ducaale</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2685">seanmonstar/reqwest#2685</a></li> <li>feat(redirect): Using <code>FollowRedirect</code> from <code>tower-http</code> to handle the <code>redirect</code> loop by <a href="https://github.com/linyihai"><code>@linyihai</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2617">seanmonstar/reqwest#2617</a></li> <li>feat: add customizable headers in proxy mode by <a href="https://github.com/chanbengz"><code>@chanbengz</code></a> in <a href="https://redirect.github.com/seanmonstar/reqwest/pull/2600">seanmonstar/reqwest#2600</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md">reqwest's changelog</a>.</em></p> <blockquote> <h2>v0.12.18</h2> <ul> <li>Fix compilation when <code>socks</code> enabled without TLS.</li> </ul> <h2>v0.12.17</h2> <ul> <li>Fix compilation on macOS.</li> </ul> <h2>v0.12.16</h2> <ul> <li>Add <code>ClientBuilder::http3_congestion_bbr()</code> to enable BBR congestion control.</li> <li>Add <code>ClientBuilder::http3_send_grease()</code> to configure whether to send use QUIC grease.</li> <li>Add <code>ClientBuilder::http3_max_field_section_size()</code> to configure the maximum response headers.</li> <li>Add <code>ClientBuilder::tcp_keepalive_interval()</code> to configure TCP probe interval.</li> <li>Add <code>ClientBuilder::tcp_keepalive_retries()</code> to configure TCP probe count.</li> <li>Add <code>Proxy::headers()</code> to add extra headers that should be sent to a proxy.</li> <li>Fix <code>redirect::Policy::limit()</code> which had an off-by-1 error, allowing 1 more redirect than specified.</li> <li>Fix HTTP/3 to support streaming request bodies.</li> <li>(wasm) Fix null bodies when calling <code>Response::bytes_stream()</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f6799fa16c |
chore(gui-client): rename log file of tunnel service (#9411)
This is a left-over from the rename of the background service for the GUI client from IPC to Tunnel service. |
||
|
|
c3eb880ee5 |
fix(ci): Keep indentation of TSLINK_BUILD output (#9407)
When building the gui client with `TSLINK_BUILD=true`, the library outputs using 4 spaces for indent. These are however currently checked into git with 2 spaces per indent, which causes the Tauri workflow to fail because it checks for a pristine git directory after the build. Unfortunately #9383 doesn't fix this issue because it has nothing to do with prettier in CI. Fixes https://github.com/firezone/firezone/actions/runs/15457631114/job/43512703266 |
||
|
|
7498d992cb | chore: publish android 1.5.1 (#9405) | ||
|
|
339af8d7ab |
refactor(gui-client): embed fonts directly (#9398)
This will prevent the fonts from failing to load if the user has no internet connection. Tested. |
||
|
|
0e630932a9 |
fix(android): drop session in a new thread (#9394)
When the Android app calls `disconnect`, it is still within the context of a `connlib` callback. That callback is executed within the runtime that we are trying to drop. That is not allowed and leads to a panic. Resolves: #9390 --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com> |
||
|
|
d6ecda59a1 |
feat(gui-client): introduce "General" settings page (#9381)
This PR introduces "General" settings for the GUI client. The "Settings" menu item in the GUI is split into two sub-sections. The menu item is collapsible but open by default. |General|Advanced| |---|---| ||| "Connect on start" and "Account slug" can both be MDM managed. The autostart functionality is implemented via the Windows Registry. --------- Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com> |
||
|
|
6ef079357c |
feat(connlib): add basic analytics about new sessions (#9379)
This PR adds basic analytics to `connlib` by sending two events to PostHog: 1. `new_session` which is sent every time we establish a new session with a Firezone backend. This could be our production or staging instance but also a session to an on-premise installation of Firezone. We include the API URL in the event payload to further distinguish these. 2. `$identify` to link the client + version as well as the operating system to the user. The user is identified by the Firezone ID. --------- Signed-off-by: Thomas Eizinger <thomas@eizinger.io> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
7bf98e2fdc |
refactor(gui-client): improve error handling of Tauri commands (#9380)
Introducing a dedicated `Error` type allows us to directly serialise `anyhow::Error`s to the GUI. Those will then be reported to Sentry on the TS side. |
||
|
|
221ffc7e58 | chore: publish Apple 1.5.2 (#9385) | ||
|
|
a7af119668 | chore: publish android 1.5.0 (#9378) | ||
|
|
ada74d71df |
build(deps): bump clap from 4.5.38 to 4.5.39 in /rust (#9361)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.38 to 4.5.39. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.39</h2> <h2>[4.5.39] - 2025-05-27</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Show short flag aliases before long</li> <li><em>(help)</em> Merge the short and long flag alias lists</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.39] - 2025-05-27</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Show short flag aliases before long</li> <li><em>(help)</em> Merge the short and long flag alias lists</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
3774b63bb1 |
build(deps): bump parking_lot from 0.12.3 to 0.12.4 in /rust (#9358)
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.12.3 to 0.12.4. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md">parking_lot's changelog</a>.</em></p> <blockquote> <h2><code>parking_lot</code> - <a href="https://github.com/Amanieu/parking_lot/compare/parking_lot-v0.12.3...parking_lot-v0.12.4">0.12.4</a> - 2025-05-29</h2> <ul> <li>Fix parked upgraders potentially not being woken up after a write lock</li> <li>Fix clearing <code>PARKED_WRITER_BIT</code> after a timeout</li> </ul> <h2><code>parking_lot_core</code> - <a href="https://github.com/Amanieu/parking_lot/compare/parking_lot_core-v0.9.10...parking_lot_core-v0.9.11">0.9.11</a> - 2025-05-29</h2> <ul> <li>Use Release/Acquire ordering in thread_parker::windows::Backend::create</li> <li>Remove warnings due to new lint on unknown cfgs</li> </ul> <h2><code>lock_api</code> - <a href="https://github.com/Amanieu/parking_lot/compare/lock_api-v0.4.12...lock_api-v0.4.13">0.4.13</a> - 2025-05-29</h2> <ul> <li>Remove warnings due to new lint on unknown cfgs</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
f7803d6d8b |
build(deps): bump num_cpus from 1.16.0 to 1.17.0 in /rust (#9359)
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus) from 1.16.0 to 1.17.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md">num_cpus's changelog</a>.</em></p> <blockquote> <h2>v1.17.0</h2> <h3>Fixes</h3> <ul> <li>update hermit-abi to 0.5.0</li> <li>remove special support for nacl</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
805ba085c2 |
fix(connlib): re-add resource if ip_stack changes (#9372)
In #9300, we added logic to control whether we emit A and/or AAAA records for a DNS resource based on the `ip_stack` property of the `Resource` struct. Unfortunately this didn't take updates into account when the client was signed in, so updating a DNS resource's ip_stack failed to update the client's local Resource copy. To fix this, we determine if `resource_addressability_changed` which is true if the resource's address, or ip_stack, has changed meaningfully. If so, we remove the resource prior to evaluating the remaining logic of the `resource_created_or_updated` handler, which in turn causes the resource to be re-added, effectively updating its ip_stack. Related: https://github.com/firezone/firezone/pull/9300#issuecomment-2932365798 |
||
|
|
6e0ecc2a79 |
build(deps): bump quinn-udp to main (#9367)
The most recent mainline `quinn-udp` contains a patch that preemptively disables GSO on Linux kernel versions < 4.18 where GSO is not yet supported at all. This especially affects Android devices as there are quite a few of those out there with pretty old Linux kernels. |
||
|
|
218c711789 |
fix(connlib): don't hard-fail if buffer increase is rejected (#9366)
When `connlib` creates new UDP sockets for the p2p traffic, it tries to increase the send and receive buffers for improved performance. Failure to do so currently results in `connlib` failing to start entirely. This is unnecessarily harsh, we can simply log a warning instead and move on. |
||
|
|
29f8dd8688 |
fix(connlib): block until UDP thread has been set up (#9363)
Internally, `connlib` spawns a new thread for handling IO on the UDP socket. In order to make sure that this thread is operational, we intended to block `connlib`s main thread until the setup of the UDP thread has successfully completed. Unfortunately, this isn't quite the case because we already send an `Ok(())` value into the channel once we've successfully bound the socket. Following the binding, we also try to increase the maximum buffer size of the socket. Even though the intention here was to also log this error, the error value sent into the channel there is never read because we only ever read one value from the `error_tx` channel. To fix this, we move the sending of the `Ok(())` value to the very bottom of the UDP thread, just before we kick it off. Whilst this does not fix the actual issue as to why the setup of the UDP thread fails, these changes will at least surface the error. |
||
|
|
1914ea7076 |
refactor(rust): remove forced callback indirection (#9362)
As relict from very early designs of `connlib`, the `Callbacks` trait is still present and defines how the host app receives events from a running `Session`. Callbacks are not a great design pattern however because they force the running code, i.e. `connlib`s event-loop to execute unknown code. For example, if that code panics, all of `connlib` is taken down. Additionally, not all consumers may want to receive events via callbacks. The GUI and headless client for example already have their own event-loop in which they process all kinds of things. Having to deal with the `Callbacks` interface introduces an odd indirection here. To fix this, we instead return an `EventStream` when constructing a `Session`. This essentially aligns the API of `Session` with that of a channel. You receive two handles, one for sending in commands and one for receiving events. A `Session` will automatically spawn itself onto the given runtime so progress is made even if one does not poll on these channel handles. This greatly simplifies the code: - We get to delete the `Callbacks` interface. - We can delete the threaded callback adapter. This was only necessary because we didn't want to block `connlib` with the handling of the event. By using a channel for events, this is automatically guaranteed. - The GUI and headless client can directly integrate the event handling in their event-loop, without having to create an indirection with a channel. - It is now clear that only the Apple and Android FFI layers actually use callbacks to communicate these events. - We net-delete 100 LoC |
||
|
|
b7b296a102 |
ci: apply prettier to all files (#9356)
Resolves: #8940 |
||
|
|
3ad7848e8f |
feat(gui-client): add Sentry to the frontend (#9316)
With an increased amount of complexity in the frontend of the GUI client, it pays off to initialise the Sentry React SDK to catch any errors that might occur. In particular, any failing commands that we issue to the backend will be caught that way as those rejected `Promise`s will surface as uncaught exceptions. Similar to the backend, Sentry in the frontend is only initialised for known environments, i.e. our production and staging deployments of Firezone. For on-premise installations, Sentry is disabled. Related: #6138 |
||
|
|
3312639ed2 |
build(deps): bump @types/node from 22.15.3 to 22.15.29 in /rust/gui-client (#9324)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.3 to 22.15.29. <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 /> [](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> |
||
|
|
e05c98bfca |
ci: update to new cargo sort release (#9354)
The latest release now also sorts workspace dependencies, as well as different dependency sections. Keeping these things sorted reduces the chances of merge conflicts when multiple PRs edit these files. |
||
|
|
499a67f44b |
chore(gui-client): generate TypeScript interfaces from Rust (#9353)
The frontend of the GUI client is written in TypeScript and communicates with the backend via event listeners. Currently, we only have type-safety within either of those parts of the codebase but not across it. The payloads of these events are JSON-encoded. Any change to this interface therefore needs to be applied on either end. To avoid this, we add `tslink` to the GUI client which generates TypeScript interfaces from Rust structs. We still check those into Git into order to make local builds easy (otherwise every dev would have to set `TSLINK_BUILD=true` on their machine). Our Tauri CI build already has a check to ensure the Git workspace isn't modified after building so any changes to these generated files will fail CI. This adds a bit more type-safety to the codebase and makes refactorings on the GUI client easier. |
||
|
|
0c0ab13b90 | ci: Bump apple version to 1.5.1 (#9343) | ||
|
|
d62f82787d |
build(deps): bump netlink dependency group (#9315)
In https://github.com/rust-netlink/netlink-packet-route/issues/140#issuecomment-2919539363, the author claims the issue we've been holding the dependency bump back for is resolved. We can now update to the latest versions of the `netlink` dependency group. |
||
|
|
56ff469f03 |
refactor(gui-client): merge all windows into a single view (#9295)
This PR refactors the GUI clients frontend into a single window with a sidebar. The functionality remains the same but we do make minor UI improvements on the way. To pull the entire refactor off, we now use `react` and `flowbite-react` for the GUI. All the communication with the backend is moved towards one-way commands and events. That means, the flow is always: - Backend emits events to update frontend - Frontend triggers actions in the backend that may or may not result in further events This allows us to decouple the GUI from knowing about which side-effects change what parts of the state. Instead, it simply updates whenever it receives an event. - The previous "Advanced Settings" screen is now split into two parts: Settings and Diagnostics. Later, we will add a "General settings" page here. - The tray menu remains identical to the current one. When the user clicks "Settings" or "About", we open the window and navigate to the corresponding page. - The app and git version are now directly embedded in the frontend, simplifying the interaction between the frontend and the backend further. |Before|After| |---|---| ||| ||| || ||| |
||
|
|
02638582fe |
feat(connlib): allow controlling IP stack per DNS resource (#9300)
With this patch, `connlib` exposes a new, optional field `ip_stack` within the resource description of each DNS resource that controls the supported IP stack. By default, the IP stack is set to `Dual` to preserve the current behaviour. When set to `IPv4Only` or `IPv6Only`, `connlib` will not assign any IPv4 or IPv6 addresses when receiving DNS queries for such a resource. The DNS query will still respond successfully with NOERROR (and not NXDOMAIN) but the list of IPs will be empty. This is useful to e.g. allow sys-admins to disable IPv6 for resources with buggy clients such as the MongoDB atlas driver. The MongoDB driver does not correctly handle happy-eyeballs and instead fails the connection early on any connection error. Additionally, customers operating in IPv6-exclusive networks can disable IPv4 addresses with this setting. Related: https://jira.mongodb.org/browse/NODE-4678 Related: #9042 Related: #8892 |
||
|
|
c1cab32d7f |
feat(connlib): expose isAuthenticationError over Apple FFI (#9291)
The GUI client already uses the same function to check for authentication errors. Therefore, this case is already handled there. For Swift, we can easily expose this getter via the `swift-bridge` module. For Android, we don't expose it for now. Once we tackle #3959, this should be easier to do. In the meantime, the UX on Android is not super terrible. The user gets signed out and we will then receive a 401 when we try to sign-in again the next time. Resolves: #9289 |
||
|
|
e6f13a124a |
fix(connlib): optimise logging of activated CIDR resources (#9293)
Instead of always logging when CIDR resources change, we add an additional condition to the already existing `Activated resource` log that suppresses it in case the currently active CIDR resource is actively routing traffic. Resolves: #9281 |