From 13ab092ceaa2ea8f25dc3656ceb72f6ce44d7ca3 Mon Sep 17 00:00:00 2001 From: 04cb <0x04cb@gmail.com> Date: Fri, 29 May 2026 22:07:24 +0800 Subject: [PATCH] feat(dream): add enabled toggle to skip Dream job registration (#3885) --- nanobot/cli/commands.py | 17 ++++++++++------- nanobot/config/schema.py | 1 + 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/nanobot/cli/commands.py b/nanobot/cli/commands.py index acebdabfd..e4a101c08 100644 --- a/nanobot/cli/commands.py +++ b/nanobot/cli/commands.py @@ -1174,13 +1174,16 @@ def _run_gateway( agent.dream.max_iterations = dream_cfg.max_iterations agent.dream.annotate_line_ages = dream_cfg.annotate_line_ages from nanobot.cron.types import CronJob, CronPayload, CronSchedule - cron.register_system_job(CronJob( - id="dream", - name="dream", - schedule=dream_cfg.build_schedule(config.agents.defaults.timezone), - payload=CronPayload(kind="system_event"), - )) - console.print(f"[green]✓[/green] Dream: {dream_cfg.describe_schedule()}") + if dream_cfg.enabled: + cron.register_system_job(CronJob( + id="dream", + name="dream", + schedule=dream_cfg.build_schedule(config.agents.defaults.timezone), + payload=CronPayload(kind="system_event"), + )) + console.print(f"[green]✓[/green] Dream: {dream_cfg.describe_schedule()}") + else: + console.print("[yellow]○[/yellow] Dream: disabled") # Register Heartbeat system job (idempotent on restart) if hb_cfg.enabled: diff --git a/nanobot/config/schema.py b/nanobot/config/schema.py index 1cfbaca5a..2a89d04c5 100644 --- a/nanobot/config/schema.py +++ b/nanobot/config/schema.py @@ -48,6 +48,7 @@ class DreamConfig(Base): _HOUR_MS = 3_600_000 + enabled: bool = True # Register the periodic Dream consolidation job on startup interval_h: int = Field(default=2, ge=1) # Every 2 hours by default cron: str | None = Field(default=None, exclude=True) # Legacy compatibility override model_override: str | None = Field(