[Fx] PROVIDE fx.Lifecycle <= go.uber.org/fx.New.func1() [Fx] PROVIDE fx.Shutdowner <= go.uber.org/fx.(*App).shutdowner-fm() [Fx] PROVIDE fx.DotGraph <= go.uber.org/fx.(*App).dotGraph-fm() [Fx] PROVIDE *logger.Logger <= git.eeqj.de/sneak/routewatch/internal/logger.New() [Fx] PROVIDE *config.Config <= git.eeqj.de/sneak/routewatch/internal/config.New() [Fx] PROVIDE *metrics.Tracker <= git.eeqj.de/sneak/routewatch/internal/metrics.New() [Fx] PROVIDE database.Store <= fx.Annotate(git.eeqj.de/sneak/routewatch/internal/database.New(), fx.As([[database.Store]]) [Fx] PROVIDE *streamer.Streamer <= git.eeqj.de/sneak/routewatch/internal/streamer.New() [Fx] PROVIDE *server.Server <= git.eeqj.de/sneak/routewatch/internal/server.New() [Fx] PROVIDE *routewatch.RouteWatch <= git.eeqj.de/sneak/routewatch/internal/routewatch.New() [Fx] INVOKE git.eeqj.de/sneak/routewatch/internal/routewatch.CLIEntry.func1() [Fx] BEFORE RUN provide: go.uber.org/fx.New.func1() [Fx] RUN provide: go.uber.org/fx.New.func1() in 4.834µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/config.New() [Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/config.New() in 6.792µs [Fx] BEFORE RUN provide: git.eeqj.de/sneak/routewatch/internal/logger.New() [Fx] RUN provide: git.eeqj.de/sneak/routewatch/internal/logger.New() in 5.041µs [Fx] BEFORE RUN provide: fx.Annotate(git.eeqj.de/sneak/routewatch/internal/database.New(), fx.As([[database.Store]]) {"time":"2025-07-28T19:07:04.003748+02:00","level":"INFO","msg":"Opening database","source":"database.go:60","func":"database.New","path":"/Users/user/Library/Application Support/berlin.sneak.app.routewatch/db.sqlite"} {"time":"2025-07-28T19:07:17.095001+02:00","level":"DEBUG","msg":"Slow query","source":"slowquery.go:17","func":"database.logSlowQuery","query":"PRAGMA wal_checkpoint(TRUNCATE)","duration":3246961625} {"time":"2025-07-28T19:07:17.096647+02:00","level":"INFO","msg":"Running VACUUM to optimize database (this may take a moment)","source":"database.go:124","func":"database.(*Database).Initialize"}