From 288aa24e8bc4f22cb7de5d60789e1d6ec79f7395 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 4 Feb 2026 09:11:30 +0200 Subject: add runtime debugging signals and convert to mage - Add SIGUSR1 handler for goroutine stack dumps when app hangs - Add SIGUSR2 handler for full profiling (heap, cpu, block) - Add --debug-dir flag for configurable debug output location - Convert build system from go-task to mage - Update documentation with debugging workflow - Bump version to 0.10.0 --- cmd/tasksamurai/main.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cmd') diff --git a/cmd/tasksamurai/main.go b/cmd/tasksamurai/main.go index b964f52..96c8be8 100644 --- a/cmd/tasksamurai/main.go +++ b/cmd/tasksamurai/main.go @@ -7,6 +7,7 @@ import ( "runtime" + "codeberg.org/snonux/tasksamurai/internal/debug" "codeberg.org/snonux/tasksamurai/internal/task" "codeberg.org/snonux/tasksamurai/internal/ui" @@ -21,6 +22,7 @@ func main() { } debugLog := flag.String("debug-log", "", "path to debug log file") + debugDir := flag.String("debug-dir", "", "directory for runtime debug output (goroutine dumps, profiles)") browserCmd := flag.String("browser-cmd", browserCmdDefault, "command used to open URLs") disco := flag.Bool("disco", false, "enable disco mode") flag.Parse() @@ -30,6 +32,10 @@ func main() { os.Exit(1) } + // Set up runtime debugging signal handlers + debug.SetDebugDir(*debugDir) + debug.InitSignalHandlers() + m, err := ui.New(flag.Args(), *browserCmd) if err != nil { fmt.Fprintln(os.Stderr, "failed to load tasks:", err) -- cgit v1.2.3