From 55460097aebe6b520f862c541bbb5e9ff6e5b05d Mon Sep 17 00:00:00 2001 From: intergrav Date: Mon, 29 Jun 2026 18:04:33 -0400 Subject: [PATCH] fix: crash diagnostics, exit logging --- cmd/restray/main.go | 5 ++++- cmd/restray/tray.go | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cmd/restray/main.go b/cmd/restray/main.go index 0184765..a92b6e4 100644 --- a/cmd/restray/main.go +++ b/cmd/restray/main.go @@ -61,7 +61,10 @@ func main() { beeep.AppName = "Restray" log.Printf("Restray v%s", version) + defer log.Print("Restray exiting") initAlertIcon() - systray.Run(onReady, func() {}) + systray.Run(onReady, func() { + log.Print("systray exited") + }) } diff --git a/cmd/restray/tray.go b/cmd/restray/tray.go index 86f597a..6ce68ef 100644 --- a/cmd/restray/tray.go +++ b/cmd/restray/tray.go @@ -555,6 +555,11 @@ func onReady() { watchConfig(applyConfig) go func() { + defer func() { + if r := recover(); r != nil { + log.Printf("update checker panicked: %v", r) + } + }() for range time.NewTicker(24 * time.Hour).C { resticPath, managed := findRestic() if managed && !isAnyBusy() { @@ -565,6 +570,11 @@ func onReady() { }() go func() { + defer func() { + if r := recover(); r != nil { + log.Printf("monitor loop panicked: %v", r) + } + }() prev := onBatteryPower() lastWall := time.Now().Round(0) for range time.NewTicker(60 * time.Second).C { -- 2.51.2