1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-05-05 12:02:06 -04:00

feat(tailscale): add Tailscale control center widget (#1875)

* feat(tailscale): add Tailscale control center widget

Full-stack Tailscale integration for DMS control center:

Backend (Go):
- Event-driven manager via WatchIPNBus (no polling)
- Reconnects with exponential backoff when tailscaled unavailable
- Typed conversion from ipnstate.Status to QML-friendly IPC types
- Testable via tailscaleClient interface with mock watcher
- Manager cleanup in cleanupManagers()
- 19 unit tests

Frontend (QML):
- TailscaleService with WebSocket subscription
- TailscaleWidget with peer list, filter chips, search
- Copy-to-clipboard for IPs and DNS names
- Daemon lifecycle handling (offline/stopped states)

Dependencies:
- Add tailscale.com v1.96.1 (official local API client)
- Bump Go to 1.26.1 (required by tailscale.com)

* cleanups

---------

Co-authored-by: bbedward <bbedward@gmail.com>
This commit is contained in:
Giorgio De Trane
2026-05-04 19:37:25 +02:00
committed by GitHub
parent 408beb202c
commit d223a74740
19 changed files with 2055 additions and 11 deletions

View File

@@ -918,6 +918,12 @@ Column {
}
builtinInstance = Qt.binding(() => root.model?.cupsBuiltinInstance);
}
if (id === "builtin_tailscale") {
if (root.model?.tailscaleLoader) {
root.model.tailscaleLoader.active = true;
}
builtinInstance = Qt.binding(() => root.model?.tailscaleBuiltinInstance);
}
}
sourceComponent: {