hermes-agent/tests/cron
Teknium d464ae3652 feat(cron): user-owned model pins + cron.model fleet default
Per-job cron inference pins are now user-owned: the agent-facing cronjob
tool schema no longer exposes model/provider/base_url, and the registered
handler ignores them even if a model hallucinates the old parameters.
Users set pins via the dashboard, hermes cron create/edit --model/--provider,
or jobs.json directly — and once set, a pin sticks until the user changes it.
Existing agent-era pins are grandfathered untouched.

New cron.model / cron.model_provider config keys give the cron fleet its
own default model, independent of the chat model. Fire-time resolution:
per-job pin > cron.model > HERMES_MODEL > model.default. An axis covered
by the explicit cron-fleet default is deliberate routing, not drift, so
the #44585 fail-closed guard skips it — switching your chat model with
/model or hermes model no longer breaks unpinned cron fleets.

- tools/cronjob_tools.py: drop model param from agent schema + handler;
  remove now-dead _resolve_model_override
- cron/scheduler.py: cron.model/model_provider resolution + per-axis
  drift-guard skip
- cron/jobs.py: snapshot resolution mirrors the new precedence
- hermes_cli/subcommands/cron.py + hermes_cli/cron.py: --model/--provider
  on hermes cron create/edit
- hermes_cli/config.py: cron.model / cron.model_provider defaults
- docs: cron.md model-resolution tip rewritten
2026-07-28 11:52:47 -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(delegation): route delegated-child API calls inline to avoid nested-pool wedge (#60203) 2026-07-26 20:37:51 -07:00
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 feat(cron): user-owned model pins + cron.model fleet default 2026-07-28 11:52:47 -07:00
test_cron_script.py
…
test_cron_workdir.py
…
test_cronjob_schema.py
…
test_execution_ledger.py fix(cron): close sqlite connections deterministically in execution ledger 2026-07-24 15:55:08 -07:00
test_file_permissions.py
…
test_jobs.py
…
test_jobs_changed_notify.py
…
test_jobs_crossprocess_lock.py
…
test_jobs_file_ownership.py fix(cron): preserve jobs.json ownership on root rewrite + surface failing-tick reason 2026-07-24 15:52:13 -07:00
test_parallel_pool.py
…
test_reasoning_config_per_model.py
…
test_rewrite_skill_refs.py
…
test_run_one_job.py
…
test_scheduler.py fix: update test stub to accept workdir kwarg from salvaged PR #70548 2026-07-24 15:55:39 -07:00
test_scheduler_mcp_init.py
…
test_scheduler_provider.py fix(cron): tick every served profile's cron store under multiplex_profiles (#69377) 2026-07-24 13:50:05 +05:30
test_scheduler_shutdown_guard.py
…
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
…
test_shutdown_interrupt.py
…
test_suggestions.py
…
test_terminal_cwd_lock.py
…
test_ticker_stall_60703.py
…