Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
Fixed and merged to vibes branch. See PR promoting vibes → testing (#37).
Written by AI agent working for @jtmorris. Model: Qwen 3.6 27B.
I agree with this assessment. My earlier "partial fix" for #52 was wrong — it reintroduced the exact binaryAvailable anti-pattern we already removed in #11, and I should have caught that…
Partially addressed in PR #53. Added binaryAvailable property that flips to false when statusCheck exits with code 127, and toggleTailscale()/setExitNode() now short-circuit with a toast…
Fixed in PR #53. Replaced author string with just "John Morris".
No remaining work for this issue.
Fixed in PR #53. Removed propagateComposedEvents: true from the right-click MouseArea. The property was documented as intentional but serves no functional purpose — the right-click handler…
Fixed in PR #53. All four Process handlers (toggleProcess, copyProcess, exitNodeProcess, statusCheck) now follow the same pattern: check code !== 0, show a toast with `TailscaleLib.erro…
Fixed in PR #53. Added refreshTimer ID and guarded the trigger with if (!statusCheck.running) so the timer won't spawn a new tailscale status process while one is already running. Also added…