-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Dreaming needs configurable session/cron exclusions; isolated cron transcripts still enter session corpus #72611
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Priority
None yet
Summary
Dreaming currently has no documented/configurable way to exclude specific sessions, cron jobs, groups/topics, or session-key prefixes from session transcript ingestion. On a real 2026.4.24 deployment, isolated cron runs are still appearing in
memory/.dreams/session-corpus/YYYY-MM-DD.txt, even though the runtime containsgeneratedByCronRun/DIRECT_CRON_PROMPT_REfiltering logic.This makes cron-heavy deployments difficult to operate without maintaining local Dreaming patches. Moving the cron delivery target to a Telegram group/topic does not help, because Dreaming scans agent session transcript files rather than the final delivery surface.
Related: #68449, but this issue is specifically about the missing operator-facing exclusion/config path and the remaining leak of isolated cron transcripts into the session corpus.
Environment
2026.4.24 (764822a)plugins.entries.memory-core.config.dreaming.enabled: truememory/.dreams/session-corpus/YYYY-MM-DD.txtpayload.kind=agentTurn,sessionTarget=isolated,delivery.mode=announceWhat I expected
At least one of these should be true:
sessionTarget: isolatedcron runs are not ingested into Dreaming's session corpus, orgeneratedByCronRunand skipped, including deleted/rotated transcript filenames, ordreaming.sessionFilter.excludeSessionKeyPrefixesdreaming.sessionFilter.excludeCronJobIdsdreaming.sessionFilter.excludeAgentsdreaming.sessionFilter.excludeRegexWhat happened
A cron job already configured as
sessionTarget: isolatedstill appeared in Dreaming session corpus.Counts from local
memory/.dreams/session-corpusinspection:2026-04-24.txt: 11 entries for the cron job2026-04-25.txt: 17 entries for the cron job2026-04-26.txt: 2 entries for the cron job2026-04-27.txt: 0 entries at the time of inspectionExample corpus line shape:
The source paths are important: many contaminated entries reference deleted/rotated transcript filenames such as:
The current runtime code appears to rely on session-store classification to mark cron transcripts:
loadSessionTranscriptClassificationForSessionsDir(...)isCronRunSessionKey(...)cronRunTranscriptPathsgeneratedByCronRunBut once transcript filenames are rotated/deleted, the path in
session-corpusmay no longer match the livesessions.jsonsessionFilepath, so classification can fail.DIRECT_CRON_PROMPT_REshould still catch directUser: [cron:...]messages, but the corpus evidence shows these prompt lines were already ingested in recent runs.Config gap checked
I checked the current config schema.
memoryonly exposes:memory.backendmemory.citationsmemory.qmd.*The memory-core Dreaming plugin config schema currently exposes only broad phase settings:
dreaming.enableddreaming.frequencydreaming.timezonedreaming.verboseLoggingdreaming.storagedreaming.phases.light.*dreaming.phases.deep.*dreaming.phases.rem.*I could not find a config option to skip a session, group/topic, cron job, or session-key prefix.
Why this matters
Cron jobs often contain operational prompts, tool stdout summaries, and repetitive status text that are useful as notifications but harmful as durable Dreaming input. In a personal-agent deployment, users should not have to fork/patch Dreaming just to keep maintenance cron transcripts out of memory.
Changing Telegram delivery target is not a workaround: the transcript is still stored under the agent and scanned by Dreaming.
Suggested fixes
A robust fix probably needs both:
Make cron transcript skipping reliable
.jsonl.deleted.<timestamp>and.trajectory.jsonl.deleted.<timestamp>rotated transcript artifacts[cron:...]prompt filtering as a defense-in-depth pathAdd operator-facing Dreaming session filters
agent:main:cron:This would let deployments keep Dreaming on for real human conversations while excluding high-volume automation/cron sessions without local patches.