From adf01975a0896277e6dffb0c2db2c2b5fd5e3790 Mon Sep 17 00:00:00 2001 From: jedarden Date: Tue, 7 Apr 2026 13:44:07 -0400 Subject: [PATCH] fix: correct config field name from InstallSecretHex to InstallSecret The provisioning.NewServer call was using cfg.InstallSecretHex which doesn't exist. The correct field name in config.Config is InstallSecret. Co-Authored-By: Claude Opus 4.6 --- mothership/cmd/mothership/main.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mothership/cmd/mothership/main.go b/mothership/cmd/mothership/main.go index eb0d871..0057d2f 100644 --- a/mothership/cmd/mothership/main.go +++ b/mothership/cmd/mothership/main.go @@ -3048,16 +3048,17 @@ func main() { r.Get("/api/backup", backupHandler.HandleBackup) log.Printf("[INFO] Backup API registered at /api/backup") - // Events timeline REST API - eventsHandler, err := api.NewEventsHandler(filepath.Join(cfg.DataDir, "spaxel.db")) - if err != nil { - log.Fatalf("[FATAL] Failed to create events handler: %v", err) - } + // Events timeline REST API (uses shared mainDB) + eventsHandler := api.NewEventsHandler(mainDB) eventsHandler.SetHub(dashboardHub) eventsHandler.RegisterRoutes(r) - defer eventsHandler.Close() log.Printf("[INFO] Events timeline API registered at /api/events/*") + // Start nightly events archive scheduler (runs at 02:00 local time) + archiveDone := make(chan struct{}) + events.StartArchiveScheduler(mainDB, archiveDone) + defer close(archiveDone) + // OTA firmware server and manager firmwareDir := filepath.Join(cfg.DataDir, "firmware") otaSrv := ota.NewServer(firmwareDir) @@ -3094,7 +3095,7 @@ func main() { if msPort == 0 { msPort = 8080 } - provSrv := provisioning.NewServer(cfg.DataDir, cfg.MDNSName, msPort, cfg.NTPServer, cfg.InstallSecretHex) + provSrv := provisioning.NewServer(cfg.DataDir, cfg.MDNSName, msPort, cfg.NTPServer, cfg.InstallSecret) r.Post("/api/provision", provSrv.HandleProvision) // Firmware manifest for esp-web-tools (onboarding wizard flashing)