hermes-agent/tests/cron
kshitij 863e313185 fix: close simplify-pass findings — scheduler sibling site + home-unresolvable totality
3-reviewer simplify pass (reuse/quality/efficiency) findings:

- cron/scheduler.py _run_job_script: the ORIGINAL that
  lifecycle_guard._resolve_script_path documents mirroring had the exact
  same unguarded expanduser() — a NUL-bearing script value survives
  creation (the guard treats it as nothing-to-scan) and crashed the
  scheduler at fire time with ValueError instead of a clean job failure.
  Same ingestion contract applied; regression test added.
- lifecycle_guard._resolve_script_path: get_hermes_home() -> Path.home()
  raises RuntimeError when neither HERMES_HOME nor HOME resolves
  (arbitrary-UID containers); the cron entry point called it bare.
  Caught -> None; totality test added.
- terminal_tool: stale 'cat ...' docstring updated to the bounded
  head -c form.
- lifecycle_guard: dead 'script_text and' condition dropped (guarded by
  'if not script_text: continue' directly above).

Efficiency reviewer: no material findings (measured — encode/expand
costs negligible vs walk I/O, no timing regression vs base).
2026-08-06 17:36:40 +05:30
..
__init__.py
conftest.py fix(cron): scope cron approval context per session 2026-08-03 00:25:20 +05:30
test_blueprint_catalog.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_claim_job_for_fire.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_codex_execution_paths.py test(cron): accept target_model kwarg in codex-path resolver stub 2026-07-19 09:57:21 -07:00
test_compute_next_run_last_run_at.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_context_from.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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_inactivity_timeout.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_kanban_env_isolation.py test(cron): close a blind spot in the kanban env drift guard 2026-08-06 03:16:26 +05:30
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_prompt_injection_skill.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_provider_pin.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_script.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cron_workdir.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cronjob_schema.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_execution_ledger.py perf(cron): batch advance_next_run for the due-dispatch loop 2026-08-02 21:15:16 +05:30
test_file_permissions.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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): retain completed one-shot jobs instead of deleting them on completion 2026-08-02 23:12:00 -07:00
test_jobs_changed_notify.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_jobs_crossprocess_lock.py
test_jobs_file_ownership.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_parallel_pool.py perf(cron): batch advance_next_run for the due-dispatch loop 2026-08-02 21:15:16 +05:30
test_reasoning_config_per_model.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_rewrite_skill_refs.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_run_one_job.py perf(cron): batch advance_next_run for the due-dispatch loop 2026-08-02 21:15:16 +05:30
test_scheduler.py fix: hide memory tool from cron agents 2026-08-06 05:20:56 +05:30
test_scheduler_cron_session_isolation.py fix(cron): scope cron approval context per session 2026-08-03 00:25:20 +05:30
test_scheduler_mcp_init.py
test_scheduler_provider.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_scheduler_shutdown_guard.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_script_claim_heartbeat.py fix: update heartbeat test stubs to accept workdir kwarg 2026-07-24 15:55:39 -07:00
test_sessiondb_init_hang.py perf(cron): batch advance_next_run for the due-dispatch loop 2026-08-02 21:15:16 +05:30
test_shutdown_interrupt.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_suggestions.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_terminal_cwd_lock.py
test_ticker_stall_60703.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00