hermes-agent/cron
teknium1 786df3ca6c fix(cron): resolve provider with the job's effective model; default dashboard cron creates to the backend's own profile
Two follow-ups to the per-job model pin surface (#67472 / #49948 review):

- cron/scheduler.py: pass target_model=<effective job model> to
  resolve_runtime_provider() on the primary path, so providers with
  model-specific api_mode routing derive the mode from the model the job
  actually runs (per-job pin > env > config default) instead of the stale
  persisted default. The auth-fallback path already did this for its
  fb_model.

- hermes_cli/web_server.py: POST /api/cron/jobs (and its sync worker) no
  longer hardcodes profile="default" when the request carries no profile
  param. A pool backend scoped to a named profile now resolves its own
  profile via get_active_profile_name(), so pre-profileScoped desktop
  clients can't write a named profile's job into ~/.hermes. Unscoped /
  custom HERMES_HOME keeps the legacy default fallback.

Tests: target_model capture test on run_job; two profile-default tests on
the create endpoint.
2026-07-19 09:57:21 -07:00
..
scripts
__init__.py
blueprint_catalog.py
executions.py fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
jobs.py fix(cron): accept UTF-8 BOM when reading jobs.json 2026-07-18 02:31:20 -07:00
lifecycle_guard.py
scheduler.py fix(cron): resolve provider with the job's effective model; default dashboard cron creates to the backend's own profile 2026-07-19 09:57:21 -07:00
scheduler_provider.py fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
suggestion_catalog.py
suggestions.py