Merge origin/dev (Feature 20 scheduler) into Feature 21 Home dashboard
CI / ci (push) Successful in 8m7s
CI / ci (pull_request) Successful in 8m7s

Keep both the scheduler registrations and the Home service wiring in
cmd/server, pass the scheduler wake function to plan.NewService in the
Home and server tests, and document that boot catch-up processes every
unclaimed fire time within 24 hours, oldest first (F20-02).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-10 19:46:46 -04:00
co-authored by Claude Opus 5.5
40 changed files with 4461 additions and 230 deletions
+2 -2
View File
@@ -65,7 +65,7 @@ func newIdeaActionsRouter(t *testing.T, model, normalize *llm.Fake, search *reci
if err != nil {
t.Fatal(err)
}
dinnerSvc, err := dinners.NewService(st, g, runner, logger)
dinnerSvc, err := dinners.NewService(st, g, runner, func() {}, logger)
if err != nil {
t.Fatal(err)
}
@@ -73,7 +73,7 @@ func newIdeaActionsRouter(t *testing.T, model, normalize *llm.Fake, search *reci
t.Error("draft_week ran: an idea action must never draft a plan")
return skills.Week{}, context.Canceled
}
planSvc, err := plan.NewService(st, draft, runner, newTestGoogle(t), notifytest.New(t, st), &url.URL{Scheme: "https", Host: "mealquest.example"}, logger)
planSvc, err := plan.NewService(st, draft, runner, newTestGoogle(t), notifytest.New(t, st), func() {}, &url.URL{Scheme: "https", Host: "mealquest.example"}, logger)
if err != nil {
t.Fatal(err)
}