hermes-agent/tests/cron
Paulo Nascimento 51e1fb8fb9 fix(cron): accept UTF-8 BOM when reading jobs.json
Windows Notepad and PowerShell 5.1 Set-Content -Encoding UTF8 write a
leading UTF-8 BOM. json.load under encoding=utf-8 raises
JSONDecodeError("Unexpected UTF-8 BOM"), and load_jobs wraps that as
RuntimeError("Cron database corrupted and unrepairable"), taking down
cron CRUD/scheduler for a hand-edited jobs.json.

Read with utf-8-sig on all four independent jobs.json readers
(load_jobs primary + strict=False repair, dump _cron_summary, status
Scheduled Jobs). Write path stays plain utf-8 so the next save_jobs
heals a BOM'd file. Matches the env-class dialect (#65123).

Tests: BOM load (crash repro), bomless regression, empty store,
BOM+bare-list auto-repair, BOM+control-char strict=False arm, dump and
status CLI readers.
2026-07-18 02:31:20 -07:00
..
__init__.py
…
conftest.py
…
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(cron): scope inline calls to reported transport 2026-07-11 11:07:34 +05:30
test_cron_inactivity_timeout.py
…
test_cron_no_agent.py
…
test_cron_profile_isolation.py
…
test_cron_prompt_injection_skill.py
…
test_cron_provider_pin.py
…
test_cron_script.py fix(cron): preserve POSIX script decoding defaults 2026-07-17 15:40:50 -07:00
test_cron_workdir.py fix(cron): deliver before tearing down the agent's async clients (#58720) 2026-07-06 02:05:46 +05:30
test_cronjob_schema.py
…
test_execution_ledger.py fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
test_file_permissions.py
…
test_jobs.py fix(cron): accept UTF-8 BOM when reading jobs.json 2026-07-18 02:31:20 -07:00
test_jobs_changed_notify.py
…
test_jobs_crossprocess_lock.py
…
test_parallel_pool.py fix(cron): deliver before tearing down the agent's async clients (#58720) 2026-07-06 02:05:46 +05:30
test_reasoning_config_per_model.py feat(config): support per-model reasoning_effort overrides 2026-07-14 11:46:40 -07:00
test_rewrite_skill_refs.py
…
test_run_one_job.py fix(cron): deliver before tearing down the agent's async clients (#58720) 2026-07-06 02:05:46 +05:30
test_scheduler.py fix(cron): robust session title generation (#50535, #50536, #50537) 2026-07-16 22:39:47 -07:00
test_scheduler_mcp_init.py
…
test_scheduler_provider.py fix(gateway): quiesce API and cron work during drains 2026-07-13 23:26:10 +05:30
test_scheduler_shutdown_guard.py test(cron): cover the interpreter-shutdown scheduling guard (#58720) 2026-07-06 02:05:46 +05:30
test_script_claim_heartbeat.py fix(cron): prevent long-running scheduled scripts from running twice 2026-07-14 17:12:03 +05:30
test_sessiondb_init_hang.py fix(cron): resolve SessionDB timeout from config.yaml 2026-07-14 03:31:06 +05:30
test_shutdown_interrupt.py fix(cron): stop interrupted jobs from delivering their pre-kill output 2026-07-07 22:15:04 -07:00
test_suggestions.py
…
test_terminal_cwd_lock.py fix(cron): release TERMINAL_CWD lock even when run_job body raises 2026-07-01 15:39:48 +05:30
test_ticker_stall_60703.py fix(cron): stop the ticker from stalling forever on a wedged jobs lock (#60703) (#60855) 2026-07-08 05:13:18 -07:00