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(