{"repo":"NousResearch/hermes-agent","public_id":"25752","display_label":"Cron jobs bypassing disabled toolset restrictions","summary":"These issues and PRs concern a security/configuration gap where cron job per-job overrides could bypass the agent's disabled_toolsets denylist. Multiple fix attempts address enforcing toolset restrictions during cron scheduling.","subsystem":"cron","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":31947},"resolution":{"state":"resolved","by":"pr-31947"},"freshness":{"state":"verified","last_verified_at":"2026-05-25T08:09:54+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":8886,"pr_number":31947,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":25752,"pr_number":31947,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":25752,"title":"cron/scheduler.py:74-86 bypasses agent.disabled_toolsets via LLM-supplied enabled_toolsets","url":null,"state":"closed"},{"kind":"pr","number":25780,"title":"fix: honor cron toolset denylist","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"0c3e34e29","number":0},{"kind":"pr","value":"#31947","number":31947},{"kind":"pr","value":"#25752","number":25752},{"kind":"pr","value":"#25786","number":25786},{"kind":"pr","value":"#25842","number":25842},{"kind":"pr","value":"#25815","number":25815},{"kind":"pr","value":"#25780","number":25780}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":25786,"title":"fix: honor disabled toolsets in cron runs","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#25780","number":25780},{"kind":"pr","value":"#25780","number":25780}],"category":"uncategorized","implication":"needs_llm"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":25842,"title":"fix(security): enforce disabled_toolsets in cron per-job overrides (#25752)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"0c3e34e29","number":0},{"kind":"pr","value":"#31947","number":31947},{"kind":"pr","value":"#25752","number":25752},{"kind":"pr","value":"#25786","number":25786},{"kind":"pr","value":"#25842","number":25842},{"kind":"pr","value":"#25815","number":25815},{"kind":"pr","value":"#25780","number":25780}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":25937,"title":"fix(cron): cap job toolsets by config","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#25752","number":25752},{"kind":"pr","value":"#25780","number":25780},{"kind":"pr","value":"#25786","number":25786},{"kind":"pr","value":"#25815","number":25815},{"kind":"pr","value":"#25842","number":25842}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":31947,"title":"fix(cron): layer agent.disabled_toolsets onto cron baseline (#25752, salvage)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cron/scheduler.py","scripts/release.py","tests/cron/test_scheduler.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}