2026-04-13 - 2026-07-13

Overview

1 active pull request
52 active issues
Excluding merges, 2 authors have pushed 69 commits to master and 81 commits to all branches. On master, 14 files have changed and there have been 1682 additions and 713 deletions.

1 pull request merged by 1 user

Merged #36 Add conduct rules for agents. 2026-05-21 04:54:11 +00:00

50 issues closed from 2 users

Closed #34 Implement i18n/localization for Tailscale plugin strings 2026-05-22 21:42:43 +00:00

Closed #48 Zero test coverage for Process lifecycles, timing, or widget behavior 2026-05-22 21:42:43 +00:00

Closed #47 No structured logging of command execution or results 2026-05-22 21:42:43 +00:00

Closed #42 isConnected state becomes stale between timer polls 2026-05-22 21:42:43 +00:00

Closed #43 TailscaleWidget.qml mixes UI, timers, Processes, and logic with no separation 2026-05-22 21:42:43 +00:00

Closed #49 Clipboard path uses fragile sh -c string construction 2026-05-22 21:42:43 +00:00

Closed #50 propagateComposedEvents on right-click MouseArea is a footgun 2026-05-22 03:14:22 +00:00

Closed #51 plugin.json contains unprofessional author string 2026-05-22 03:14:22 +00:00

Closed #46 Error paths are inconsistent across Process handlers 2026-05-22 03:14:21 +00:00

Closed #44 Timer continues polling after tailscale binary disappears or fails 2026-05-22 03:14:20 +00:00

Closed #41 makeExitNodeCommand("") emits invalid tailscale command 2026-05-22 03:14:19 +00:00

Closed #40 for...in loops without hasOwnProperty guard in lib.js 2026-05-22 03:14:18 +00:00

Closed #38 statusCheck parses stdout in onStreamFinished before onExited validates exit code 2026-05-22 03:14:17 +00:00

Closed #52 tailscale binary invoked via PATH with no absolute path or sandboxing 2026-05-21 19:59:53 +00:00

Closed #45 _pendingToggleAction is a stringly-typed workaround for stale state 2026-05-21 09:36:09 +00:00

Closed #39 copyProcess has no onExited handler 2026-05-21 09:36:04 +00:00

Closed #33 Aggressive unconditional 5-second polling even when popout is closed (battery/CPU waste) 2026-05-21 07:17:01 +00:00

Closed #31 Duplicate state-reset logic in statusCheck catch vs onExited (minor maintainability) 2026-05-21 07:16:59 +00:00

Closed #30 statusCheck triggered from too many sites without deduplication (wasteful concurrent polls) 2026-05-21 07:16:59 +00:00

Closed #32 Inverted MouseArea + manual size binding anti-pattern in peer list delegate 2026-05-21 07:16:59 +00:00

Closed #29 Lax / fragmented error handling throughout the widget (catch-all masking, missing exit checks, no stderr) 2026-05-21 07:16:57 +00:00

Closed #28 No accessibility attributes + hardcoded English strings (a11y + i18n gap) 2026-05-21 07:16:57 +00:00

Closed #27 Redundant boundsBehavior: DragAndOvershootBounds on ListView (unwanted desktop bounce) 2026-05-21 07:16:56 +00:00

Closed #26 Timer fires before detectClipboard completes (startup race on first statusCheck) 2026-05-21 07:16:54 +00:00

Closed #25 No stderr capture on toggleProcess / exitNodeProcess (lost diagnostic output) 2026-05-21 07:16:54 +00:00

Closed #24 Missing package.json declaring module type (ESM/CJS mismatch between tests and lib) 2026-05-21 07:16:53 +00:00

Closed #23 Hardcoded popout dimensions vs dynamic content (magic numbers, no implicit sizing) 2026-05-21 07:16:51 +00:00

Closed #22 Redundant duplicate keys in errorMessage() (up/connect, down/disconnect) 2026-05-21 07:16:51 +00:00

Closed #21 Missing edge-case tests for parsePeers and findActiveExitNode 2026-05-21 07:16:51 +00:00

Closed #20 for...in without hasOwnProperty/Object.keys guard in lib.js (prototype-chain risk) 2026-05-21 07:16:49 +00:00

Closed #19 Conflicting anchors.fill + anchors.verticalCenter on peer-list delegate Row (runtime warning + undefined layout) 2026-05-21 07:16:49 +00:00

Closed #18 Layout.fillWidth inside plain Row is a silent no-op (status row spacing broken) 2026-05-21 07:16:48 +00:00

Closed #15 No guard against concurrent toggleProcess / exitNodeProcess invocations 2026-05-21 07:16:46 +00:00

Closed #17 Premature 'Copied' toast with no exit-status check on copyProcess 2026-05-21 07:16:46 +00:00

Closed #16 Over-declared permissions in plugin.json (unused settings_read / settings_write) 2026-05-21 07:16:46 +00:00

Closed #13 Double error toast spam on statusCheck failure (TailscaleWidget.qml) 2026-05-21 07:16:43 +00:00

Closed #11 Remove redundant binaryAvailable guard from TailscaleWidget.qml 2026-05-21 07:16:43 +00:00

Closed #14 Toggle error message can report the opposite action due to stale isConnected state 2026-05-21 07:16:43 +00:00

Closed #12 Shell interpolation of clipboard detection output in TailscaleWidget.qml 2026-05-21 06:43:27 +00:00

Closed #35 Extract QML-embedded logic into testable JavaScript modules 2026-05-21 06:05:25 +00:00

Closed #1 Tailscale Widget Plugin for Dank Bar 2026-05-19 00:41:17 +00:00

Closed #9 8. Final packaging & manual test 2026-05-19 00:23:54 +00:00

Closed #8 7. Error handling & toasts 2026-05-18 21:06:16 +00:00

Closed #7 6. Exit-node selection buttons 2026-05-18 19:14:20 +00:00

Closed #6 5. Peer list + click-to-copy 2026-05-18 05:48:17 +00:00

Closed #5 4. Popout skeleton – header row 2026-05-17 21:46:37 +00:00

Closed #10 #3.5 Fix popout opening blocked by MouseArea event consumption 2026-05-16 02:28:42 +00:00

Closed #4 3. Status polling + reactive state 2026-05-16 02:19:04 +00:00

Closed #2 1. Plugin manifest & scaffolding 2026-05-16 02:17:39 +00:00

Closed #3 2. Bar pill – icon + right-click toggle 2026-05-16 02:14:55 +00:00

52 issues created by 1 user

Opened #1 Tailscale Widget Plugin for Dank Bar 2026-05-16 01:22:32 +00:00

Opened #2 1. Plugin manifest & scaffolding 2026-05-16 01:35:48 +00:00

Opened #3 2. Bar pill – icon + right-click toggle 2026-05-16 01:37:22 +00:00

Opened #4 3. Status polling + reactive state 2026-05-16 01:37:55 +00:00

Opened #5 4. Popout skeleton – header row 2026-05-16 01:38:09 +00:00

Opened #6 5. Peer list + click-to-copy 2026-05-16 01:38:40 +00:00

Opened #7 6. Exit-node selection buttons 2026-05-16 01:39:22 +00:00

Opened #8 7. Error handling & toasts 2026-05-16 01:39:55 +00:00

Opened #9 8. Final packaging & manual test 2026-05-16 01:40:19 +00:00

Opened #10 #3.5 Fix popout opening blocked by MouseArea event consumption 2026-05-16 02:26:42 +00:00

Opened #11 Remove redundant binaryAvailable guard from TailscaleWidget.qml 2026-05-19 01:14:54 +00:00

Opened #12 Shell interpolation of clipboard detection output in TailscaleWidget.qml 2026-05-19 02:37:48 +00:00

Opened #13 Double error toast spam on statusCheck failure (TailscaleWidget.qml) 2026-05-19 04:04:51 +00:00

Opened #14 Toggle error message can report the opposite action due to stale isConnected state 2026-05-19 04:07:32 +00:00

Opened #15 No guard against concurrent toggleProcess / exitNodeProcess invocations 2026-05-19 04:08:36 +00:00

Opened #16 Over-declared permissions in plugin.json (unused settings_read / settings_write) 2026-05-19 04:09:14 +00:00

Opened #17 Premature 'Copied' toast with no exit-status check on copyProcess 2026-05-19 04:10:12 +00:00

Opened #18 Layout.fillWidth inside plain Row is a silent no-op (status row spacing broken) 2026-05-19 04:12:36 +00:00

Opened #19 Conflicting anchors.fill + anchors.verticalCenter on peer-list delegate Row (runtime warning + undefined layout) 2026-05-19 04:15:18 +00:00

Opened #20 for...in without hasOwnProperty/Object.keys guard in lib.js (prototype-chain risk) 2026-05-19 04:18:27 +00:00

Opened #21 Missing edge-case tests for parsePeers and findActiveExitNode 2026-05-19 04:18:45 +00:00

Opened #22 Redundant duplicate keys in errorMessage() (up/connect, down/disconnect) 2026-05-19 04:19:10 +00:00

Opened #23 Hardcoded popout dimensions vs dynamic content (magic numbers, no implicit sizing) 2026-05-19 04:19:59 +00:00

Opened #24 Missing package.json declaring module type (ESM/CJS mismatch between tests and lib) 2026-05-19 04:22:24 +00:00

Opened #25 No stderr capture on toggleProcess / exitNodeProcess (lost diagnostic output) 2026-05-19 04:22:54 +00:00

Opened #26 Timer fires before detectClipboard completes (startup race on first statusCheck) 2026-05-19 04:25:05 +00:00

Opened #27 Redundant boundsBehavior: DragAndOvershootBounds on ListView (unwanted desktop bounce) 2026-05-19 04:25:38 +00:00

Opened #28 No accessibility attributes + hardcoded English strings (a11y + i18n gap) 2026-05-19 04:27:18 +00:00

Opened #29 Lax / fragmented error handling throughout the widget (catch-all masking, missing exit checks, no stderr) 2026-05-19 04:30:56 +00:00

Opened #30 statusCheck triggered from too many sites without deduplication (wasteful concurrent polls) 2026-05-19 04:31:52 +00:00

Opened #31 Duplicate state-reset logic in statusCheck catch vs onExited (minor maintainability) 2026-05-19 04:34:38 +00:00

Opened #32 Inverted MouseArea + manual size binding anti-pattern in peer list delegate 2026-05-19 04:46:05 +00:00

Opened #33 Aggressive unconditional 5-second polling even when popout is closed (battery/CPU waste) 2026-05-19 04:46:43 +00:00

Opened #34 Implement i18n/localization for Tailscale plugin strings 2026-05-20 08:15:26 +00:00

Opened #35 Extract QML-embedded logic into testable JavaScript modules 2026-05-20 09:33:46 +00:00

Opened #38 statusCheck parses stdout in onStreamFinished before onExited validates exit code 2026-05-21 07:43:23 +00:00

Opened #39 copyProcess has no onExited handler 2026-05-21 07:43:27 +00:00

Opened #40 for...in loops without hasOwnProperty guard in lib.js 2026-05-21 07:43:29 +00:00

Opened #41 makeExitNodeCommand("") emits invalid tailscale command 2026-05-21 07:43:29 +00:00

Opened #42 isConnected state becomes stale between timer polls 2026-05-21 07:43:33 +00:00

Opened #43 TailscaleWidget.qml mixes UI, timers, Processes, and logic with no separation 2026-05-21 07:43:34 +00:00

Opened #44 Timer continues polling after tailscale binary disappears or fails 2026-05-21 07:43:34 +00:00

Opened #45 _pendingToggleAction is a stringly-typed workaround for stale state 2026-05-21 07:43:38 +00:00

Opened #47 No structured logging of command execution or results 2026-05-21 07:43:39 +00:00

Opened #46 Error paths are inconsistent across Process handlers 2026-05-21 07:43:39 +00:00

Opened #48 Zero test coverage for Process lifecycles, timing, or widget behavior 2026-05-21 07:43:46 +00:00

Opened #49 Clipboard path uses fragile sh -c string construction 2026-05-21 07:43:47 +00:00

Opened #50 propagateComposedEvents on right-click MouseArea is a footgun 2026-05-21 07:43:47 +00:00

Opened #51 plugin.json contains unprofessional author string 2026-05-21 07:43:51 +00:00

Opened #52 tailscale binary invoked via PATH with no absolute path or sandboxing 2026-05-21 07:43:52 +00:00

Opened #54 Feature Request: Public IP address in addition to Tailscale node IP address. 2026-05-25 05:10:33 +00:00

Opened #55 Bug: Tailscale node list still shows, even when disconnected from Tailscale. 2026-05-25 05:11:53 +00:00