* Add OS toast to differentiate between "totp required" and "mfa setup required"
* Add open-lock icon for identities needing MFA setup
* Refresh IsMFAEnabled on connect, drop redundant hideMfa, fix setup wording
* Fix silent MFA setup failure, surface error and reset toggle on unsuccessful enrollment_challenge
* Get rid of redundant log line - the mfa error comes over IPC already
* Update mfa setup needed icon
* Open mfa setup directly from main UI when a user clicks enable MFA icon on TOTP req, update release notes
* Cleanup
* Initial pass on stopping identity events from resizing id details view
* Size detail and MFA overlays from layout, not computed heights
* Re-add animation when deleting/adding an identity only
* Fix MFA recovery code screen intermittently closing instantly when setting up MFA
* Bind identity details height to main view height, move main UI closer to task bar when docked
* Update release notes
* remove unused main heigh var
* add enroll-to fields to AddIdentity payload
* add AddIdentityViewModel for external JWT signer discovery draft
* wire signer discovery into add-by-URL preflight, simplify JWT signer fetching significantly
* add signer discovery and picker to add-by-URL draft
* clean up enroll identifier payload lambdas to be more readable
* extract dialog fade-in/fade-out animation helpers
* discover external JWT signers and add a dedicated enroll-mode dialog when applicable
* Trigger external auth for enroll to token/cert on 'join network'
* clear the identities list when the tunneler shuts off
* remove identity clear from LoadStatusFromService in favor of the one in ServiceClient_OnClientDisconnected
* initial multi-tun support commit. used for development
* fix reconnect loop
* Update release notes
---------
Co-authored-by: dovholuknf <46322585+dovholuknf@users.noreply.github.com>
* Add external auth event if there's only 1 external provider and no default
* Clear AuthInProgress on error paths only in PerformExternalAuthEvent
* Allow re-clicking external auth button when auth is already in progress
* Rework ext auth event handling and add success/failure toast notifications
* Update release notes
* Fix ext auth toast not firing when ZET restarts
check incoming event needs external auth instead of stale local state
* Update and clean manual-testing.md
* Remove dead code
* update manual testing, remove redundant auth in progress reset, invert toast notification to avoid negation
* Fix layout and spacing on Automatic Upgrades screen
* Update release notes
* Extract SectionDivider style to App.xaml for reuse across MainMenu dividers
* Add OS notifications for identities requiring authorization
Shows toast notifications when identities need ext-auth or MFA. Single
events include an action button (Authenticate for ext-auth). Multiple
events arriving within a 5-second window are batched into a single
summary notification to avoid spam.
* Fix notification throttle not re-firing when required
* Clean up notification throttle
* Move summary format to notification throttle constructor to clean up message queue signature
* update release notes
* Suppress auth notifications when app is visible, exclude disabled identities from notification count, update release notes
* Add UpdateInterfaceConfig IPC command with nested L3/L2 payload
UpdateInterfaceConfig replaces UpdateTunIpv4 - this prevents having to call a new separate interface UpdateL2Options for updating l3/l2 config options simultaneously
* Add L2Enabled toggle and PcapInterface dropdown to tunnel config edit modal
* Fix L2Enabled and PcapInterface not populating in tunnel config edit modal
* Add Use Pcap checkbox to control Pcap Interface selection in tunnel config
* chore: prepare beta 2.10.0.0 with ZET v1.14.0
* dos2unix build.ps1
* remove beta updates, add experimental stream for now
* remove experimental for now
---------
Co-authored-by: Christopher Britton <christopher.l.britton@outlook.com>
* Move grid height calculation to Identity setter so it runs once per identity selection instead of on every sort/filter
* Extract service list sorting, filtering, and pagination into IdentityDetailsViewModel, replacing page-based pagination with virtual scroll
* Add logic to sort identities in the main identity list
* Add column headers to sortable identity fields
* Modify Identity Item renderer to use a grid to line up with main list column headers
* Add sort option and direction to settings
* Update sort logic to allow for ascending/descending sort
- Remove sort option from view state and just read directly from settings
- Add header separator to column headers
- Add Unicode arrows to indicate current sort direction
- Move repeated column header fields to style
* Refactor sort UI to use arrows indicating sort direction
Use shared size group between main window and identity item for name/status/services columns, use grid rows and column defs to possibly clean up header margins
* Update sort indicator from main window constructor so indicator is always present
Shift name column header to left
* Move main view model to new file, move sort logic to vm, bind sort ui to vm
tweak column header style