Implement SyncWarden v0.1.0
Some checks failed
Release / build (push) Failing after 19s

Full Syncthing tray wrapper with:
- System tray with 5 icon states (idle/syncing/paused/error/disconnected)
- Syncthing REST API client with auto-discovered API key
- Long-polling event listener for real-time status
- Transfer rate monitoring, folder tracking, recent files, conflict counting
- Full context menu with folders, recent files, settings toggles
- Embedded admin panel binary (webview, requires CGO)
- OS notifications via beeep (per-event configurable)
- Syncthing process management with auto-restart
- Cross-platform installer with autostart
- CI pipeline for Linux (.deb + .tar.gz) and Windows (.zip)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-03-03 21:16:28 +01:00
parent 2256df9dd7
commit 34a1a94502
30 changed files with 2156 additions and 38 deletions

24
cmd/panel/main.go Normal file
View File

@@ -0,0 +1,24 @@
package main
import (
"flag"
"log"
"github.com/webview/webview_go"
)
func main() {
addr := flag.String("addr", "http://localhost:8384", "Syncthing address")
flag.Parse()
w := webview.New(false)
if w == nil {
log.Fatal("failed to create webview")
}
defer w.Destroy()
w.SetTitle("SyncWarden — Admin Panel")
w.SetSize(1024, 768, webview.HintNone)
w.Navigate(*addr)
w.Run()
}