mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-07 10:38:55 -04:00
Compare commits
base: DYNR:refactor/ui-lazy-windows
DYNR:main
DYNR:add-management-ent-dashboard
DYNR:fix/migrate-enterprise-ghcr-image
DYNR:disambiguate_p2p_metrics
DYNR:embedded-vnc
DYNR:feat-post_quantum_ml_kem
DYNR:mdm_integration
DYNR:affected-peer-jwt-sync
DYNR:debug-ui-memprofile-lazy-windows
DYNR:refactor/ui-lazy-windows
DYNR:add-atomic-cache-ops
DYNR:debug-ui-memprofile
DYNR:feat/agent-network-per-account-serving
DYNR:fix_wg_watcher_cleanup
DYNR:fix/wails-go-vendor
DYNR:relay_transport_down_no_offer_storm
DYNR:revert/component-types
DYNR:wins_nrpt_dns_delegation
DYNR:dependabot/github_actions/actions-a940c7c866
DYNR:fix/quickstart-subnet-and-domain-alias
DYNR:notification-localization
DYNR:ssh-settings-elevation
DYNR:refactor/peer-event-bus
DYNR:fix/relay-proxy-redirect-when-ice-active
DYNR:claude/agent-network-test-cases-p743vw
DYNR:android/gui-integration
DYNR:ice-stun-wg-demux
DYNR:dependabot/npm_and_yarn/proxy/web/npm_and_yarn-b39864987c
DYNR:agent-network-setup-poc
DYNR:dependabot/go_modules/aws-sdk-8f849ebaed
DYNR:dependabot/go_modules/otel-e34c790afd
DYNR:dependabot/go_modules/testcontainers-de325c0dd6
DYNR:dependabot/go_modules/wireguard-dbd6b95108
DYNR:dependabot/go_modules/pion-5f703e1eca
DYNR:dependabot/go_modules/gorm-2271c8195b
DYNR:fix-login-needed-check
DYNR:dependabot/go_modules/google.golang.org/grpc-1.82.1
DYNR:revert/component-types-hookup
DYNR:feature/ios-ssh
DYNR:docs/agent-network-docs-update
DYNR:dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/s3-1.106.3
DYNR:dependabot/go_modules/github.com/pion/stun/v3-3.1.5
DYNR:fix-ssh-authorized-users-multi-rule
DYNR:peer-acl-multi-source
DYNR:reverse-proxy-crowdsec-appsec
DYNR:reverse-proxy-allow-match-or
DYNR:client-local-metrics
DYNR:lazy-conn-per-peer
DYNR:lazy-conn-rosenpass
DYNR:dependabot/go_modules/github.com/gopacket/gopacket-1.7.0
DYNR:dependabot/go_modules/goauthentik.io/api/v3-3.2026050.6
DYNR:dependabot/go_modules/github.com/pires/go-proxyproto-0.15.0
DYNR:dependabot/go_modules/github.com/jackc/pgx/v5-5.10.0
DYNR:dependabot/go_modules/github.com/oapi-codegen/runtime-1.6.0
DYNR:dependabot/go_modules/github.com/eko/gocache/lib/v4-4.2.4
DYNR:dependabot/go_modules/github.com/pkg/sftp-1.13.11
DYNR:dependabot/go_modules/github.com/coreos/go-oidc/v3-3.20.0
DYNR:ssh-windows-privilege-check
DYNR:fix/explicit-cors-handling
DYNR:fix/remove-math-rand
DYNR:test/gui-memory-leak-fix
DYNR:fix/ui-status-dispatch
DYNR:install-script-ui-dependencies
DYNR:fix/grpc-get-network-map
DYNR:fix/subscribe-status-coalesce
DYNR:fix/tray-menu-item-leak
DYNR:fix/windows-tray-race
DYNR:feature/changeset
DYNR:worktree-dns-route-qtype-fallthrough
DYNR:mlsmaycon-patch-2
DYNR:feat/agent-network-ollama
DYNR:proxy-tunnel-cache-ttl-env
DYNR:coderabbitai/utg/1e5b0a5
DYNR:grpc-acl
DYNR:test/battery-drain
DYNR:components-impl-drop-indexes-use-xids-no-resource-policy-map
DYNR:fix/nmap-relevant-groups
DYNR:e2e-guardrail-blocks-unselected-model
DYNR:fix/lazyconn-cold-start-allowed-ips
DYNR:vertex-guardrails-model-access-e2e
DYNR:refactor/relay-foreign-cache
DYNR:ci/trigger-release-tests
DYNR:feature/kimi-3-agent-networks-dns-warmup
DYNR:feature/dns-lazy-conn-warmup
DYNR:daemon-ipc-acl
DYNR:feature/ui-translation-key-parity-check
DYNR:refactor/relay-foreign-cache-tests
DYNR:fix/lazyconn-idle-keep-wg-peer
DYNR:dmitri-propagate-auth-grant-types-on-combined
DYNR:0.74.7-branch
DYNR:diagnose-empty-vs-corrupt-state
DYNR:windows-sleep-detector
DYNR:fix/cli-up-wait-for-daemon
DYNR:rp_key_persistency
DYNR:feature/native-grpc
DYNR:0.74.6-branch
DYNR:0.74.6-branch-sync
DYNR:0.74.5-branch-sync
DYNR:0.74.4-branch
DYNR:fix/remove-stale-peers-removal
DYNR:fix/remove-stale-proxy-logic
DYNR:fix/nsis-preserve-autostart-on-upgrade
DYNR:dependabot/go_modules/goauthentik.io/api/v3-3.2026050.3
DYNR:dependabot/go_modules/github.com/pkg/sftp-1.13.10
DYNR:components-impl-drop-indexes
DYNR:fix-reset-aggregation-window-flake
DYNR:dependabot/go_modules/github.com/pion/dtls/v3-3.1.5
DYNR:0.74.x
DYNR:fix/relay-states-lock
DYNR:update-process-pkg
DYNR:update-gopsutil-v4
DYNR:fix/relay_states_lock
DYNR:increase-sysinfo-timeout
DYNR:dependabot/go_modules/github.com/Azure/go-ntlmssp-0.1.1
DYNR:dependabot/go_modules/github.com/eko/gocache/store/redis/v4-4.2.6
DYNR:dependabot/go_modules/github.com/eko/gocache/lib/v4-4.2.3
DYNR:fix/fail-to-create-upnp-port-mapping-on-opnsense-firewall
DYNR:0.74.3-branch
DYNR:fix/routeselector-atomic-exit-node
DYNR:netmap_progressive_alignment
DYNR:nmap/components-impl
DYNR:dependabot/go_modules/github.com/jackc/pgx/v5-5.9.2
DYNR:dependabot/go_modules/github.com/oapi-codegen/runtime-1.4.2
DYNR:dependabot/go_modules/github.com/gopacket/gopacket-1.6.1
DYNR:dependabot/go_modules/github.com/coreos/go-oidc/v3-3.19.0
DYNR:dependabot/go_modules/github.com/pires/go-proxyproto-0.12.0
DYNR:fix/signal-watchdog-sync-stop
DYNR:docs/agent-network
DYNR:test/affected-logic
DYNR:fix/revert-ice-filter
DYNR:refactor/simplify-affected-peers
DYNR:pascal-filter-policies-by-direction
DYNR:claude/lock-contention-peer-connect-g8t6au
DYNR:dmitri-filter-policies-by-direction
DYNR:refactor/migrate-profiles-to-go
DYNR:profile-bindings-ios
DYNR:fix/skip-restart-unchanged-route
DYNR:fix/mgmt-cache-async-resolve
DYNR:refactor/wails-update-105
DYNR:client_lifetime_serialization_refactor
DYNR:fix/browser-ssh-2
DYNR:fix/ipv6-and-netstack-accept-loop
DYNR:fix/browser-ssh
DYNR:profile-id-name-test
DYNR:refactor/mgmt-bootstrap
DYNR:feat/getting-started-unified-wizard
DYNR:socket-grpc-permissions
DYNR:fix/mysql-index-migration
DYNR:windows-dns-firewall
DYNR:tests/enable-race-on-tests
DYNR:ui-refactor-gtk3
DYNR:feature/affected-peers-grpc
DYNR:profile-id
DYNR:lazyconn-first-packet-fix-v2
DYNR:claude/focused-gates-VMTgb
DYNR:ui-tray-linux-leftclick
DYNR:fix/ctx-enrichment
DYNR:daemon-owner
DYNR:feature/android-client-ssh
DYNR:worktree-accept-ra-forwarding
DYNR:nmap/combined-deploy
DYNR:task/align_protobuff_toolset
DYNR:feature/session-extend
DYNR:add-json-yaml-flags
DYNR:refactor/ephemeral-cleanup
DYNR:claude/webtransport-relay-wasm-mUjY9
DYNR:claude/vnc-udp-feasibility-6KB1U
DYNR:fix/wgport-config
DYNR:e2e-windows-dns-combined
DYNR:fix/login-cmd-root-flags
DYNR:feat/reseller-openapi-spec
DYNR:github-issue-resolver
DYNR:add-steamos-support
DYNR:fix-darwin-uninstaller
DYNR:flutter-test
DYNR:ci/freebsd-pkg-bootstrap
DYNR:cached-serial-check-on-sync
DYNR:fix-mgmt-cache-bypass-overlay
DYNR:revert-easyjson-5938
DYNR:revert-ice-5820
DYNR:revert-firewalld-5928
DYNR:refactor/permissions-manager
DYNR:revert-dns-5935-systemd-resolved
DYNR:revert-dns-5935-5945
DYNR:revert-dns-5945-mgmt-cache
DYNR:feature/log-most-busy-peers
DYNR:prototype/ui-wails
DYNR:coderabbitai/utg/8ae8f20
DYNR:feature/use-peer-fqdn-on-https
DYNR:release/0.68.3
DYNR:add-slack-channel
DYNR:claude/rdp-token-passthrough-eNcqW
DYNR:transparent-proxy
DYNR:fix/macos-stale-route-eexist
DYNR:crowdsec-selfhosted
DYNR:fix/remove-otel-units
DYNR:entire/checkpoints/v1
DYNR:fix/getting-started
DYNR:feat/static-connectors-combined-server
DYNR:feature/use-local-keys-embedded
DYNR:feature/fleetdm
DYNR:set-env-only-if-not-fork
DYNR:feature/expose-has-channel
DYNR:fix/connection-status-race
DYNR:fix/filter-cgnat-cni-ice-candidates
DYNR:feature/check-cert-locker-before-acme
DYNR:test/proxy-fixes
DYNR:test/proxy-mtu
DYNR:prototype/ui-tauri
DYNR:test/proxy-speed
DYNR:fix-reused-ports
DYNR:feat/migrate-to-embedded-idp
DYNR:feature/add-serial-to-proxy-merged
DYNR:deploy/proxy-serial
DYNR:test/connection
DYNR:feature/disable-legacy-port
DYNR:feature/flag-to-disable-legacy-port
DYNR:test/perftest
DYNR:fix/http-redirect
DYNR:poc-token-command
DYNR:dn-reverse-proxy
DYNR:prototype/reverse-proxy-rename
DYNR:prototype/reverse-proxy-logs-pagination
DYNR:feature/client-metrics
DYNR:prototype/reverse-proxy-clusters
DYNR:debug-dns-route
DYNR:fix/win-dns-batch
DYNR:add-extra-route-logs
DYNR:job-stream-notify-disconnection-eof
DYNR:deploy/secrets-manager
DYNR:trigger-proxy-update
DYNR:bug/update-ios-client-code-build-tags
DYNR:sync-client-netmap-serial
DYNR:log/conn-disconn
DYNR:nmap/compaction-deploy
DYNR:ci-win-test
DYNR:feature/disk-encryption-check
DYNR:wasm-debug
DYNR:swap-dns-prio
DYNR:fix/dex-config
DYNR:feature/migrate-auto-groups-to-table
DYNR:nmap/compaction
DYNR:dex-nocgo-stub
DYNR:feature/exclude-terraform-from-rate-limiting
DYNR:test-freebsd
DYNR:retries-refactor
DYNR:coderabbitai/docstrings/b7e98ac
DYNR:feat/integrate-zitadel
DYNR:bug/ios-hanging-reconection
DYNR:zitadel-idp
DYNR:feat/network-map-serial
DYNR:refactor/get-account-no-users
DYNR:feat/auto-upgrade
DYNR:feature/report-high-pat-id
DYNR:feature/temporary-access-for-resource
DYNR:fix/nmap-fwrules
DYNR:dont-restart-dns
DYNR:prototype/ui
DYNR:update-gomobile
DYNR:go-dns-for-ice
DYNR:wasm-ldflags
DYNR:test-ldflags
DYNR:wasmbuild-test
DYNR:feature/networks-s2s
DYNR:vk/compare-nmaps
DYNR:dbg/bothmaps
DYNR:reorder-dns-shutdown
DYNR:fix/relay-reconnection-race
DYNR:fix/nmap-exitnodes
DYNR:vk/debug/nmap-both
DYNR:move-licensed-code
DYNR:feat/better-daemon-connection-lost-message
DYNR:feat/auto-update-2
DYNR:test/timings
DYNR:refactor/getaccount-raw
DYNR:tests/nmap-getaccount
DYNR:refactor/nmap
DYNR:refactor/nmap-limit-buffer
DYNR:feature/detect-mac-wakeup
DYNR:feature/extract-modules
DYNR:quick-setings
DYNR:feat/sync-limiter
DYNR:feature/store-cache-impl
DYNR:fix-install-version
DYNR:feature/store-metrics
DYNR:feature/metrics-on-store
DYNR:feature/use-gorm-cache
DYNR:loadtest-signal
DYNR:unsymmetrical-squash
DYNR:refactor/reducate-signaling
DYNR:test/update-reduce
DYNR:feature/store-cache
DYNR:feature/remote-debug
DYNR:cli-ws-proxy-backend-addr
DYNR:feat/mgmt-map-serial
DYNR:snyk-fix-d9d0081a4c7f9137bdb59d0d50a141a2
DYNR:snyk-fix-7415cea5a11acd66753540ca2c598c63
DYNR:job-yml-update
DYNR:feature/android-allow-selecting-routes
DYNR:fix/up-sequence
DYNR:fix/dns-hash-update
DYNR:snyk-fix-967adae9863f17f108ce8948d9117b8d
DYNR:log/getaccount-by-peer
DYNR:signal-suppressor
DYNR:dns-exit-node
DYNR:feature/auto-updates
DYNR:feature/cache-srv-key
DYNR:merged-fixes
DYNR:fix/missed-offers-and-debug
DYNR:debug-and-fixes
DYNR:poc-wasm-clean-backend-s2s
DYNR:test/remote-debug
DYNR:debug-api
DYNR:fix/remove-gpo-if-empty
DYNR:fix/test-freebsd
DYNR:fix/mysql-setup
DYNR:fix/remove-logout-btn
DYNR:handle-existing-domain-user
DYNR:chore/unify-domain-validation
DYNR:snyk-fix-c5fafc8a50ce1f29046e25a1fc346185
DYNR:feat/profile-edit-btn
DYNR:snyk-fix-a54966211e18d4cf67e5a2757cc006d1
DYNR:log-short-id
DYNR:feat/logout-ephemeral
DYNR:log-checks
DYNR:batch-wg-ops
DYNR:nb-interface-default
DYNR:feat/aws-integration
DYNR:add/race-test
DYNR:feature/relay-feature-versioning
DYNR:fix/systemd-service-logs
DYNR:poc/preprocessed-map
DYNR:add-account-onboarding
DYNR:bind-ipv6
DYNR:fix/merge-main
DYNR:logs/peerlogs-addpeer
DYNR:feature/net-297-network-migration
DYNR:feature/support-skip-auto-apply-exit-node-routes
DYNR:set-cmd
DYNR:set-command-with-cursor
DYNR:feature/limit-update-channel
DYNR:stop-using-locking-share
DYNR:feature/poc-lazy-detection
DYNR:feature/net-248-removal-of-sync-mutex-locks
DYNR:test/multiple-peer-logging
DYNR:preresolve
DYNR:add-ns-punnycode-support
DYNR:apply-routes-early
DYNR:windows-search-domains
DYNR:fix/connecting-route-filter
DYNR:feature/management/rest-client/impersonate
DYNR:debug-local-records
DYNR:resource-fields-snake-case
DYNR:test/grpc-rate-limit
DYNR:traffic-correlation-policy
DYNR:feature/rest-client-options
DYNR:feat/events-metrics
DYNR:feature/buf-cli
DYNR:test/add-ratelimiter
DYNR:test/remove-write-lock-on-add-peer
DYNR:fix/add-peer-semaphore
DYNR:feature/users-roles-endpoint
DYNR:mlsmaycon-patch-1
DYNR:debug-user-role
DYNR:chore/primary-key-on-networks
DYNR:feature/update-account-peers-buffer-startup
DYNR:remove-ubuntu2004-runners
DYNR:refactor/permissions-no-pat-allowed
DYNR:ref/logrus-factory
DYNR:use-conntrack-zone
DYNR:deploy/permissions-account
DYNR:feature/lazy-connection-idle
DYNR:ref/improve-test-cov
DYNR:restore-pr-3440
DYNR:test/increase-grpc-timeouts
DYNR:feat/buffer-account-peers-update
DYNR:test/networkmapgeneration-changes
DYNR:feature/base-manager
DYNR:feature/flow-receiver
DYNR:chore/benchmark-with-large-runner
DYNR:refactor/handshake-initiator
DYNR:client/ui-update-systray-icons
DYNR:userspace-router
DYNR:wgwatcher-test
DYNR:output-if-key-already-exists
DYNR:fix/relay-reconnection
DYNR:feature/port-forwarding-client-codecleaning
DYNR:detached2
DYNR:test/callbacks-nil-iceconninfo
DYNR:refactor/optimize-peer-expiration
DYNR:enable-udp-port-for-docker-template
DYNR:fix/relay-update
DYNR:feature/apply-posture-netmap
DYNR:fix/group-update-existing-resource
DYNR:conntrack-stats
DYNR:upgrade-okta-sdk
DYNR:multi-price
DYNR:test/conn-stat
DYNR:set-min-parallel-tests-for-management
DYNR:dns-interceptor
DYNR:debug-dns
DYNR:router-dns
DYNR:add-static-system-info
DYNR:debug-0.29.4
DYNR:debug-0.33.0
DYNR:account-refactoring
DYNR:relay/2800_quic
DYNR:route-get-account-refactoring
DYNR:test/seed-random-routes
DYNR:feature/get-account-refactoring
DYNR:test/reconnect-race-condition
DYNR:refactor/get-account-usage
DYNR:feature/add-session-id-to-update-channel
DYNR:improve-ipv4conn
DYNR:fix/async-pion-event-handling
DYNR:debug
DYNR:add-offload
DYNR:feature/validate-group-association-debug
DYNR:fix/limit-conn-for-sqlite
DYNR:test/engine-iface
DYNR:test/transaction-for-jwt-sync
DYNR:fix/engine-stop-in-foreground
DYNR:feature/add-mysql-support
DYNR:test-migration
DYNR:refactor/header-size-values
DYNR:relay/eliminate-gob
DYNR:test/signal-dispatcher-with-relay
DYNR:relay/debug
DYNR:validate-icon
DYNR:feature/ipv6-support
DYNR:use-pre-expanded-peers-map
DYNR:feature/use-signal-dispatcher
DYNR:validate/peer-status
DYNR:add-read-write-times
DYNR:fix/sync-peer-race
DYNR:feature/relay-status
DYNR:netmap
DYNR:evaluate/network-map-hash
DYNR:fix/lower-dns-resolve-interval-on-fail
DYNR:feature/relay
DYNR:fix/go-mod-version
DYNR:upgrade-nftables
DYNR:synology-userspace-mode
DYNR:fix/use-ip-for-default-routes-on-darwin
DYNR:fix/proxy_close
DYNR:enable-release-workflow-on-pr
DYNR:deploy/peer-performance
DYNR:feature/permanent-turn
DYNR:feature/permanent-turn-proxy
DYNR:deploy/posture-check-sqlite
DYNR:feature/optimize_sqlite_save
DYNR:debug-ios-behavior
DYNR:fix/delete-route-only-after-adding
DYNR:tshoot/windows-logger
DYNR:remove-new-routing
DYNR:refactor/eliminate-repo-dependency
DYNR:add-arm-to-ci
DYNR:refactor-demo-account-object
DYNR:test/abc2
DYNR:test/abc
DYNR:send-ssh-rosenpass-config-meta
DYNR:refactor-demo
DYNR:ensure-schedule-never-runs-non-positive
DYNR:feature/peer-validator-groupmgm
DYNR:feature/peer-validator-fix
DYNR:fix/include-active-dashboard-users
DYNR:fix/handle-canceling-schedule
DYNR:fix/geo-download
DYNR:debug-google-workspace
DYNR:yury/resolve-ip-to-location
DYNR:feature/extend-sysinfo
DYNR:sqlite-async-peer-status
DYNR:yury/add-postgresql-store
DYNR:fix/route
DYNR:test-build
DYNR:posture-checks-poc
DYNR:debug-keycloak-idp
DYNR:poc/netstack
DYNR:for-pascal-tmp
DYNR:peer-logout-management
DYNR:manual-peer-logout
DYNR:detached
DYNR:chore/refactor-management
DYNR:test/dns-bind
DYNR:fix/enforce-acl-for-containers
DYNR:yury/use-sync-map-in-updatechannel
DYNR:fix/events-key-handling
DYNR:filter-cache-on-load-account
DYNR:fix/user-expiration
DYNR:handle-user-context-cancellation
DYNR:nb-client-k8s-statefulset
DYNR:fake-addr
DYNR:fix/iptables_in_docker
DYNR:ebpf-debug
DYNR:update-getting-started-flow-use-postgres
DYNR:fix/peer_list_notification
DYNR:feature/device-authentication-with-client-secret
DYNR:feature/keep_alive
DYNR:feat-groups-from-jwt
DYNR:separate_proxy_from_wgconfig
DYNR:fix/wg_conn
DYNR:wg_conn_fix
DYNR:wg_bind_parallel_processing
DYNR:fix-rollback-get-acls
DYNR:proxy_cfg_cleanup
DYNR:performance-improvement-rego
DYNR:update-lock-log-level
DYNR:feat-client-side-acl
DYNR:refactor/move_grpcserver_logic_to_account_manager
DYNR:feature/event-storage
DYNR:feature/update-idp-redeeming-invite
DYNR:feature/api-peer-info
DYNR:return-groupminimum-setupkey
DYNR:feature/interface-bind
DYNR:documentation_enhancement
DYNR:fix-peer-registration
DYNR:ssh
DYNR:users_cache
DYNR:pass-client-caller
DYNR:client_caller_type
DYNR:revert-283-feat-fix-windows-installer
DYNR:periodic-peer-updates
DYNR:ebpf
DYNR:braginini/wasm
DYNR:v0.76.2
DYNR:v0.76.1
DYNR:v0.76.0
DYNR:v0.75.1
DYNR:v0.75.0
DYNR:v0.74.7
DYNR:v0.74.6
DYNR:v0.74.5
DYNR:v0.75.0-rc.6
DYNR:v0.74.4
DYNR:v0.74.3
DYNR:v0.75.0-rc.5
DYNR:v0.74.2
DYNR:v0.74.1
DYNR:v0.75.0-rc.4
DYNR:v0.74.0
DYNR:v0.74.0-rc.2
DYNR:v0.74.0-rc.1
DYNR:v0.73.2
DYNR:v0.75.0-rc.3
DYNR:v0.75.0-rc.2
DYNR:v0.73.1
DYNR:v0.75.0-rc.1
DYNR:v0.73.0
DYNR:v0.72.4
DYNR:v0.72.3
DYNR:v0.72.2
DYNR:v0.72.1
DYNR:v0.72.0
DYNR:v0.71.4
DYNR:v0.71.3
DYNR:v0.71.2
DYNR:v0.71.1
DYNR:v0.71.0
DYNR:v0.70.5
DYNR:v0.70.4
DYNR:v0.70.3
DYNR:v0.70.2
DYNR:v0.70.1
DYNR:v0.70.0
DYNR:v0.69.0
DYNR:v0.68.3
DYNR:v0.68.2
DYNR:v0.68.1
DYNR:v0.68.0
DYNR:v0.67.4
DYNR:v0.67.3
DYNR:v0.67.2
DYNR:v0.67.1
DYNR:v0.67.0
DYNR:v0.66.4
DYNR:v0.66.3
DYNR:v0.66.2
DYNR:v0.66.1
DYNR:v0.66.0
DYNR:v0.65.3
DYNR:v0.65.2
DYNR:v0.65.1
DYNR:v0.65.0
DYNR:v0.64.6
DYNR:v0.64.5
DYNR:v0.64.4
DYNR:v0.64.3
DYNR:v0.64.2
DYNR:v0.64.1
DYNR:v0.64.0
DYNR:v0.63.0
DYNR:v0.62.3
DYNR:v0.62.2
DYNR:v0.62.1
DYNR:v0.62.0
DYNR:v0.61.2
DYNR:v0.61.1
DYNR:v0.61.0
DYNR:v0.60.9
DYNR:v0.60.8
DYNR:v0.60.7
DYNR:v0.60.6
DYNR:v0.60.5
DYNR:v0.60.4
DYNR:v0.60.3
DYNR:v0.60.2
DYNR:v0.60.1
DYNR:v0.60.0
DYNR:v0.59.13
DYNR:v0.59.12
DYNR:v0.59.11
DYNR:v0.59.10
DYNR:v0.59.9
DYNR:v0.59.8
DYNR:v0.59.7
DYNR:v0.59.6
DYNR:v0.59.5
DYNR:v0.59.4
DYNR:v0.59.3
DYNR:v0.59.2
DYNR:v0.59.1
DYNR:v0.59.0
DYNR:v0.58.2
DYNR:v0.58.1
DYNR:v0.58.0
DYNR:v0.57.1
DYNR:v0.57.0
DYNR:v0.56.1
DYNR:v0.56.0
DYNR:v0.55.1
DYNR:v0.55.0
DYNR:v0.54.2
DYNR:v0.54.1
DYNR:v0.54.0
DYNR:v0.53.0
DYNR:v0.52.2
DYNR:v0.52.1
DYNR:v0.52.0
DYNR:v0.51.2
DYNR:v0.51.1
DYNR:v0.51.0
DYNR:v0.50.3
DYNR:v0.50.2
DYNR:v0.50.1
DYNR:v0.50.0
DYNR:v0.49.0
DYNR:v0.48.0-dev2
DYNR:v0.48.0
DYNR:v0.47.2
DYNR:v0.47.1
DYNR:v0.47.0
DYNR:v0.46.0
DYNR:v0.45.3
DYNR:v0.45.2
DYNR:v0.45.1
DYNR:v0.45.0
DYNR:v0.44.0
DYNR:v0.43.3
DYNR:v0.43.2
DYNR:v0.43.1
DYNR:v0.43.0
DYNR:v0.42.0
DYNR:v0.41.3
DYNR:v0.41.2
DYNR:v0.41.1
DYNR:v0.41.0
DYNR:v0.40.1
DYNR:v0.40.0
DYNR:v0.39.2
DYNR:v0.39.1
DYNR:v0.39.0
DYNR:v0.38.2
DYNR:v0.38.1
DYNR:v0.38.0
DYNR:v0.37.2
DYNR:v0.37.1
DYNR:v0.37.0
DYNR:v0.36.7
DYNR:v0.36.6
DYNR:v0.36.5
DYNR:v0.36.4
DYNR:v0.36.3
DYNR:v0.36.2
DYNR:v0.36.1
DYNR:v0.36.0
DYNR:v0.35.2
DYNR:v0.35.1
DYNR:v0.35.0
DYNR:v0.34.1
DYNR:v0.34.0
DYNR:v0.33.0
DYNR:v0.32.0
DYNR:v0.31.1
DYNR:v0.31.0
DYNR:v0.30.3
DYNR:v0.30.2
DYNR:v0.30.1
DYNR:v0.30.0
DYNR:v0.29.4
DYNR:v0.29.3
DYNR:0.29.3
DYNR:v0.29.2
DYNR:v0.29.1
DYNR:v0.29.0
DYNR:v0.28.9
DYNR:v0.28.8
DYNR:v0.28.7
DYNR:v0.28.6
DYNR:v0.28.5
DYNR:v0.28.4
DYNR:v0.28.3
DYNR:v0.28.2
DYNR:v0.28.1
DYNR:v0.28.0
DYNR:v0.27.10
DYNR:v0.27.9
DYNR:v0.27.8
DYNR:v0.27.7
DYNR:v0.27.6
DYNR:v0.27.5
DYNR:v0.27.4
DYNR:v0.27.3
DYNR:v0.27.2
DYNR:v0.27.1
DYNR:v0.27.0
DYNR:v0.26.7
DYNR:v0.26.6
DYNR:v0.26.5
DYNR:v0.26.4
DYNR:v0.26.3
DYNR:v0.26.2
DYNR:v0.26.1
DYNR:v0.26.0
DYNR:v0.25.9
DYNR:v0.25.8
DYNR:v0.25.7
DYNR:v0.25.6
DYNR:v0.25.5
DYNR:v0.25.4
DYNR:v0.25.3
DYNR:v0.25.2
DYNR:v0.25.1
DYNR:v0.25.0
DYNR:v0.24.4
DYNR:v0.24.3
DYNR:v0.24.2
DYNR:v0.24.1
DYNR:v0.24.0
DYNR:v0.23.9
DYNR:v0.23.8
DYNR:v0.23.7
DYNR:v0.23.6
DYNR:v0.23.5
DYNR:v0.23.4
DYNR:v0.23.3
DYNR:v0.23.2
DYNR:v0.23.1
DYNR:v0.23.0
DYNR:v0.22.7
DYNR:v0.22.6
DYNR:v0.22.5
DYNR:v0.22.4
DYNR:v0.22.3
DYNR:v0.22.2
DYNR:v0.22.1
DYNR:v0.22.0
DYNR:v0.21.11
DYNR:v0.21.10
DYNR:v0.21.9
DYNR:v0.21.8
DYNR:v0.21.7
DYNR:v0.21.6
DYNR:v0.21.5
DYNR:v0.21.4
DYNR:v0.21.3
DYNR:v0.21.2
DYNR:v0.21.1
DYNR:v0.21.0
DYNR:v0.20.8
DYNR:v0.20.7
DYNR:v0.20.6
DYNR:v0.20.5
DYNR:v0.20.4
DYNR:v0.20.3
DYNR:v0.20.2
DYNR:v0.20.1
DYNR:v0.20.0
DYNR:v0.19.0
DYNR:v0.18.1
DYNR:v0.18.0
DYNR:v0.17.0
DYNR:v0.16.0
DYNR:v0.15.3
DYNR:v0.15.2
DYNR:v0.15.1
DYNR:v0.15.0
DYNR:v0.14.6
DYNR:v0.14.5
DYNR:v0.14.4
DYNR:v0.14.3
DYNR:v0.14.2
DYNR:v0.14.1
DYNR:v0.14.0
DYNR:v0.13.0
DYNR:v0.12.0
DYNR:v0.11.6
DYNR:v0.11.5
DYNR:v0.11.4
DYNR:v0.11.3
DYNR:v0.11.2
DYNR:v0.11.1
DYNR:v0.11.0
DYNR:v0.10.10
DYNR:v0.10.9
DYNR:v0.10.8
DYNR:v0.10.7
DYNR:v0.10.6
DYNR:v0.10.5
DYNR:v0.10.4
DYNR:v0.10.3
DYNR:v0.10.2
DYNR:v0.10.1
DYNR:v0.10.0
DYNR:v0.9.8
DYNR:v0.9.7
DYNR:v0.9.6
DYNR:v0.9.5
DYNR:v0.9.4
DYNR:v0.9.3
DYNR:v0.9.2
DYNR:v0.9.1
DYNR:v0.9.0
DYNR:v0.8.12
DYNR:v0.8.11
DYNR:v0.8.10
DYNR:v0.8.9
DYNR:v0.8.8
DYNR:v0.8.7
DYNR:v0.8.6
DYNR:v0.8.5
DYNR:v0.8.4
DYNR:v0.8.3
DYNR:v0.8.2
DYNR:v0.8.1
DYNR:v0.8.0
DYNR:v0.7.1
DYNR:v0.7.0
DYNR:v0.6.4
DYNR:v0.6.3
DYNR:v0.6.2
DYNR:v0.6.1
DYNR:v0.6.0
DYNR:v0.5.11
DYNR:v0.5.10
DYNR:v0.5.1
DYNR:v0.5.0
DYNR:v0.4.0
DYNR:v0.3.5
DYNR:v0.3.4
DYNR:v0.3.3
DYNR:v0.3.2
DYNR:v0.3.1
DYNR:v0.3.0
DYNR:v0.2.3
DYNR:v0.2.2-beta.1
DYNR:v0.2.1-beta.5
DYNR:v0.2.0-beta.5
DYNR:v0.2.0-beta.4
DYNR:v0.2.0-beta.3
DYNR:v0.2.0-beta.2
DYNR:v0.2.0-beta.1
DYNR:v0.1.0-beta.3
DYNR:v0.1.0-beta.2
DYNR:v0.1.0-beta.1
DYNR:v0.1.0-rc.2
DYNR:v0.1.0-rc-1
DYNR:v0.0.8-hotfix-1
DYNR:v0.0.8
DYNR:v0.0.7
DYNR:v0.0.6
DYNR:v0.0.5
DYNR:v0.0.4
DYNR:v0.0.3
DYNR:v0.0.2
DYNR:v0.0.1
DYNR:v0.0.0
...
compare: DYNR:android/gui-integration
DYNR:add-management-ent-dashboard
DYNR:fix/migrate-enterprise-ghcr-image
DYNR:disambiguate_p2p_metrics
DYNR:embedded-vnc
DYNR:feat-post_quantum_ml_kem
DYNR:mdm_integration
DYNR:affected-peer-jwt-sync
DYNR:main
DYNR:debug-ui-memprofile-lazy-windows
DYNR:refactor/ui-lazy-windows
DYNR:add-atomic-cache-ops
DYNR:debug-ui-memprofile
DYNR:feat/agent-network-per-account-serving
DYNR:fix_wg_watcher_cleanup
DYNR:fix/wails-go-vendor
DYNR:relay_transport_down_no_offer_storm
DYNR:revert/component-types
DYNR:wins_nrpt_dns_delegation
DYNR:dependabot/github_actions/actions-a940c7c866
DYNR:fix/quickstart-subnet-and-domain-alias
DYNR:notification-localization
DYNR:ssh-settings-elevation
DYNR:refactor/peer-event-bus
DYNR:fix/relay-proxy-redirect-when-ice-active
DYNR:claude/agent-network-test-cases-p743vw
DYNR:android/gui-integration
DYNR:ice-stun-wg-demux
DYNR:dependabot/npm_and_yarn/proxy/web/npm_and_yarn-b39864987c
DYNR:agent-network-setup-poc
DYNR:dependabot/go_modules/aws-sdk-8f849ebaed
DYNR:dependabot/go_modules/otel-e34c790afd
DYNR:dependabot/go_modules/testcontainers-de325c0dd6
DYNR:dependabot/go_modules/wireguard-dbd6b95108
DYNR:dependabot/go_modules/pion-5f703e1eca
DYNR:dependabot/go_modules/gorm-2271c8195b
DYNR:fix-login-needed-check
DYNR:dependabot/go_modules/google.golang.org/grpc-1.82.1
DYNR:revert/component-types-hookup
DYNR:feature/ios-ssh
DYNR:docs/agent-network-docs-update
DYNR:dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/s3-1.106.3
DYNR:dependabot/go_modules/github.com/pion/stun/v3-3.1.5
DYNR:fix-ssh-authorized-users-multi-rule
DYNR:peer-acl-multi-source
DYNR:reverse-proxy-crowdsec-appsec
DYNR:reverse-proxy-allow-match-or
DYNR:client-local-metrics
DYNR:lazy-conn-per-peer
DYNR:lazy-conn-rosenpass
DYNR:dependabot/go_modules/github.com/gopacket/gopacket-1.7.0
DYNR:dependabot/go_modules/goauthentik.io/api/v3-3.2026050.6
DYNR:dependabot/go_modules/github.com/pires/go-proxyproto-0.15.0
DYNR:dependabot/go_modules/github.com/jackc/pgx/v5-5.10.0
DYNR:dependabot/go_modules/github.com/oapi-codegen/runtime-1.6.0
DYNR:dependabot/go_modules/github.com/eko/gocache/lib/v4-4.2.4
DYNR:dependabot/go_modules/github.com/pkg/sftp-1.13.11
DYNR:dependabot/go_modules/github.com/coreos/go-oidc/v3-3.20.0
DYNR:ssh-windows-privilege-check
DYNR:fix/explicit-cors-handling
DYNR:fix/remove-math-rand
DYNR:test/gui-memory-leak-fix
DYNR:fix/ui-status-dispatch
DYNR:install-script-ui-dependencies
DYNR:fix/grpc-get-network-map
DYNR:fix/subscribe-status-coalesce
DYNR:fix/tray-menu-item-leak
DYNR:fix/windows-tray-race
DYNR:feature/changeset
DYNR:worktree-dns-route-qtype-fallthrough
DYNR:mlsmaycon-patch-2
DYNR:feat/agent-network-ollama
DYNR:proxy-tunnel-cache-ttl-env
DYNR:coderabbitai/utg/1e5b0a5
DYNR:grpc-acl
DYNR:test/battery-drain
DYNR:components-impl-drop-indexes-use-xids-no-resource-policy-map
DYNR:fix/nmap-relevant-groups
DYNR:e2e-guardrail-blocks-unselected-model
DYNR:fix/lazyconn-cold-start-allowed-ips
DYNR:vertex-guardrails-model-access-e2e
DYNR:refactor/relay-foreign-cache
DYNR:ci/trigger-release-tests
DYNR:feature/kimi-3-agent-networks-dns-warmup
DYNR:feature/dns-lazy-conn-warmup
DYNR:daemon-ipc-acl
DYNR:feature/ui-translation-key-parity-check
DYNR:refactor/relay-foreign-cache-tests
DYNR:fix/lazyconn-idle-keep-wg-peer
DYNR:dmitri-propagate-auth-grant-types-on-combined
DYNR:0.74.7-branch
DYNR:diagnose-empty-vs-corrupt-state
DYNR:windows-sleep-detector
DYNR:fix/cli-up-wait-for-daemon
DYNR:rp_key_persistency
DYNR:feature/native-grpc
DYNR:0.74.6-branch
DYNR:0.74.6-branch-sync
DYNR:0.74.5-branch-sync
DYNR:0.74.4-branch
DYNR:fix/remove-stale-peers-removal
DYNR:fix/remove-stale-proxy-logic
DYNR:fix/nsis-preserve-autostart-on-upgrade
DYNR:dependabot/go_modules/goauthentik.io/api/v3-3.2026050.3
DYNR:dependabot/go_modules/github.com/pkg/sftp-1.13.10
DYNR:components-impl-drop-indexes
DYNR:fix-reset-aggregation-window-flake
DYNR:dependabot/go_modules/github.com/pion/dtls/v3-3.1.5
DYNR:0.74.x
DYNR:fix/relay-states-lock
DYNR:update-process-pkg
DYNR:update-gopsutil-v4
DYNR:fix/relay_states_lock
DYNR:increase-sysinfo-timeout
DYNR:dependabot/go_modules/github.com/Azure/go-ntlmssp-0.1.1
DYNR:dependabot/go_modules/github.com/eko/gocache/store/redis/v4-4.2.6
DYNR:dependabot/go_modules/github.com/eko/gocache/lib/v4-4.2.3
DYNR:fix/fail-to-create-upnp-port-mapping-on-opnsense-firewall
DYNR:0.74.3-branch
DYNR:fix/routeselector-atomic-exit-node
DYNR:netmap_progressive_alignment
DYNR:nmap/components-impl
DYNR:dependabot/go_modules/github.com/jackc/pgx/v5-5.9.2
DYNR:dependabot/go_modules/github.com/oapi-codegen/runtime-1.4.2
DYNR:dependabot/go_modules/github.com/gopacket/gopacket-1.6.1
DYNR:dependabot/go_modules/github.com/coreos/go-oidc/v3-3.19.0
DYNR:dependabot/go_modules/github.com/pires/go-proxyproto-0.12.0
DYNR:fix/signal-watchdog-sync-stop
DYNR:docs/agent-network
DYNR:test/affected-logic
DYNR:fix/revert-ice-filter
DYNR:refactor/simplify-affected-peers
DYNR:pascal-filter-policies-by-direction
DYNR:claude/lock-contention-peer-connect-g8t6au
DYNR:dmitri-filter-policies-by-direction
DYNR:refactor/migrate-profiles-to-go
DYNR:profile-bindings-ios
DYNR:fix/skip-restart-unchanged-route
DYNR:fix/mgmt-cache-async-resolve
DYNR:refactor/wails-update-105
DYNR:client_lifetime_serialization_refactor
DYNR:fix/browser-ssh-2
DYNR:fix/ipv6-and-netstack-accept-loop
DYNR:fix/browser-ssh
DYNR:profile-id-name-test
DYNR:refactor/mgmt-bootstrap
DYNR:feat/getting-started-unified-wizard
DYNR:socket-grpc-permissions
DYNR:fix/mysql-index-migration
DYNR:windows-dns-firewall
DYNR:tests/enable-race-on-tests
DYNR:ui-refactor-gtk3
DYNR:feature/affected-peers-grpc
DYNR:profile-id
DYNR:lazyconn-first-packet-fix-v2
DYNR:claude/focused-gates-VMTgb
DYNR:ui-tray-linux-leftclick
DYNR:fix/ctx-enrichment
DYNR:daemon-owner
DYNR:feature/android-client-ssh
DYNR:worktree-accept-ra-forwarding
DYNR:nmap/combined-deploy
DYNR:task/align_protobuff_toolset
DYNR:feature/session-extend
DYNR:add-json-yaml-flags
DYNR:refactor/ephemeral-cleanup
DYNR:claude/webtransport-relay-wasm-mUjY9
DYNR:claude/vnc-udp-feasibility-6KB1U
DYNR:fix/wgport-config
DYNR:e2e-windows-dns-combined
DYNR:fix/login-cmd-root-flags
DYNR:feat/reseller-openapi-spec
DYNR:github-issue-resolver
DYNR:add-steamos-support
DYNR:fix-darwin-uninstaller
DYNR:flutter-test
DYNR:ci/freebsd-pkg-bootstrap
DYNR:cached-serial-check-on-sync
DYNR:fix-mgmt-cache-bypass-overlay
DYNR:revert-easyjson-5938
DYNR:revert-ice-5820
DYNR:revert-firewalld-5928
DYNR:refactor/permissions-manager
DYNR:revert-dns-5935-systemd-resolved
DYNR:revert-dns-5935-5945
DYNR:revert-dns-5945-mgmt-cache
DYNR:feature/log-most-busy-peers
DYNR:prototype/ui-wails
DYNR:coderabbitai/utg/8ae8f20
DYNR:feature/use-peer-fqdn-on-https
DYNR:release/0.68.3
DYNR:add-slack-channel
DYNR:claude/rdp-token-passthrough-eNcqW
DYNR:transparent-proxy
DYNR:fix/macos-stale-route-eexist
DYNR:crowdsec-selfhosted
DYNR:fix/remove-otel-units
DYNR:entire/checkpoints/v1
DYNR:fix/getting-started
DYNR:feat/static-connectors-combined-server
DYNR:feature/use-local-keys-embedded
DYNR:feature/fleetdm
DYNR:set-env-only-if-not-fork
DYNR:feature/expose-has-channel
DYNR:fix/connection-status-race
DYNR:fix/filter-cgnat-cni-ice-candidates
DYNR:feature/check-cert-locker-before-acme
DYNR:test/proxy-fixes
DYNR:test/proxy-mtu
DYNR:prototype/ui-tauri
DYNR:test/proxy-speed
DYNR:fix-reused-ports
DYNR:feat/migrate-to-embedded-idp
DYNR:feature/add-serial-to-proxy-merged
DYNR:deploy/proxy-serial
DYNR:test/connection
DYNR:feature/disable-legacy-port
DYNR:feature/flag-to-disable-legacy-port
DYNR:test/perftest
DYNR:fix/http-redirect
DYNR:poc-token-command
DYNR:dn-reverse-proxy
DYNR:prototype/reverse-proxy-rename
DYNR:prototype/reverse-proxy-logs-pagination
DYNR:feature/client-metrics
DYNR:prototype/reverse-proxy-clusters
DYNR:debug-dns-route
DYNR:fix/win-dns-batch
DYNR:add-extra-route-logs
DYNR:job-stream-notify-disconnection-eof
DYNR:deploy/secrets-manager
DYNR:trigger-proxy-update
DYNR:bug/update-ios-client-code-build-tags
DYNR:sync-client-netmap-serial
DYNR:log/conn-disconn
DYNR:nmap/compaction-deploy
DYNR:ci-win-test
DYNR:feature/disk-encryption-check
DYNR:wasm-debug
DYNR:swap-dns-prio
DYNR:fix/dex-config
DYNR:feature/migrate-auto-groups-to-table
DYNR:nmap/compaction
DYNR:dex-nocgo-stub
DYNR:feature/exclude-terraform-from-rate-limiting
DYNR:test-freebsd
DYNR:retries-refactor
DYNR:coderabbitai/docstrings/b7e98ac
DYNR:feat/integrate-zitadel
DYNR:bug/ios-hanging-reconection
DYNR:zitadel-idp
DYNR:feat/network-map-serial
DYNR:refactor/get-account-no-users
DYNR:feat/auto-upgrade
DYNR:feature/report-high-pat-id
DYNR:feature/temporary-access-for-resource
DYNR:fix/nmap-fwrules
DYNR:dont-restart-dns
DYNR:prototype/ui
DYNR:update-gomobile
DYNR:go-dns-for-ice
DYNR:wasm-ldflags
DYNR:test-ldflags
DYNR:wasmbuild-test
DYNR:feature/networks-s2s
DYNR:vk/compare-nmaps
DYNR:dbg/bothmaps
DYNR:reorder-dns-shutdown
DYNR:fix/relay-reconnection-race
DYNR:fix/nmap-exitnodes
DYNR:vk/debug/nmap-both
DYNR:move-licensed-code
DYNR:feat/better-daemon-connection-lost-message
DYNR:feat/auto-update-2
DYNR:test/timings
DYNR:refactor/getaccount-raw
DYNR:tests/nmap-getaccount
DYNR:refactor/nmap
DYNR:refactor/nmap-limit-buffer
DYNR:feature/detect-mac-wakeup
DYNR:feature/extract-modules
DYNR:quick-setings
DYNR:feat/sync-limiter
DYNR:feature/store-cache-impl
DYNR:fix-install-version
DYNR:feature/store-metrics
DYNR:feature/metrics-on-store
DYNR:feature/use-gorm-cache
DYNR:loadtest-signal
DYNR:unsymmetrical-squash
DYNR:refactor/reducate-signaling
DYNR:test/update-reduce
DYNR:feature/store-cache
DYNR:feature/remote-debug
DYNR:cli-ws-proxy-backend-addr
DYNR:feat/mgmt-map-serial
DYNR:snyk-fix-d9d0081a4c7f9137bdb59d0d50a141a2
DYNR:snyk-fix-7415cea5a11acd66753540ca2c598c63
DYNR:job-yml-update
DYNR:feature/android-allow-selecting-routes
DYNR:fix/up-sequence
DYNR:fix/dns-hash-update
DYNR:snyk-fix-967adae9863f17f108ce8948d9117b8d
DYNR:log/getaccount-by-peer
DYNR:signal-suppressor
DYNR:dns-exit-node
DYNR:feature/auto-updates
DYNR:feature/cache-srv-key
DYNR:merged-fixes
DYNR:fix/missed-offers-and-debug
DYNR:debug-and-fixes
DYNR:poc-wasm-clean-backend-s2s
DYNR:test/remote-debug
DYNR:debug-api
DYNR:fix/remove-gpo-if-empty
DYNR:fix/test-freebsd
DYNR:fix/mysql-setup
DYNR:fix/remove-logout-btn
DYNR:handle-existing-domain-user
DYNR:chore/unify-domain-validation
DYNR:snyk-fix-c5fafc8a50ce1f29046e25a1fc346185
DYNR:feat/profile-edit-btn
DYNR:snyk-fix-a54966211e18d4cf67e5a2757cc006d1
DYNR:log-short-id
DYNR:feat/logout-ephemeral
DYNR:log-checks
DYNR:batch-wg-ops
DYNR:nb-interface-default
DYNR:feat/aws-integration
DYNR:add/race-test
DYNR:feature/relay-feature-versioning
DYNR:fix/systemd-service-logs
DYNR:poc/preprocessed-map
DYNR:add-account-onboarding
DYNR:bind-ipv6
DYNR:fix/merge-main
DYNR:logs/peerlogs-addpeer
DYNR:feature/net-297-network-migration
DYNR:feature/support-skip-auto-apply-exit-node-routes
DYNR:set-cmd
DYNR:set-command-with-cursor
DYNR:feature/limit-update-channel
DYNR:stop-using-locking-share
DYNR:feature/poc-lazy-detection
DYNR:feature/net-248-removal-of-sync-mutex-locks
DYNR:test/multiple-peer-logging
DYNR:preresolve
DYNR:add-ns-punnycode-support
DYNR:apply-routes-early
DYNR:windows-search-domains
DYNR:fix/connecting-route-filter
DYNR:feature/management/rest-client/impersonate
DYNR:debug-local-records
DYNR:resource-fields-snake-case
DYNR:test/grpc-rate-limit
DYNR:traffic-correlation-policy
DYNR:feature/rest-client-options
DYNR:feat/events-metrics
DYNR:feature/buf-cli
DYNR:test/add-ratelimiter
DYNR:test/remove-write-lock-on-add-peer
DYNR:fix/add-peer-semaphore
DYNR:feature/users-roles-endpoint
DYNR:mlsmaycon-patch-1
DYNR:debug-user-role
DYNR:chore/primary-key-on-networks
DYNR:feature/update-account-peers-buffer-startup
DYNR:remove-ubuntu2004-runners
DYNR:refactor/permissions-no-pat-allowed
DYNR:ref/logrus-factory
DYNR:use-conntrack-zone
DYNR:deploy/permissions-account
DYNR:feature/lazy-connection-idle
DYNR:ref/improve-test-cov
DYNR:restore-pr-3440
DYNR:test/increase-grpc-timeouts
DYNR:feat/buffer-account-peers-update
DYNR:test/networkmapgeneration-changes
DYNR:feature/base-manager
DYNR:feature/flow-receiver
DYNR:chore/benchmark-with-large-runner
DYNR:refactor/handshake-initiator
DYNR:client/ui-update-systray-icons
DYNR:userspace-router
DYNR:wgwatcher-test
DYNR:output-if-key-already-exists
DYNR:fix/relay-reconnection
DYNR:feature/port-forwarding-client-codecleaning
DYNR:detached2
DYNR:test/callbacks-nil-iceconninfo
DYNR:refactor/optimize-peer-expiration
DYNR:enable-udp-port-for-docker-template
DYNR:fix/relay-update
DYNR:feature/apply-posture-netmap
DYNR:fix/group-update-existing-resource
DYNR:conntrack-stats
DYNR:upgrade-okta-sdk
DYNR:multi-price
DYNR:test/conn-stat
DYNR:set-min-parallel-tests-for-management
DYNR:dns-interceptor
DYNR:debug-dns
DYNR:router-dns
DYNR:add-static-system-info
DYNR:debug-0.29.4
DYNR:debug-0.33.0
DYNR:account-refactoring
DYNR:relay/2800_quic
DYNR:route-get-account-refactoring
DYNR:test/seed-random-routes
DYNR:feature/get-account-refactoring
DYNR:test/reconnect-race-condition
DYNR:refactor/get-account-usage
DYNR:feature/add-session-id-to-update-channel
DYNR:improve-ipv4conn
DYNR:fix/async-pion-event-handling
DYNR:debug
DYNR:add-offload
DYNR:feature/validate-group-association-debug
DYNR:fix/limit-conn-for-sqlite
DYNR:test/engine-iface
DYNR:test/transaction-for-jwt-sync
DYNR:fix/engine-stop-in-foreground
DYNR:feature/add-mysql-support
DYNR:test-migration
DYNR:refactor/header-size-values
DYNR:relay/eliminate-gob
DYNR:test/signal-dispatcher-with-relay
DYNR:relay/debug
DYNR:validate-icon
DYNR:feature/ipv6-support
DYNR:use-pre-expanded-peers-map
DYNR:feature/use-signal-dispatcher
DYNR:validate/peer-status
DYNR:add-read-write-times
DYNR:fix/sync-peer-race
DYNR:feature/relay-status
DYNR:netmap
DYNR:evaluate/network-map-hash
DYNR:fix/lower-dns-resolve-interval-on-fail
DYNR:feature/relay
DYNR:fix/go-mod-version
DYNR:upgrade-nftables
DYNR:synology-userspace-mode
DYNR:fix/use-ip-for-default-routes-on-darwin
DYNR:fix/proxy_close
DYNR:enable-release-workflow-on-pr
DYNR:deploy/peer-performance
DYNR:feature/permanent-turn
DYNR:feature/permanent-turn-proxy
DYNR:deploy/posture-check-sqlite
DYNR:feature/optimize_sqlite_save
DYNR:debug-ios-behavior
DYNR:fix/delete-route-only-after-adding
DYNR:tshoot/windows-logger
DYNR:remove-new-routing
DYNR:refactor/eliminate-repo-dependency
DYNR:add-arm-to-ci
DYNR:refactor-demo-account-object
DYNR:test/abc2
DYNR:test/abc
DYNR:send-ssh-rosenpass-config-meta
DYNR:refactor-demo
DYNR:ensure-schedule-never-runs-non-positive
DYNR:feature/peer-validator-groupmgm
DYNR:feature/peer-validator-fix
DYNR:fix/include-active-dashboard-users
DYNR:fix/handle-canceling-schedule
DYNR:fix/geo-download
DYNR:debug-google-workspace
DYNR:yury/resolve-ip-to-location
DYNR:feature/extend-sysinfo
DYNR:sqlite-async-peer-status
DYNR:yury/add-postgresql-store
DYNR:fix/route
DYNR:test-build
DYNR:posture-checks-poc
DYNR:debug-keycloak-idp
DYNR:poc/netstack
DYNR:for-pascal-tmp
DYNR:peer-logout-management
DYNR:manual-peer-logout
DYNR:detached
DYNR:chore/refactor-management
DYNR:test/dns-bind
DYNR:fix/enforce-acl-for-containers
DYNR:yury/use-sync-map-in-updatechannel
DYNR:fix/events-key-handling
DYNR:filter-cache-on-load-account
DYNR:fix/user-expiration
DYNR:handle-user-context-cancellation
DYNR:nb-client-k8s-statefulset
DYNR:fake-addr
DYNR:fix/iptables_in_docker
DYNR:ebpf-debug
DYNR:update-getting-started-flow-use-postgres
DYNR:fix/peer_list_notification
DYNR:feature/device-authentication-with-client-secret
DYNR:feature/keep_alive
DYNR:feat-groups-from-jwt
DYNR:separate_proxy_from_wgconfig
DYNR:fix/wg_conn
DYNR:wg_conn_fix
DYNR:wg_bind_parallel_processing
DYNR:fix-rollback-get-acls
DYNR:proxy_cfg_cleanup
DYNR:performance-improvement-rego
DYNR:update-lock-log-level
DYNR:feat-client-side-acl
DYNR:refactor/move_grpcserver_logic_to_account_manager
DYNR:feature/event-storage
DYNR:feature/update-idp-redeeming-invite
DYNR:feature/api-peer-info
DYNR:return-groupminimum-setupkey
DYNR:feature/interface-bind
DYNR:documentation_enhancement
DYNR:fix-peer-registration
DYNR:ssh
DYNR:users_cache
DYNR:pass-client-caller
DYNR:client_caller_type
DYNR:revert-283-feat-fix-windows-installer
DYNR:periodic-peer-updates
DYNR:ebpf
DYNR:braginini/wasm
DYNR:v0.76.2
DYNR:v0.76.1
DYNR:v0.76.0
DYNR:v0.75.1
DYNR:v0.75.0
DYNR:v0.74.7
DYNR:v0.74.6
DYNR:v0.74.5
DYNR:v0.75.0-rc.6
DYNR:v0.74.4
DYNR:v0.74.3
DYNR:v0.75.0-rc.5
DYNR:v0.74.2
DYNR:v0.74.1
DYNR:v0.75.0-rc.4
DYNR:v0.74.0
DYNR:v0.74.0-rc.2
DYNR:v0.74.0-rc.1
DYNR:v0.73.2
DYNR:v0.75.0-rc.3
DYNR:v0.75.0-rc.2
DYNR:v0.73.1
DYNR:v0.75.0-rc.1
DYNR:v0.73.0
DYNR:v0.72.4
DYNR:v0.72.3
DYNR:v0.72.2
DYNR:v0.72.1
DYNR:v0.72.0
DYNR:v0.71.4
DYNR:v0.71.3
DYNR:v0.71.2
DYNR:v0.71.1
DYNR:v0.71.0
DYNR:v0.70.5
DYNR:v0.70.4
DYNR:v0.70.3
DYNR:v0.70.2
DYNR:v0.70.1
DYNR:v0.70.0
DYNR:v0.69.0
DYNR:v0.68.3
DYNR:v0.68.2
DYNR:v0.68.1
DYNR:v0.68.0
DYNR:v0.67.4
DYNR:v0.67.3
DYNR:v0.67.2
DYNR:v0.67.1
DYNR:v0.67.0
DYNR:v0.66.4
DYNR:v0.66.3
DYNR:v0.66.2
DYNR:v0.66.1
DYNR:v0.66.0
DYNR:v0.65.3
DYNR:v0.65.2
DYNR:v0.65.1
DYNR:v0.65.0
DYNR:v0.64.6
DYNR:v0.64.5
DYNR:v0.64.4
DYNR:v0.64.3
DYNR:v0.64.2
DYNR:v0.64.1
DYNR:v0.64.0
DYNR:v0.63.0
DYNR:v0.62.3
DYNR:v0.62.2
DYNR:v0.62.1
DYNR:v0.62.0
DYNR:v0.61.2
DYNR:v0.61.1
DYNR:v0.61.0
DYNR:v0.60.9
DYNR:v0.60.8
DYNR:v0.60.7
DYNR:v0.60.6
DYNR:v0.60.5
DYNR:v0.60.4
DYNR:v0.60.3
DYNR:v0.60.2
DYNR:v0.60.1
DYNR:v0.60.0
DYNR:v0.59.13
DYNR:v0.59.12
DYNR:v0.59.11
DYNR:v0.59.10
DYNR:v0.59.9
DYNR:v0.59.8
DYNR:v0.59.7
DYNR:v0.59.6
DYNR:v0.59.5
DYNR:v0.59.4
DYNR:v0.59.3
DYNR:v0.59.2
DYNR:v0.59.1
DYNR:v0.59.0
DYNR:v0.58.2
DYNR:v0.58.1
DYNR:v0.58.0
DYNR:v0.57.1
DYNR:v0.57.0
DYNR:v0.56.1
DYNR:v0.56.0
DYNR:v0.55.1
DYNR:v0.55.0
DYNR:v0.54.2
DYNR:v0.54.1
DYNR:v0.54.0
DYNR:v0.53.0
DYNR:v0.52.2
DYNR:v0.52.1
DYNR:v0.52.0
DYNR:v0.51.2
DYNR:v0.51.1
DYNR:v0.51.0
DYNR:v0.50.3
DYNR:v0.50.2
DYNR:v0.50.1
DYNR:v0.50.0
DYNR:v0.49.0
DYNR:v0.48.0-dev2
DYNR:v0.48.0
DYNR:v0.47.2
DYNR:v0.47.1
DYNR:v0.47.0
DYNR:v0.46.0
DYNR:v0.45.3
DYNR:v0.45.2
DYNR:v0.45.1
DYNR:v0.45.0
DYNR:v0.44.0
DYNR:v0.43.3
DYNR:v0.43.2
DYNR:v0.43.1
DYNR:v0.43.0
DYNR:v0.42.0
DYNR:v0.41.3
DYNR:v0.41.2
DYNR:v0.41.1
DYNR:v0.41.0
DYNR:v0.40.1
DYNR:v0.40.0
DYNR:v0.39.2
DYNR:v0.39.1
DYNR:v0.39.0
DYNR:v0.38.2
DYNR:v0.38.1
DYNR:v0.38.0
DYNR:v0.37.2
DYNR:v0.37.1
DYNR:v0.37.0
DYNR:v0.36.7
DYNR:v0.36.6
DYNR:v0.36.5
DYNR:v0.36.4
DYNR:v0.36.3
DYNR:v0.36.2
DYNR:v0.36.1
DYNR:v0.36.0
DYNR:v0.35.2
DYNR:v0.35.1
DYNR:v0.35.0
DYNR:v0.34.1
DYNR:v0.34.0
DYNR:v0.33.0
DYNR:v0.32.0
DYNR:v0.31.1
DYNR:v0.31.0
DYNR:v0.30.3
DYNR:v0.30.2
DYNR:v0.30.1
DYNR:v0.30.0
DYNR:v0.29.4
DYNR:v0.29.3
DYNR:0.29.3
DYNR:v0.29.2
DYNR:v0.29.1
DYNR:v0.29.0
DYNR:v0.28.9
DYNR:v0.28.8
DYNR:v0.28.7
DYNR:v0.28.6
DYNR:v0.28.5
DYNR:v0.28.4
DYNR:v0.28.3
DYNR:v0.28.2
DYNR:v0.28.1
DYNR:v0.28.0
DYNR:v0.27.10
DYNR:v0.27.9
DYNR:v0.27.8
DYNR:v0.27.7
DYNR:v0.27.6
DYNR:v0.27.5
DYNR:v0.27.4
DYNR:v0.27.3
DYNR:v0.27.2
DYNR:v0.27.1
DYNR:v0.27.0
DYNR:v0.26.7
DYNR:v0.26.6
DYNR:v0.26.5
DYNR:v0.26.4
DYNR:v0.26.3
DYNR:v0.26.2
DYNR:v0.26.1
DYNR:v0.26.0
DYNR:v0.25.9
DYNR:v0.25.8
DYNR:v0.25.7
DYNR:v0.25.6
DYNR:v0.25.5
DYNR:v0.25.4
DYNR:v0.25.3
DYNR:v0.25.2
DYNR:v0.25.1
DYNR:v0.25.0
DYNR:v0.24.4
DYNR:v0.24.3
DYNR:v0.24.2
DYNR:v0.24.1
DYNR:v0.24.0
DYNR:v0.23.9
DYNR:v0.23.8
DYNR:v0.23.7
DYNR:v0.23.6
DYNR:v0.23.5
DYNR:v0.23.4
DYNR:v0.23.3
DYNR:v0.23.2
DYNR:v0.23.1
DYNR:v0.23.0
DYNR:v0.22.7
DYNR:v0.22.6
DYNR:v0.22.5
DYNR:v0.22.4
DYNR:v0.22.3
DYNR:v0.22.2
DYNR:v0.22.1
DYNR:v0.22.0
DYNR:v0.21.11
DYNR:v0.21.10
DYNR:v0.21.9
DYNR:v0.21.8
DYNR:v0.21.7
DYNR:v0.21.6
DYNR:v0.21.5
DYNR:v0.21.4
DYNR:v0.21.3
DYNR:v0.21.2
DYNR:v0.21.1
DYNR:v0.21.0
DYNR:v0.20.8
DYNR:v0.20.7
DYNR:v0.20.6
DYNR:v0.20.5
DYNR:v0.20.4
DYNR:v0.20.3
DYNR:v0.20.2
DYNR:v0.20.1
DYNR:v0.20.0
DYNR:v0.19.0
DYNR:v0.18.1
DYNR:v0.18.0
DYNR:v0.17.0
DYNR:v0.16.0
DYNR:v0.15.3
DYNR:v0.15.2
DYNR:v0.15.1
DYNR:v0.15.0
DYNR:v0.14.6
DYNR:v0.14.5
DYNR:v0.14.4
DYNR:v0.14.3
DYNR:v0.14.2
DYNR:v0.14.1
DYNR:v0.14.0
DYNR:v0.13.0
DYNR:v0.12.0
DYNR:v0.11.6
DYNR:v0.11.5
DYNR:v0.11.4
DYNR:v0.11.3
DYNR:v0.11.2
DYNR:v0.11.1
DYNR:v0.11.0
DYNR:v0.10.10
DYNR:v0.10.9
DYNR:v0.10.8
DYNR:v0.10.7
DYNR:v0.10.6
DYNR:v0.10.5
DYNR:v0.10.4
DYNR:v0.10.3
DYNR:v0.10.2
DYNR:v0.10.1
DYNR:v0.10.0
DYNR:v0.9.8
DYNR:v0.9.7
DYNR:v0.9.6
DYNR:v0.9.5
DYNR:v0.9.4
DYNR:v0.9.3
DYNR:v0.9.2
DYNR:v0.9.1
DYNR:v0.9.0
DYNR:v0.8.12
DYNR:v0.8.11
DYNR:v0.8.10
DYNR:v0.8.9
DYNR:v0.8.8
DYNR:v0.8.7
DYNR:v0.8.6
DYNR:v0.8.5
DYNR:v0.8.4
DYNR:v0.8.3
DYNR:v0.8.2
DYNR:v0.8.1
DYNR:v0.8.0
DYNR:v0.7.1
DYNR:v0.7.0
DYNR:v0.6.4
DYNR:v0.6.3
DYNR:v0.6.2
DYNR:v0.6.1
DYNR:v0.6.0
DYNR:v0.5.11
DYNR:v0.5.10
DYNR:v0.5.1
DYNR:v0.5.0
DYNR:v0.4.0
DYNR:v0.3.5
DYNR:v0.3.4
DYNR:v0.3.3
DYNR:v0.3.2
DYNR:v0.3.1
DYNR:v0.3.0
DYNR:v0.2.3
DYNR:v0.2.2-beta.1
DYNR:v0.2.1-beta.5
DYNR:v0.2.0-beta.5
DYNR:v0.2.0-beta.4
DYNR:v0.2.0-beta.3
DYNR:v0.2.0-beta.2
DYNR:v0.2.0-beta.1
DYNR:v0.1.0-beta.3
DYNR:v0.1.0-beta.2
DYNR:v0.1.0-beta.1
DYNR:v0.1.0-rc.2
DYNR:v0.1.0-rc-1
DYNR:v0.0.8-hotfix-1
DYNR:v0.0.8
DYNR:v0.0.7
DYNR:v0.0.6
DYNR:v0.0.5
DYNR:v0.0.4
DYNR:v0.0.3
DYNR:v0.0.2
DYNR:v0.0.1
DYNR:v0.0.0
12 Commits
refactor/u
...
android/gu
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
906fdf4bb5 |
Merge remote-tracking branch 'origin/main' into android/gui-integration
# Conflicts: # client/android/profile_state_test.go |
||
|
|
4263315527 |
[client] Read the extend flow's config and hint path in one lock
extendAuthSession took the config from stateSnapshot and the config path from a second call, each acquiring the lock on its own. A profile switch landing between the two swaps every field, which would authenticate with one profile's config while reading the login hint from another profile's account file. Replace configPathSnapshot with authSnapshot, which returns both from a single critical section. |
||
|
|
56ff5237dd |
[client] Report the login's profile ID only when it is one
LoginResult.ProfileID was filled from the request's ProfileName, which is a handle: a display name or an ID prefix resolve just as well. waitSSOLogin names the state file after it, so a handle would have written the account email to a file no reader looks for — the email silently lost, plus a stray file. Fill it only on the branch where the daemon supplied the ID, and leave it empty otherwise; waitSSOLogin then falls back to the active profile, as it did before the field existed. |
||
|
|
3a17d0381c |
[client] Clear the removed profile's email by its resolved ID
RemoveProfile takes a handle — a display name or an ID prefix resolve just as well as a full ID — but the state file holding the account email is named after the ID. Passing the request handle straight through therefore named a different file, or none, leaving the email behind for a recreated profile to inherit. The daemon already echoes back the ID it resolved for exactly this purpose; use it. |
||
|
|
6155c94b05 |
[client] Reuse the profile's account for Android SSO logins
The Android binding never recorded which account a profile belongs to, so every interactive login and every session extend went to the IdP with no login_hint. With nothing to go on the IdP picks an account itself, which on a session extend means re-authenticating an account the profile is already signed in with. Store the email the PKCE flow already parses out of the ID token, and pass it back as the hint on later flows. An empty hint stays meaningful: a fresh profile, or one that was logged out, deliberately leaves the choice to the IdP, which is how a profile changes accounts. Logout clears the stored email for that reason — while it is on disk it would steer the next login straight back into the account just logged out of. The email is keyed off the profile's config path rather than the active profile: Auth.login runs in a goroutine, so the active profile can change under a flow already in flight. It lands in <profile>.account.json, not the <profile>.state.json desktop uses for the same data — there the email and the engine's state manager sit in different directories, but on Android both resolve under files/, and the state manager rewrites the whole file from its own keys. |
||
|
|
09f7fb6510 |
[client] Drop the initial GetNetworkMap fetch on Android startup
Android startup opened a throwaway Sync stream to management before creating the TUN device, only to learn the initial routes, DNS config and the DNS feature flag. Server side this computed a full network map and broadcast a false connect/disconnect pair to every peer in the account on every Android start; client side it put a blocking network round trip on the critical startup path and failed the whole engine start when management was unreachable. None of its outputs are needed upfront anymore: the TUN is created empty and the first sync triggers a rebuild that pulls the fresh route and search domain state, the permanent DNS server starts with an empty config that the first sync populates, and the fake IP manager is created lazily when the DNS feature flag turns on. Remove readInitialSettings and its plumbing: the InitialRoutes and DNSFeatureFlag manager config fields, the android construction-time route setup, the initial-route bookkeeping in the notifiers and the now-unused GetNetworkMap client method. |
||
|
|
4475819f38 |
[client] Pull fresh TUN settings on Android rebuild instead of pushing state
The Android TUN rebuild consumed state pushed through notifications and a Java-side snapshot, and both sources were unreliable. The DNS search-domain notifier fired OnNetworkChanged with an empty string, which the rebuild handler treated as the new route list, so any search domain change rebuilt the TUN with zero routes and cut all tunnel traffic. The rebuild also reused the search domains cached at the last establish, so search domain updates never reached the TUN at runtime. Make the notification a pure trigger and let the Java side pull a fresh snapshot instead. Expose GetTunSettings on the Android SDK client: it returns the current TUN route ranges, derived on demand by the route manager from the client routes, the exit-node selection and the fake IP blocks, together with the DNS search domains. The route notifier keeps only its last-announced baseline to suppress triggers for unchanged syncs; the TUN route state is owned by the route manager. SearchDomains now locks the DNS server mutex since the pull arrives from a Java thread. Requires the matching android-client change that switches recreateTUN to the pull API. |
||
|
|
c8adaa45da |
[client] Serialize Android tunnel reconfiguration callbacks
The Android route notifier and the DNS search-domain notifier both delivered OnNetworkChanged from a fire-and-forget goroutine per update. Two updates in quick succession could reach the Java side reordered: the TUN rebuild handler applies them in arrival order and compares against the last applied parameters, so a stale route set delivered last won as the final TUN state. This is the same reordering hazard fixed for iOS in #6454. Wrap the Android network change listener into the shared tunnelnotifier FIFO introduced in #6870, the same way RunOniOS does, and deliver both notifiers synchronously into it. Enqueueing is non-blocking, a single delivery goroutine preserves order, and calls into Java never overlap. Also stop hasRouteDiff from sorting the notifier's shared route slices in place; compare sorted copies instead. |
||
|
|
e970daaf5f |
[client] Create the Android fake IP manager lazily on DNS flag enable
The fake IP manager was only created at route manager construction, from the DNS feature flag fetched by the initial GetNetworkMap call. When the flag flipped to true mid-session, UpdateRoutes set useNewDNSRoute but never created the manager, so domain routes added after the flip got a DNS interceptor with a nil fake IP manager. internalDnatFw only checked for a firewall and GOOS, so the interceptor took the DNAT path and called GetFakeIP/AllocateFakeIP on the nil *fakeip.Manager. These methods lock m.mu first, which is a nil pointer dereference: the first DNS answer for such a route panicked and crashed the VPN service. The fake IP blocks (240.0.0.0/8 and its v6 pair) also never reached the TUN, since only the constructor registered them. Create the manager and its TUN routes from UpdateRoutes when the flag turns on, notify so the fake IP blocks get into the TUN without a client route change, and treat a nil manager as no internal DNAT. This is groundwork for removing the initial GetNetworkMap fetch, after which every startup goes through the flag-off-to-on transition. |
||
|
|
5ae323a555 |
[client] Delete the account email when a profile is removed
Removing a profile left its state file behind: the daemon deletes what it owns, but the file holding the account email is user-owned and out of reach for a root daemon, which is why Connection.Logout already clears it from the UI side. Beyond the stray file, legacy profiles are keyed by name rather than by a generated ID, so recreating a profile under a removed one's name inherited its email — shown as the account in the profile list and sent as the login_hint on the next login. |
||
|
|
19337dc056 |
[client] File the account email against the profile the login ran for
SetActiveProfileState resolves the target itself, so it writes to whichever profile is active when it is called. A GUI SSO login spans seconds of user interaction in the browser, and the tray stays clickable throughout: switching profiles in that window left the email filed under the profile that happened to be active when the flow returned. The wrong profile then advertised an account it does not own, and offered it as the login_hint next time. Add SetProfileState(id, state), the write-side counterpart of the existing GetProfileState(id), and keep SetActiveProfileState as a wrapper for callers with no particular profile in mind. Login now reports the profile it resolved so the frontend can hand it back with the SSO wait, which closes the window. |
||
|
|
fd06d9a3d5 |
[client] Store the account email after a GUI SSO login
The daemon returns the authenticated user's email from WaitSSOLogin but cannot persist it: it runs as root while the per-profile state file is user-owned. The CLI's handleSSOLogin writes it after its own WaitSSOLogin; the GUI path read the value and dropped it. The profile was therefore left with no email, so Profiles.List showed no account for it, and later logins and session extends went out with no login_hint — leaving the IdP to pick an account instead of reusing the one the profile belongs to. Mirror the CLI and store it, next to the Logout path that already clears the same file for the same reason. |