fix(cron): gate skip_memory on memory_search in enabled_toolsets - #33444
Closed
fayenix wants to merge 3 commits into
Closed
fix(cron): gate skip_memory on memory_search in enabled_toolsets#33444fayenix wants to merge 3 commits into
fayenix wants to merge 3 commits into
Conversation
Cron jobs with `skip_memory=True` silently block `memory_search` from all cron job sessions, preventing reflection cards, heartbeat nudges, and any other cron-based workflow from accessing MemOS traces. Fix: only skip memory when `"memory_search"` is NOT in the cron job's explicit `enabled_toolsets`. Default cron jobs keep `skip_memory=True`; jobs that explicitly opt in via `enabled_toolsets: ["memory_search"]` get `skip_memory=False`. Co-authored-by: Violet <violetfrequency@proton.me>
fayenix
force-pushed
the
pr/skip-memory-cron-fix
branch
from
June 21, 2026 22:52
6ef18d7 to
087eba8
Compare
9 tasks
teknium1
reviewed
Jul 13, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
Thanks for targeting a verified cron memory-provider gap.
Problems
cron/scheduler.py:2045in this diff checksmemory_search, but cron'senabled_toolsetsfield contains toolset names (cron/jobs.py:1078). The provider gate acceptsmemoryor a composite resolving to it (agent/memory_manager.py:82-116), and unknown toolsets resolve to no schemas (model_tools.py:367-388). Consequently,["memory"]still leavesskip_memory=True, while["memory_search"]is not a standard usable opt-in.- This change also enables the full provider lifecycle rather than only search: completed turns call
MemoryManager.sync_all()(run_agent.py:3403-3424). The current cron default explicitly protects user representations (cron/scheduler.py:3073), so the desired write/sync policy needs to be explicit.
Suggested changes
- Base the opt-in on the established
memorytoolset and preserve the default-off behavior. Choose and document whether job-level selection, cron-platform configuration, or a separate persisted opt-in is required. - Add scheduler tests for default behavior and the supported explicit opt-in path.
Automated hermes-sweeper review.
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Cron jobs with
skip_memory=Truesilently blockmemory_searchfrom all cron job sessions. This prevents cron-based workflows from accessing MemOS traces — even when the cron job explicitly includes"memory_search"in itsenabled_toolsets.Root Cause
In
cron/scheduler.py,skip_memory=Trueis hardcoded for all cron jobs. The comment says "Cron system prompts would corrupt user representations" but this blanket approach breaks any cron job that needs memory access.Fix
Gate
skip_memoryon whether"memory_search"is in the job's explicitenabled_toolsets:The sentinel
"memory_search"(rather than"memory") is intentional —"memory_search"never appears in default platform toolsets, so all default cron jobs keepskip_memory=True. Only jobs that explicitly opt in viaenabled_toolsets: ["memory_search"]getskip_memory=False.Testing
memory_searchin toolsets now surface MemOS traces