hermes-agent/tests/cron
Teknium 5dc0fa3889 fix: post-merge audit follow-ups for #81138/#81139/#81141/#81148
Four fix-forwards from the adversarial post-merge audit of the Aug 7
unreviewed merge batch:

- estop (#81148): is_engaged() now fails SAFE (engaged) on stat errors;
  the gateway estop gate lets recognized slash commands and replies owned
  by in-flight work (update prompts, clarify, slash-confirm, tool
  approvals, running sessions) through instead of consuming them; new
  gateway /pause [reason|off] command gives messaging-only operators an
  in-band engage/resume path (busy_policy=dispatch so it works mid-run).
- cron monitor mode (#81138): execution-mode invariants (monitor x
  no_agent, monitor_script x monitor_url, no_agent-requires-script) now
  have ONE owner (_validate_job_mode_invariants) called from BOTH
  create_job and update_job, so the create-time invariant can no longer
  be silently violated through the update door.
- cron notepad (#81139): remove_job now clears the job's notepad rows
  (clear_notepad was dead code -> orphaned KV state forever); clear is
  best-effort and no-ops without creating notepad.db.
- delegation batch gate (#81141): template-marker regex narrowed to
  multi-word placeholder shapes only (<feature name>, {file_path}) so
  generics (Vec<T>), HTML tags, JSON snippets, glob braces and f-string
  style no longer reject legitimate batches; duplicate-goal rejection
  removed (best-of-N fan-outs are legitimate).
2026-08-08 05:21:09 -07:00
..
__init__.py
conftest.py refactor(cron): polish registration partial-failure surfaces 2026-08-07 17:45:06 +05:30
test_blueprint_catalog.py
test_claim_job_for_fire.py
test_codex_execution_paths.py
test_compute_next_run_last_run_at.py
test_cron_context_from.py
test_cron_direct_api_call_62151.py fix: join heartbeat thread in finally + add error-path test 2026-08-05 14:00:25 +05:30
test_cron_direct_api_call_watchdog.py fix(cron): move watchdog state under the request lock; fail closed on resolver errors 2026-08-07 15:32:37 +05:30
test_cron_inactivity_timeout.py
test_cron_kanban_env_isolation.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_cron_no_agent.py fix: close simplify-pass findings — scheduler sibling site + home-unresolvable totality 2026-08-06 17:36:40 +05:30
test_cron_profile_isolation.py
test_cron_prompt_injection_skill.py
test_cron_provider_pin.py
test_cron_script.py
test_cron_workdir.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_cronjob_schema.py
test_execution_ledger.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_file_permissions.py
test_idle_tick_config_skip.py perf(cron): skip config load on idle scheduler ticks (idea from #33612) 2026-08-03 17:18:51 +05:30
test_jobs.py fix(cron): make pause authoritative against half-paused records 2026-08-08 13:48:00 +05:30
test_jobs_changed_notify.py refactor(cron): polish registration partial-failure surfaces 2026-08-07 17:45:06 +05:30
test_jobs_crossprocess_lock.py
test_jobs_file_ownership.py
test_jobs_shrink_merge_80624.py perf(cron): stat-stamp fast path for the shrink-merge; no caller-list mutation 2026-08-07 17:29:49 +05:30
test_monitor_kind.py fix: post-merge audit follow-ups for #81138/#81139/#81141/#81148 2026-08-08 05:21:09 -07:00
test_notepad.py fix: post-merge audit follow-ups for #81138/#81139/#81141/#81148 2026-08-08 05:21:09 -07:00
test_parallel_pool.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_preflight_config.py feat(cron): pre-dispatch configuration validation (blocked_config + alert-once) 2026-08-07 08:57:53 -07:00
test_reasoning_config_per_model.py
test_rewrite_skill_refs.py
test_run_one_job.py feat(cron): pre-dispatch configuration validation (blocked_config + alert-once) 2026-08-07 08:57:53 -07:00
test_scheduler.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_scheduler_cron_session_isolation.py
test_scheduler_mcp_init.py
test_scheduler_provider.py
test_scheduler_shutdown_guard.py
test_script_claim_heartbeat.py
test_sessiondb_init_hang.py
test_shutdown_interrupt.py
test_suggestions.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30
test_terminal_cwd_lock.py test(cron): pin fail-closed TERMINAL_CWD lock timeout behavior 2026-08-07 18:11:41 +05:30
test_ticker_stall_60703.py
test_usage_audit_logger.py fix: follow-up for salvaged PR #18255 2026-08-08 00:07:14 +05:30