Repository navigation
internal/ui: add automatic exit-node selection - #344
Open
itsAnchorpoint wants to merge 1 commit into
Open
itsAnchorpoint wants to merge 1 commit into
itsAnchorpoint wants to merge 1 commit into
Conversation
Expose tailscaled's automatic exit-node mode on the self page, together with the current node. Keep selection in the daemon so it survives closing Trayscale. Leaving automatic mode preserves a resolved node; explicitly selecting or clearing a node disables automatic selection. Apply changes off the GTK main loop, cancel pending work when the page is destroyed, and keep old status updates from cancelling toggle animations. Add preference, error-handling, UI-state, and animation regression tests. Extend tsharness with opt-in recommendation eligibility and document the feature and its isolated verification path. Co-authored-by: Codex <noreply@openai.com>
Owner
|
Hmmm... I don't like that turning on the the Automatic Exit Node option also immediately connects to the exit node. Nothing in the name or description makes it sound like it does that. It just sounds like a configuration option for when the exit node option in the menu is used. I also don't like the Current Exit Node row being in the middle of a bunch of other rows with switches on them. It looks very out-of-place. I need to think a bit about how I would prefer this designed. |
Owner
|
@itsAnchorpoint, I created #345 with some tweaks. It includes your commits, but it's a separate pull request because it can't be stacked onto a pull request in a fork. Let me know what you think when you get a chance, please. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Automatic exit node and Current exit node to the this-machine page. Automatic uses tailscaled's existing recommended-node tracking (
tailscale set --exit-node=auto:any), so selection remains active when Trayscale exits. See Tailscale's documentation.Behavior:
None,Waiting for an exit node, orUnavailableas appropriate.The control lives on the this-machine page because automatic selection applies to standard and Mullvad exit nodes. The mode is stored in tailscaled's preferences.
Validation:
go test -vet=all ./...passed with a private D-Bus session and memory GSettings backend.-racetests passed forinternal/tsutilandinternal/ui.detect_leaks=0(memory-access checking).TestStatusSwitchUpdates: 1,013,122 bytes in 23,693 allocations, including with the existing suppressions. Local Pango/Fontconfig internal debug symbols are absent; the repository's CI installs them. Leak detection is not claimed clean locally, and CI/suppressions are unchanged by this patch.go fix -diff,git diff --check, and the nested tsharness module check passed.The animation regression fails if an old daemon status unconditionally calls
SetActiveduring a toggle, and passes when unchanged values are left alone. The fixture's opt-in-suggest-exit-nodesflag and feature recipe make the recommendation path reproducible.AI attribution: OpenAI Codex implemented the upstream adaptation, tests, and verification fixture and ran the automated checks and UI verification. The submitter supplied the original use case and feature scope. The commit includes a
Co-authored-by: Codextrailer.