Skip to content

[management,client] 0.75.0 release#6473

Merged
mlsmaycon merged 13 commits into
mainfrom
0.75.0-branch
Jul 6, 2026
Merged

[management,client] 0.75.0 release#6473
mlsmaycon merged 13 commits into
mainfrom
0.75.0-branch

Conversation

@mlsmaycon

@mlsmaycon mlsmaycon commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Describe your changes

Release branch for 0.75.0. The centerpiece is a full rewrite of the desktop client UI, replacing the Fyne-based tray application with a Wails v3 app backed by a React/TypeScript frontend, plus follow-up fixes landed on the branch.

New desktop UI (#6069)

  • Wails v3 application (client/ui) with a React + TypeScript + Tailwind frontend replacing the Fyne UI: main connection view, exit-node switcher, networks/peers browser with detail panels, profile management, settings (general, network, SSH, security, troubleshooting, appearance), debug-bundle creation, and a first-run welcome flow.
  • Internationalization: go-i18n bundle with 9 locales (en, de, es, fr, hu, it, pt, ru, zh-CN) shared between the tray and the frontend.
  • New system tray implementation with per-platform theme-aware icons, including a native XEmbed host for Linux (xembed_tray_linux.c) and a Linux theme watcher.
  • Session handling: auth session watcher (client/internal/auth/sessionwatch), pending login flow, session-expiration dialog and tray notifications, and netbird login improvements.
  • Daemon API extensions (daemon.proto): status stream subscription, event stream, networks/exit-node selection endpoints, and richer full status — with probe throttling on the daemon side to protect against UI-driven request storms.
  • UI preferences store persisted per profile, autostart management via the daemon (single source of truth in HKCU on Windows).
  • Build system: Taskfile-based builds per platform (macOS, Linux, Windows), Docker cross-compilation images, MSIX/NSIS/nfpm/AppImage packaging, and a new frontend-ui CI workflow.

Follow-up changes on the branch

Issue ticket number and link

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)
  • This change does not modify the public API, gRPC protocols, functionality behavior, CLI / service flags, or introduce a new feature — OR I have discussed it with the NetBird team beforehand (link the issue / Slack thread in the description). See CONTRIBUTING.md.

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

Docs PR URL (required if "docs added" is checked)

Paste the PR link from https://github.com/netbirdio/docs here:

netbirdio/docs#802

Refactor UI

---------

Co-authored-by: Eduard Gert <kontakt@eduardgert.de>
Co-authored-by: braginini <bangvalo@gmail.com>
Co-authored-by: Pascal Fischer <32096965+pascal-fischer@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: riccardom <riccardomanfrin@gmail.com>
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 317 files, which is 167 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1dfae45e-9a5c-4bbb-a552-89dc54137c23

📥 Commits

Reviewing files that changed from the base of the PR and between 3aa6c02 and d099534.

⛔ Files ignored due to path filters (72)
  • client/proto/daemon.pb.go is excluded by !**/*.pb.go
  • client/proto/daemon_grpc.pb.go is excluded by !**/*.pb.go
  • client/ui/assets/connected.png is excluded by !**/*.png
  • client/ui/assets/disconnected.png is excluded by !**/*.png
  • client/ui/assets/netbird-disconnected.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-disconnected.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-24.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-about-18.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connected-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connected-22.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connected.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connecting-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connecting-22.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-connecting.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-error-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-error-22.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-error.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-idle-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-idle-22.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-idle.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-offline-16.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-offline-22.png is excluded by !**/*.png
  • client/ui/assets/netbird-menu-dot-offline.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connected-dark.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-connected-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connected-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connected-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connected.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-connecting-dark.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-connecting-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connecting-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connecting-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-connecting.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-disconnected-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-disconnected-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-disconnected-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-disconnected.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-error-dark.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-error-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-error-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-error-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-error.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-needs-login-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-needs-login-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-needs-login-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-needs-login.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-connected-dark.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-update-connected-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-connected-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-connected-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-connected.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-update-disconnected-dark.ico is excluded by !**/*.ico
  • client/ui/assets/netbird-systemtray-update-disconnected-macos.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-disconnected-mono-dark.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-disconnected-mono.png is excluded by !**/*.png
  • client/ui/assets/netbird-systemtray-update-disconnected.ico is excluded by !**/*.ico
  • client/ui/assets/netbird.ico is excluded by !**/*.ico
  • client/ui/assets/svg/needs-login.svg is excluded by !**/*.svg
  • client/ui/assets/svg/netbird-menu.svg is excluded by !**/*.svg
  • client/ui/build/appicon.icon/Assets/wails_icon_vector.svg is excluded by !**/*.svg
  • client/ui/build/appicon.png is excluded by !**/*.png
  • client/ui/build/windows/icon.ico is excluded by !**/*.ico
  • client/ui/frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • client/ui/frontend/src/assets/fonts/inter-variable.ttf is excluded by !**/*.ttf
  • client/ui/frontend/src/assets/fonts/jetbrains-mono-variable.ttf is excluded by !**/*.ttf
  • client/ui/frontend/src/assets/img/tray-darwin.png is excluded by !**/*.png
  • client/ui/frontend/src/assets/img/tray-linux.png is excluded by !**/*.png
  • client/ui/frontend/src/assets/img/tray-windows.png is excluded by !**/*.png
  • client/ui/frontend/src/assets/logos/netbird-full.svg is excluded by !**/*.svg
  • client/ui/frontend/src/assets/logos/netbird.svg is excluded by !**/*.svg
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (317)
  • .coderabbit.yaml
  • .devcontainer/Dockerfile
  • .github/workflows/frontend-ui.yml
  • .github/workflows/golang-test-darwin.yml
  • .github/workflows/golang-test-linux.yml
  • .github/workflows/golang-test-windows.yml
  • .github/workflows/golangci-lint.yml
  • .github/workflows/release.yml
  • .github/workflows/wasm-build-validation.yml
  • .golangci.yaml
  • .goreleaser.yaml
  • .goreleaser_ui.yaml
  • .goreleaser_ui_darwin.yaml
  • CONTRIBUTING.md
  • client/cmd/login.go
  • client/cmd/status.go
  • client/embed/embed.go
  • client/installer.nsis
  • client/internal/auth/auth.go
  • client/internal/auth/auth_test.go
  • client/internal/auth/pending_flow.go
  • client/internal/auth/sessionwatch/event.go
  • client/internal/auth/sessionwatch/watcher.go
  • client/internal/auth/sessionwatch/watcher_test.go
  • client/internal/connect.go
  • client/internal/debug/debug.go
  • client/internal/debug/debug_logfiles_test.go
  • client/internal/engine.go
  • client/internal/engine_authsession.go
  • client/internal/engine_session_deadline_test.go
  • client/internal/engine_sessionwatch.go
  • client/internal/engine_sessionwatch_js.go
  • client/internal/peer/status.go
  • client/internal/peer/status_test.go
  • client/internal/profilemanager/state.go
  • client/internal/routemanager/manager.go
  • client/internal/routeselector/routeselector_test.go
  • client/internal/state.go
  • client/mdm/canonical_loaders.go
  • client/mdm/policy.go
  • client/netbird.wxs
  • client/proto/daemon.proto
  • client/proto/metadata.go
  • client/server/debug.go
  • client/server/event.go
  • client/server/extend_authsession_test.go
  • client/server/mdm.go
  • client/server/network.go
  • client/server/network_exitnode_test.go
  • client/server/probe_throttle.go
  • client/server/probe_throttle_test.go
  • client/server/server.go
  • client/server/server_privileged_test.go
  • client/server/status_stream.go
  • client/ssh/server/test.go
  • client/status/status.go
  • client/status/status_test.go
  • client/ui/.gitignore
  • client/ui/Netbird.icns
  • client/ui/Taskfile.yml
  • client/ui/authsession/service.go
  • client/ui/authsession/warning.go
  • client/ui/authsession/warning_test.go
  • client/ui/build/Taskfile.yml
  • client/ui/build/appicon.icon/icon.json
  • client/ui/build/build-ui-linux.sh
  • client/ui/build/config.yml
  • client/ui/build/darwin/Info.dev.plist
  • client/ui/build/darwin/Info.plist
  • client/ui/build/darwin/Taskfile.yml
  • client/ui/build/darwin/icons.icns
  • client/ui/build/docker/Dockerfile.cross
  • client/ui/build/docker/Dockerfile.server
  • client/ui/build/linux/Taskfile.yml
  • client/ui/build/linux/appimage/build.sh
  • client/ui/build/linux/desktop
  • client/ui/build/linux/netbird-ui.desktop
  • client/ui/build/linux/netbird.desktop
  • client/ui/build/linux/nfpm/nfpm.yaml
  • client/ui/build/linux/nfpm/scripts/postinstall.sh
  • client/ui/build/linux/nfpm/scripts/postremove.sh
  • client/ui/build/linux/nfpm/scripts/preinstall.sh
  • client/ui/build/linux/nfpm/scripts/preremove.sh
  • client/ui/build/windows/Taskfile.yml
  • client/ui/build/windows/info.json
  • client/ui/build/windows/msix/app_manifest.xml
  • client/ui/build/windows/msix/template.xml
  • client/ui/build/windows/nsis/project.nsi
  • client/ui/build/windows/nsis/wails_tools.nsh
  • client/ui/build/windows/wails.exe.manifest
  • client/ui/client_ui.go
  • client/ui/const.go
  • client/ui/debug.go
  • client/ui/dock_darwin.go
  • client/ui/dock_other.go
  • client/ui/event/event.go
  • client/ui/event_handler.go
  • client/ui/font_bsd.go
  • client/ui/font_darwin.go
  • client/ui/font_linux.go
  • client/ui/font_windows.go
  • client/ui/frontend/.prettierignore
  • client/ui/frontend/.prettierrc
  • client/ui/frontend/WAILS-API.md
  • client/ui/frontend/eslint.config.js
  • client/ui/frontend/index.html
  • client/ui/frontend/package.json
  • client/ui/frontend/pnpm-workspace.yaml
  • client/ui/frontend/postcss.config.js
  • client/ui/frontend/src/app.tsx
  • client/ui/frontend/src/components/Badge.tsx
  • client/ui/frontend/src/components/CopyToClipboard.tsx
  • client/ui/frontend/src/components/DropdownMenu.tsx
  • client/ui/frontend/src/components/LanguagePicker.tsx
  • client/ui/frontend/src/components/ManagementServerSwitch.tsx
  • client/ui/frontend/src/components/SquareIcon.tsx
  • client/ui/frontend/src/components/Tooltip.tsx
  • client/ui/frontend/src/components/TruncatedText.tsx
  • client/ui/frontend/src/components/VerticalTabs.tsx
  • client/ui/frontend/src/components/buttons/Button.tsx
  • client/ui/frontend/src/components/buttons/IconButton.tsx
  • client/ui/frontend/src/components/dialog/ConfirmDialog.tsx
  • client/ui/frontend/src/components/dialog/ConfirmModal.tsx
  • client/ui/frontend/src/components/dialog/Dialog.tsx
  • client/ui/frontend/src/components/dialog/DialogActions.tsx
  • client/ui/frontend/src/components/dialog/DialogDescription.tsx
  • client/ui/frontend/src/components/dialog/DialogHeading.tsx
  • client/ui/frontend/src/components/empty-state/DaemonOutdatedOverlay.tsx
  • client/ui/frontend/src/components/empty-state/DaemonUnavailableOverlay.tsx
  • client/ui/frontend/src/components/empty-state/EmptyState.tsx
  • client/ui/frontend/src/components/empty-state/NoResults.tsx
  • client/ui/frontend/src/components/empty-state/NotConnectedState.tsx
  • client/ui/frontend/src/components/inputs/Input.tsx
  • client/ui/frontend/src/components/inputs/SearchInput.tsx
  • client/ui/frontend/src/components/switches/FancyToggleSwitch.tsx
  • client/ui/frontend/src/components/switches/SwitchItem.tsx
  • client/ui/frontend/src/components/switches/SwitchItemGroup.tsx
  • client/ui/frontend/src/components/switches/ToggleSwitch.tsx
  • client/ui/frontend/src/components/typography/HelpText.tsx
  • client/ui/frontend/src/components/typography/Label.tsx
  • client/ui/frontend/src/contexts/ClientVersionContext.tsx
  • client/ui/frontend/src/contexts/DebugBundleContext.tsx
  • client/ui/frontend/src/contexts/DialogContext.tsx
  • client/ui/frontend/src/contexts/NavSectionContext.tsx
  • client/ui/frontend/src/contexts/NetworksContext.tsx
  • client/ui/frontend/src/contexts/PeerDetailContext.tsx
  • client/ui/frontend/src/contexts/ProfileContext.tsx
  • client/ui/frontend/src/contexts/RestrictionsContext.tsx
  • client/ui/frontend/src/contexts/SettingsContext.tsx
  • client/ui/frontend/src/contexts/StatusContext.tsx
  • client/ui/frontend/src/contexts/ViewModeContext.tsx
  • client/ui/frontend/src/globals.css
  • client/ui/frontend/src/hooks/useAutoSizeWindow.ts
  • client/ui/frontend/src/hooks/useFocusVisible.ts
  • client/ui/frontend/src/hooks/useKeyboardShortcut.ts
  • client/ui/frontend/src/hooks/useManagementUrl.ts
  • client/ui/frontend/src/layouts/AppLayout.tsx
  • client/ui/frontend/src/layouts/AppRightPanel.tsx
  • client/ui/frontend/src/lib/cn.ts
  • client/ui/frontend/src/lib/compat.ts
  • client/ui/frontend/src/lib/connection.ts
  • client/ui/frontend/src/lib/errors.ts
  • client/ui/frontend/src/lib/formatters.ts
  • client/ui/frontend/src/lib/i18n.ts
  • client/ui/frontend/src/lib/logs.ts
  • client/ui/frontend/src/lib/platform.ts
  • client/ui/frontend/src/lib/sorting.ts
  • client/ui/frontend/src/lib/welcome.ts
  • client/ui/frontend/src/modules/auto-update/UpdateBadge.tsx
  • client/ui/frontend/src/modules/auto-update/UpdateInProgressDialog.tsx
  • client/ui/frontend/src/modules/auto-update/UpdateVersionCard.tsx
  • client/ui/frontend/src/modules/error/ErrorDialog.tsx
  • client/ui/frontend/src/modules/login/LoginWaitingForBrowserDialog.tsx
  • client/ui/frontend/src/modules/main/MainConnectionStatusSwitch.tsx
  • client/ui/frontend/src/modules/main/MainExitNodeSwitcher.tsx
  • client/ui/frontend/src/modules/main/MainHeader.tsx
  • client/ui/frontend/src/modules/main/MainPage.tsx
  • client/ui/frontend/src/modules/main/advanced/Navigation.tsx
  • client/ui/frontend/src/modules/main/advanced/networks/NetworkFilters.tsx
  • client/ui/frontend/src/modules/main/advanced/networks/Networks.tsx
  • client/ui/frontend/src/modules/main/advanced/peers/PeerDetailPanel.tsx
  • client/ui/frontend/src/modules/main/advanced/peers/PeerFilters.tsx
  • client/ui/frontend/src/modules/main/advanced/peers/Peers.tsx
  • client/ui/frontend/src/modules/profiles/ProfileAvatar.tsx
  • client/ui/frontend/src/modules/profiles/ProfileCreationModal.tsx
  • client/ui/frontend/src/modules/profiles/ProfileDropdown.tsx
  • client/ui/frontend/src/modules/profiles/ProfilesTab.tsx
  • client/ui/frontend/src/modules/session/SessionExpirationDialog.tsx
  • client/ui/frontend/src/modules/settings/SettingsAbout.tsx
  • client/ui/frontend/src/modules/settings/SettingsAccent.tsx
  • client/ui/frontend/src/modules/settings/SettingsAdvanced.tsx
  • client/ui/frontend/src/modules/settings/SettingsGeneral.tsx
  • client/ui/frontend/src/modules/settings/SettingsNavigation.tsx
  • client/ui/frontend/src/modules/settings/SettingsNetwork.tsx
  • client/ui/frontend/src/modules/settings/SettingsPage.tsx
  • client/ui/frontend/src/modules/settings/SettingsSSH.tsx
  • client/ui/frontend/src/modules/settings/SettingsSection.tsx
  • client/ui/frontend/src/modules/settings/SettingsSecurity.tsx
  • client/ui/frontend/src/modules/settings/SettingsSkeleton.tsx
  • client/ui/frontend/src/modules/settings/SettingsTroubleshooting.tsx
  • client/ui/frontend/src/modules/welcome/WelcomeDialog.tsx
  • client/ui/frontend/src/modules/welcome/WelcomeStepManagement.tsx
  • client/ui/frontend/src/modules/welcome/WelcomeStepTray.tsx
  • client/ui/frontend/src/vite-env.d.ts
  • client/ui/frontend/tailwind.config.ts
  • client/ui/frontend/tsconfig.json
  • client/ui/frontend/vite.config.ts
  • client/ui/grpc.go
  • client/ui/guilog/debuglog.go
  • client/ui/i18n/TRANSLATING.md
  • client/ui/i18n/bundle.go
  • client/ui/i18n/bundle_test.go
  • client/ui/i18n/locales/_index.json
  • client/ui/i18n/locales/de/common.json
  • client/ui/i18n/locales/en/common.json
  • client/ui/i18n/locales/es/common.json
  • client/ui/i18n/locales/fr/common.json
  • client/ui/i18n/locales/hu/common.json
  • client/ui/i18n/locales/it/common.json
  • client/ui/i18n/locales/pt/common.json
  • client/ui/i18n/locales/ru/common.json
  • client/ui/i18n/locales/zh-CN/common.json
  • client/ui/icons.go
  • client/ui/icons_menu_darwin.go
  • client/ui/icons_menu_linux.go
  • client/ui/icons_menu_windows.go
  • client/ui/icons_windows.go
  • client/ui/localizer.go
  • client/ui/main.go
  • client/ui/manifest.xml
  • client/ui/network.go
  • client/ui/notifier/notifier.go
  • client/ui/notifier/notifier_other.go
  • client/ui/notifier/notifier_windows.go
  • client/ui/preferences/store.go
  • client/ui/preferences/store_test.go
  • client/ui/process/process.go
  • client/ui/process/process_nonwindows.go
  • client/ui/process/process_windows.go
  • client/ui/profile.go
  • client/ui/quickactions.go
  • client/ui/quickactions_assets.go
  • client/ui/recenter_linux.go
  • client/ui/recenter_other.go
  • client/ui/services/autostart.go
  • client/ui/services/compat.go
  • client/ui/services/conn.go
  • client/ui/services/connection.go
  • client/ui/services/cursor_darwin.go
  • client/ui/services/cursor_linux.go
  • client/ui/services/cursor_other.go
  • client/ui/services/cursor_windows.go
  • client/ui/services/daemon_feed.go
  • client/ui/services/debug.go
  • client/ui/services/debug_reveal_other.go
  • client/ui/services/debug_reveal_windows.go
  • client/ui/services/errors.go
  • client/ui/services/errors_test.go
  • client/ui/services/foreground_other.go
  • client/ui/services/foreground_windows.go
  • client/ui/services/forwarding.go
  • client/ui/services/i18n.go
  • client/ui/services/network.go
  • client/ui/services/preferences.go
  • client/ui/services/profile.go
  • client/ui/services/profileswitcher.go
  • client/ui/services/session.go
  • client/ui/services/settings.go
  • client/ui/services/uilog.go
  • client/ui/services/update.go
  • client/ui/services/version.go
  • client/ui/services/windowmanager.go
  • client/ui/signal_unix.go
  • client/ui/signal_windows.go
  • client/ui/tray.go
  • client/ui/tray_click_linux.go
  • client/ui/tray_click_other.go
  • client/ui/tray_click_windows.go
  • client/ui/tray_events.go
  • client/ui/tray_exitnodes.go
  • client/ui/tray_features.go
  • client/ui/tray_icon.go
  • client/ui/tray_label_other.go
  • client/ui/tray_label_windows.go
  • client/ui/tray_linux.go
  • client/ui/tray_notify.go
  • client/ui/tray_profiles.go
  • client/ui/tray_session.go
  • client/ui/tray_status.go
  • client/ui/tray_status_enabled_linux.go
  • client/ui/tray_status_enabled_other.go
  • client/ui/tray_status_enabled_windows.go
  • client/ui/tray_theme_linux.go
  • client/ui/tray_theme_linux_test.go
  • client/ui/tray_theme_other.go
  • client/ui/tray_theme_watcher_linux.go
  • client/ui/tray_update.go
  • client/ui/tray_watcher_linux.go
  • client/ui/tray_watcher_other.go
  • client/ui/uilogpath.go
  • client/ui/update.go
  • client/ui/update_notwindows.go
  • client/ui/update_windows.go
  • client/ui/updater/state.go
  • client/ui/xembed_host_linux.go
  • client/ui/xembed_tray_linux.c
  • client/ui/xembed_tray_linux.h
  • docs/io.netbird.client.plist
  • docs/netbird-macos.mobileconfig
  • docs/netbird-macos.sh
  • docs/netbird-policy.reg
  • docs/netbird.adml
  • docs/netbird.admx
  • go.mod
  • shared/management/client/grpc.go
  • sonar-project.properties
  • util/log.go

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 0.75.0-branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mlsmaycon
mlsmaycon marked this pull request as draft June 19, 2026 08:00
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Release artifacts

Built for PR head d099534 in workflow run #16471.

Artifact Link
All release artifacts Download
Linux packages Download
Windows packages Download
macOS packages Download
UI artifacts Download
UI macOS artifacts Download

GHCR images (amd64)

This comment is updated by the Release workflow. Artifact links expire according to the workflow retention policy.

pappz and others added 12 commits June 19, 2026 13:30
…#6484)

* fix resources dropdown

* fix default profile deletion
Bump github.com/wailsapp/wails/v3 from v3.0.0-alpha.102 to
v3.0.0-alpha2.106 and webview2 from v1.0.24 to v1.0.27.
Only the connected state passed a dark variant to SetDarkModeIcon, so
on dark Windows themes the connected-dark icon stuck for connecting,
error and update-* states. Pass a dark variant for every state.
The MSI (netbird.wxs) and NSIS (installer.nsis) installers each wrote a
machine-wide HKLM\...\Run entry for netbird-ui.exe, enabled by default.
The UI's "Launch NetBird UI at Login" setting only manages the per-user
HKCU\...\Run entry (via Wails), so it could never clear the installer's
HKLM entry -- the tray app kept launching at login even with the toggle
off.

Drop the installer-managed autostart so the UI toggle (HKCU) is the
single source of truth:

- netbird.wxs: remove the AUTOSTART property and the NetbirdAutoStart
  component/ref.
- installer.nsis: remove the "Startup Options" page, its checkbox state,
  and the HKLM write. Install now only clears the legacy HKLM entry
  (leaving HKCU intact so the user's toggle survives upgrades); uninstall
  clears both, including the Wails-written "netbird" value.
# Conflicts:
#	.github/workflows/golang-test-darwin.yml
#	.github/workflows/golang-test-linux.yml
#	.github/workflows/golangci-lint.yml
#	client/internal/connect.go
#	client/internal/peer/status.go
#	client/server/server_test.go
#	client/ui/client_ui.go
#	go.mod
#	go.sum
# Conflicts:
#	.github/workflows/golang-test-linux.yml
#	client/internal/routemanager/manager.go
#	client/internal/routeselector/routeselector.go
#	client/ui/client_ui.go
#	client/ui/const.go
#	client/ui/event_handler.go
Lazy connections are now opt-out and controlled centrally by NB_LAZY_CONN,
MDM policy (lazyConnection), and the management feature flag (#6617). The
per-device UI toggle no longer fits this model: after #6617 the daemon stopped
persisting the setting and dropped it from GetConfig, so the Wails toggle always
read back OFF and its writes did not survive a restart.

Remove the toggle and the orphaned runtime plumbing, matching what main did for
the Fyne UI:
- drop the toggle from SettingsNetwork and the lazy i18n keys
- drop LazyConnectionEnabled from the UI settings service and SetConfig request
- drop the runtime-apply block in server.SetConfig
- delete Engine.SetLazyConnEnabled and ConnMgr.SetLocalLazyConn

The proto fields and FullStatus status reporting are left intact.
@sonarqubecloud

sonarqubecloud Bot commented Jul 3, 2026

Copy link
Copy Markdown

@mlsmaycon
mlsmaycon marked this pull request as ready for review July 6, 2026 10:37
@mlsmaycon
mlsmaycon merged commit 91acb81 into main Jul 6, 2026
63 of 64 checks passed
@mlsmaycon
mlsmaycon deleted the 0.75.0-branch branch July 6, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants