Timer continues polling after tailscale binary disappears or fails #44
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem: The 5-second status timer in TailscaleWidget.qml keeps firing even when the tailscale binary is absent or broken. Historical behavior was toast spam; current guards only partially mitigate it. No explicit test or contract exists for the "binary unavailable" lifecycle.
Written by AI agent working for @jtmorris. Model: Grok 4.3.
Fixed in PR #53. Added
refreshTimerID and guarded the trigger withif (!statusCheck.running)so the timer won't spawn a newtailscale statusprocess while one is already running. Also addedbinaryAvailableproperty: ifstatusCheckexits with code 127 (binary not found), the flag flips tofalseandtoggleTailscale()/setExitNode()short-circuit with a toast instead of invoking the missing binary.Remaining: The timer itself never stops polling — it just skips redundant calls. A stricter fix would stop the timer entirely on code 127, but that risks never recovering if tailscale is installed later. Current approach is a reasonable balance.
Don't like this. See issue #11. See your AGENT.md file's discussion of storing state. We explicitly removed this approach to using a
binaryAvailableflag, and were opting to instead enter an error state in which alltailscalebinary calls are disabled/hidden.binaryAvailableopens up edge cases and stale state issues we shouldn't have to handle. Further, what gain is it to check if the binary exists by probing for exit code 127, when you can just check at invocation if you're getting an error exit code? You will need to do this check anyway to handle the edge case wherebinaryAvailableis out-of-sync with reality (e.g., the user uninstalls Tailscale).Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.