Fixed in PR #53. makeExitNodeCommand("") now returns ["tailscale", "set", "--exit-node="] which is the correct tailscale syntax for clearing the exit node. Previously it returned the same…
Fixed in PR #53. Added hasOwnProperty guard to both parsePeers (via Object.keys().map() with null filter) and findActiveExitNode (via for..in with continue). This prevents prototype…
Fixed in PR #53. Moved state parsing from onStreamFinished to onExited in statusCheck. The parser now runs only after the exit code is validated — if code !== 0, the error path fires and…
_pendingToggleAction no longer exists in the codebase. The stale state problem was addressed by the retry-fallback-cached clipboard strategy and immediate statusCheck refresh after every command.…
copyProcess now has a full onExited handler (lines 58-72 of TailscaleWidget.qml) with retry logic across clipboard tools. Issue resolved.