| Age | Commit message (Expand) | Author | Files | Lines |
| 2025-07-23 | ipn/ipnlocal: send Hostinfo after resolveExitNode for "auto:any" (#16632) | Simon Law | 2 | -43/+66 |
| 2025-07-22 | tailcfg: add Hostinfo.ExitNodeID to report the selected exit node (#16625) | Simon Law | 2 | -15/+61 |
| 2025-07-22 | cmd/tailscale/cli: revert key for web config for services to FQDN (#16627) | KevinLiang10 | 2 | -6/+8 |
| 2025-07-21 | wgengine/magicsock,all: allocate peer relay over disco instead of PeerAPI (#1... | Jordan Whited | 2 | -2/+2 |
| 2025-07-21 | all-kube: create Tailscale Service for HA kube-apiserver ProxyGroup (#16572) | Tom Proctor | 2 | -6/+7 |
| 2025-07-18 | client/local,cmd/tailscale/cli,ipn/localapi: expose eventbus graph (#16597) | Claus Lensbøl | 1 | -0/+50 |
| 2025-07-16 | cmd/tailscale/cli: Add service flag to serve command (#16191) | KevinLiang10 | 3 | -41/+286 |
| 2025-07-16 | ipn/ipnlocal: use rendezvous hashing to traffic-steer exit nodes | Simon Law | 2 | -71/+33 |
| 2025-07-16 | ipn/ipnlocal: sort tailscale debug peer-relay-servers slice (#16579) | Jordan Whited | 1 | -1/+4 |
| 2025-07-16 | cmd/tailscale/cli,ipn/ipnlocal,wgengine/magicsock: implement tailscale debug ... | Jordan Whited | 2 | -0/+10 |
| 2025-07-15 | ipn/ipnlocal: check if suggested exit node is online | Simon Law | 1 | -0/+3 |
| 2025-07-15 | ipn/ipnlocal: modernize nm.Peers with AppendMatchingPeers | Simon Law | 1 | -14/+17 |
| 2025-07-10 | ipn/ipnlocal: add traffic steering support to exit-node suggestions (#16527) | Simon Law | 2 | -7/+544 |
| 2025-07-10 | cmd/tailscale, ipn/ipnstate, wgengine/magicsock: update ping output for peer ... | Dylan Bargatze | 1 | -2/+10 |
| 2025-07-10 | ipn/localapi: do not break client on event marshalling errors (#16503) | Claus Lensbøl | 1 | -1/+15 |
| 2025-07-09 | cmd/tailscale/cli,ipn/ipnstate,wgengine/magicsock: label peer-relay (#16510) | Jordan Whited | 1 | -3/+7 |
| 2025-07-09 | ipn/ipnlocal: change order of exit node refresh and netmap update so that cli... | Nick Khyl | 2 | -3/+64 |
| 2025-07-09 | ipn/ipnlocal: add test to verify handling of unknown auto exit node expressions | Nick Khyl | 2 | -0/+25 |
| 2025-07-09 | ipn: move ParseAutoExitNodeID from ipn/ipnlocal to ipn | Nick Khyl | 4 | -134/+84 |
| 2025-07-08 | ipn/ipnlocal,util/syspolicy: add support for ExitNode.AllowOverride policy se... | Nick Khyl | 2 | -12/+419 |
| 2025-07-08 | ipn/ipnlocal: make applySysPolicy a method on LocalBackend | Nick Khyl | 2 | -21/+37 |
| 2025-07-08 | ipn/ipnlocal: refactor resolveExitNodeInPrefsLocked, setExitNodeID and resolv... | Nick Khyl | 1 | -55/+51 |
| 2025-07-08 | cmd/tailscale/cli,ipn/ipnlocal: restrict logout when AlwaysOn mode is enabled | Nick Khyl | 3 | -10/+8 |
| 2025-07-07 | ipn/ipnlocal: fix missing defer in testExtension.Shutdown | Nick Khyl | 1 | -1/+1 |
| 2025-07-07 | ipn/{ipnauth,ipnlocal,localapi}: make EditPrefs return an error if changing e... | Nick Khyl | 4 | -78/+187 |
| 2025-07-07 | ipn/ipnlocal: add (*LocalBackend).reconcilePrefsLocked | Nick Khyl | 2 | -39/+76 |
| 2025-07-07 | ipn/ipnlocal,util/syspolicy/source: retain existing exit node when using auto... | Nick Khyl | 2 | -7/+118 |
| 2025-07-07 | ipn/ipnlocal: plumb nodeBackend into suggestExitNode to support delta updates... | Nick Khyl | 2 | -28/+22 |
| 2025-07-07 | ipn/ipnlocal: add (*LocalBackend).RefreshExitNode | Nick Khyl | 1 | -32/+45 |
| 2025-07-03 | cmd/tailscale/cli,ipn,ipn/ipnlocal: add AutoExitNode preference for automatic... | Nick Khyl | 7 | -90/+786 |
| 2025-07-03 | ipn/ipnlocal: update suggestExitNode to skip offline candidates and fix TestS... | Nick Khyl | 2 | -11/+15 |
| 2025-07-03 | ipn/ipnlocal: skip TestUpdateNetmapDeltaAutoExitNode | Nick Khyl | 1 | -8/+12 |
| 2025-07-03 | ipn/ipnlocal: simplify pickNewAutoExitNode | Nick Khyl | 1 | -9/+2 |
| 2025-07-03 | ipn/ipnlocal: rename setAutoExitNodeIDLockedOnEntry to pickNewAutoExitNode; d... | Nick Khyl | 1 | -25/+8 |
| 2025-07-02 | tailcfg: report StateEncrypted in Hostinfo (#16434) | Andrew Lytvynov | 2 | -0/+33 |
| 2025-07-01 | tailcfg: add CapabilityOwner (#16426) | kari-ts | 1 | -0/+14 |
| 2025-07-01 | drive,ipn/ipnlocal: calculate peer taildrive URLs on-demand | Percy Wegmann | 1 | -8/+19 |
| 2025-06-30 | ipn/ipnlocal: add verbose Taildrive logging on client side | Percy Wegmann | 2 | -14/+27 |
| 2025-06-27 | ipn/store: make StateStore.All optional (#16409) | Andrew Lytvynov | 5 | -31/+23 |
| 2025-06-26 | ipn/store: automatically migrate between plaintext and encrypted state (#16318) | Andrew Lytvynov | 7 | -6/+186 |
| 2025-06-26 | ipn/ipnlocal: update PeerByID to return SelfNode and rename it to NodeByID (#... | JerryYan | 4 | -12/+13 |
| 2025-06-24 | ipn/ipnlocal,wgengine/magicsock: wait for magicsock to process pending events... | Nick Khyl | 3 | -1/+61 |
| 2025-06-18 | feature/tpm: implement ipn.StateStore using TPM sealing (#16030) | Andrew Lytvynov | 1 | -0/+2 |
| 2025-06-18 | ipn/ipnlocal,wgengine{/magicsock}: replace SetNetworkMap with eventbus (#16299) | Jordan Whited | 4 | -30/+69 |
| 2025-06-18 | ipn/ipnlocal: make pricing restriction message for Tailnet Lock clearer | Anton Tolchanov | 2 | -6/+14 |
| 2025-06-17 | ipn: add missing entries for OpenBSD | Juan Francisco Cantero Hurtado | 2 | -2/+2 |
| 2025-06-17 | ipn/ipnlocal: add some verbose logging to taildrive peerapi handler | Percy Wegmann | 1 | -14/+21 |
| 2025-06-16 | scripts/check_license_headers.sh: delete, rewrite as a Go test | Brad Fitzpatrick | 1 | -0/+1 |
| 2025-06-16 | ipn/ipnlocal,wgengine/magicsock: use eventbus for node & filter updates (#16271) | Jordan Whited | 3 | -14/+54 |
| 2025-06-13 | ipn/ipnlocal: signal nodeBackend readiness and shutdown | Nick Khyl | 3 | -16/+230 |