Commit Graph
144 Commits
Author SHA1 Message Date
Zoltan Papp 47ecc41bf4 Merge main into ui-refactor; port MDM support to the Wails UI
Integrates main's MDM configuration-profile feature and adapts it to the
Wails UI (this branch had already replaced the Fyne UI).

Conflict resolution:
- go.mod/go.sum: take main's deps; howett.net/plist pinned to v1.0.2-... (tidy)
- client/proto/daemon.pb.go: regenerated from the merged daemon.proto
- client/internal/peer/status.go: union of ipToKey (main) + sessionExpiresAt (HEAD)
- client/server/server.go: main's intent/liveness model (connectionGoroutineRunning,
  clientRunning no longer cleared by the goroutine) + empty-PSK guard
- client/ui/client_ui.go, client/ui/profile.go: removed (dead Fyne UI)

MDM port (backend + tray):
- services/settings.go: expose MDMManagedFields plus a managedFields map keyed
  by Config field names so the settings form can gate a control without
  translating mdm.Key* names
- tray: gate Profiles / Exit Node menus on DisableProfiles / DisableNetworks via
  GetFeatures, refreshed on the config_changed system event (replaces the legacy
  2s poll); localized MDM policy-applied toast in all shipped locales
- client/proto/metadata.go: shared constants for the config_changed /
  policy_applied event markers

PreSharedKey: GetConfig now returns preSharedKeySet (bool) instead of the masked
value; the settings form provides its own placeholder and sends a new key only
when the user types one.
2026-06-12 15:27:23 +02:00
Eduard Gert 29a165a586 bind saves to loaded profile to prevent cross-profile clobber 2026-06-12 12:19:30 +02:00
Eduard Gert 860be01ebe update debug bundle setting page 2026-06-12 12:09:10 +02:00
Zoltán Papp ff6aef5e2a feat(ui): GUI debug logging follows daemon log level + debug bundle
When the daemon is set to debug/trace, the GUI now automatically writes a
rotated gui-client.log in the user's config dir and the daemon's debug bundle
collects it. The UI learns the level both at startup (daemon already in debug)
and live, by piggybacking the existing SubscribeEvents stream: the daemon
publishes a marked log-level-changed SystemEvent (and a per-subscription
snapshot), which DaemonFeed routes to guilog.DebugLog instead of an OS toast.
The UI registers its log path via a new RegisterUILog RPC so the root daemon,
which can't resolve the user's config dir, knows where to find the file.

Manual --log-file (any value) disables the daemon-driven file logging.

Fix: client/ui SetLogLevel looked up proto.LogLevel_value with the lowercase
logrus name, which never matched the uppercase enum keys and silently fell back
to INFO — so trace/debug requests from the bundle flow had no effect.
2026-06-11 18:34:48 +02:00
Eduard Gert 96f0c7a165 Revert "keep right panel always mounted"
This reverts commit 9328558dbb.
2026-06-11 17:59:25 +02:00
Eduard Gert 3f66fafb8e treat old wiretrustee domain as cloud 2026-06-11 17:46:54 +02:00
Eduard Gert a8462e3f9b make trace disabled default and add link to report bugs and issues 2026-06-11 16:21:20 +02:00
Eduard Gert 9328558dbb keep right panel always mounted 2026-06-11 15:04:17 +02:00
Eduard Gert 13b4bf93b9 fix settings provider order 2026-06-11 14:34:20 +02:00
Eduard Gert cdcdd6a44f remove close animation from dialogs 2026-06-10 17:36:29 +02:00
Eduard Gert 7648aa7015 remove close animation from language picker 2026-06-10 16:58:52 +02:00
Eduard Gert 4b705d472c fix copy to clipboard for resources 2026-06-10 16:53:15 +02:00
Eduard Gert 7eaea03bc9 hide password toggle for saved psk 2026-06-10 16:46:50 +02:00
Eduard Gert eb788cad88 fix dynamic window height on linux 2026-06-10 16:37:07 +02:00
Eduard Gert 11281b681b fix unclassified errors 2026-06-10 09:54:48 +02:00
Eduard Gert d70b3a3fa4 update debug bundle text 2026-06-09 18:23:07 +02:00
Eduard Gert dac2ca4088 fix dropdown animation 2026-06-09 18:08:47 +02:00
Eduard Gert 4e1e7f9518 add common languages 2026-06-09 18:04:59 +02:00
Eduard Gert 9049974f26 lint 2026-06-09 16:33:30 +02:00
Eduard Gert f8e3ac6d92 refactor, lint, cleanup 2026-06-09 16:31:52 +02:00
Eduard Gert 32be58cb24 add description to translations 2026-06-09 11:33:54 +02:00
Eduard Gert aaa5dbb606 forward ui browser logs to go 2026-06-09 10:55:56 +02:00
Eduard Gert 727e6d3004 update position of not connected text 2026-06-08 18:13:37 +02:00
Eduard Gert 6b2ae1c34c update session expiration dialog texts, add monitor aware position 2026-06-08 18:09:22 +02:00
Eduard Gert b067544c8a update padding and text 2026-06-08 16:02:42 +02:00
Eduard Gert 10d84b758f add ipv6 2026-06-08 15:22:35 +02:00
Eduard Gert 0e4d0128b6 add custom error dialog 2026-06-08 12:44:33 +02:00
Eduard Gert 9ecc083139 update missing translations 2026-06-05 14:57:32 +02:00
Eduard Gert efd874efac add cloud / selfhosted segment in profile creation 2026-06-05 14:38:00 +02:00
Eduard Gert 5877880789 replace native confirm dialog with modals in settings 2026-06-05 13:16:39 +02:00
Eduard Gert 4427aaa31f update advanced port margin, update settings bottom bar height 2026-06-05 12:29:18 +02:00
Eduard Gert 296d3f124b truncate dns in main screen 2026-06-05 09:55:50 +02:00
Eduard Gert adf1fe1858 add ready prop to autosize hook 2026-06-05 09:48:17 +02:00
Zoltán Papp ca6f6d88cb Merge branch 'main' into ui-refactor 2026-06-04 17:06:11 +02:00
Zoltán Papp cba4a8a63b [client/ui] Fix login wedging until restart after a failed SSO attempt
startLogin held both guards (the module-level loginInFlight and the
caller's React-level loginGuard) across the post-failure errorDialog
await. The native Windows MessageBox disables its parent for its whole
lifetime while the main window's WindowClosing hook hides instead of
closing, so the dialog promise can outlive the click — and even a clean
dismissal kept the guards held until the promise settled. Until then
every later Connect click and tray trigger-login was silently dropped at
the guard check, so the only way back was a client restart.

Release both guards the instant the flow itself settles, before the
dialog: startLogin now takes an onSettled callback fired in its finally
(driveLogin releases loginGuard through it), and the errorDialog await
moved out of the try/finally so no guard is ever gated on the dialog.
2026-06-04 13:42:29 +02:00
Eduard Gert 64199209cf add onboarding 2026-06-03 17:33:13 +02:00
Eduard Gert 1710868a09 add exit node switcher 2026-06-02 17:23:56 +02:00
Eduard Gert 48265a0143 add profile switch into settings, scroll to top after profile switch, add netbird icon to linux windows 2026-06-02 14:20:36 +02:00
Eduard Gert c3a0c1beeb update language switcher, remove flags 2026-06-02 12:36:29 +02:00
Eduard Gert 45095818bc update paddings and icons 2026-06-02 12:04:55 +02:00
Eduard Gert fefd0da7bf Adjust peers and resources tabs 2026-06-02 11:37:56 +02:00
Eduard Gert 88bd1f91a8 update session expire dialog to account for hours, days etc. 2026-06-01 17:50:21 +02:00
Eduard Gert acfd680560 remove icons from profile dropdown 2026-06-01 17:37:05 +02:00
Eduard Gert daf9a74d8f update dialog error for connection switch 2026-06-01 17:18:31 +02:00
Eduard Gert 8af90e40d5 Merge remote-tracking branch 'origin/ui-refactor' into ui-refactor
# Conflicts:
#	client/ui/frontend/src/contexts/SettingsContext.tsx
2026-06-01 17:15:38 +02:00
Eduard Gert 3f989f69cb update about gui version, add mock data, truncate some strings 2026-06-01 17:14:30 +02:00
Zoltan Papp 53d43980ad fix(ui): keep main window closable after a native dialog on Windows (#6319)
A native Windows MessageBox attached to a parent window disables that
window (WS_DISABLED) for its lifetime and re-enables it on dismissal.
When the parent is the main window — whose WindowClosing hook hides
instead of closes — the enable/hide sequence races and leaves the window
unable to process its close (X) button afterwards, so e.g. a rejected
login error dialog left the main window stuck open.

Route all native dialogs through src/lib/dialogs.ts, which forces
Detached: true on Windows (NULL owner, no window ever disabled) and is a
no-op on macOS/Linux (keeps the attached sheet-style presentation).
2026-06-01 17:03:53 +02:00
Eduard Gert a4ad93008b add skeleton to launch netbird ui at login and own context 2026-06-01 14:57:31 +02:00
Eduard Gert 710d5c6182 apply different window width on windows 2026-06-01 11:07:33 +02:00
Eduard Gert 7538a9a133 update window width and dialogs top padding on macos 2026-06-01 09:51:59 +02:00