docs(cron): document resnap alongside the drift guard
The drift-guard section only offered pin-or-disable; resnap is the middle path (adopt the new default, stay unpinned). Same PR as the salvaged feature per docs-in-same-PR policy.
This commit is contained in:
@@ -26,7 +26,7 @@ All of this is available to Hermes itself through the `cronjob` tool, so you can
|
||||
|
||||
- **Per-job pin** — set by *you* via the dashboard, `hermes cron create/edit --model … --provider …`, or by editing `~/.hermes/cron/jobs.json`. Once set, it sticks until you change it. The agent's `cronjob` tool cannot set or change per-job models — inference pins are user-owned.
|
||||
- **`cron.model` / `cron.model_provider`** — a cron-fleet default: every unpinned job runs on this model, independent of your chat model. Set it once (`hermes config set cron.model <name>`) and switching your chat model with `hermes model` or `/model` never touches your cron fleet.
|
||||
- **Global default** — only when neither of the above is set does a job follow `hermes model`. Hermes **snapshots** the provider and model at creation, and that snapshot is the job's effective pin: if you later switch the global default (`hermes model`, `/model`, `hermes config set model.default …`), the job **keeps running on the model and provider it was created under** and logs one INFO line per run noting the difference. A global model change never stops a scheduled job, and an unattended job never silently inherits a switch to a paid provider/model (#44585). To move a job to the new default, pin it (`hermes cron edit <job_id> --provider <provider> --model <model>`) or set `cron.model` to move the whole fleet at once. Jobs created before snapshots existed keep following the live global default.
|
||||
- **Global default** — only when neither of the above is set does a job follow `hermes model`. Hermes **snapshots** the provider and model at creation, and that snapshot is the job's effective pin: if you later switch the global default (`hermes model`, `/model`, `hermes config set model.default …`), the job **keeps running on the model and provider it was created under** and logs one INFO line per run noting the difference. A global model change never stops a scheduled job, and an unattended job never silently inherits a switch to a paid provider/model (#44585). To move a job to the new default, **resnap** it (`hermes cron resnap <job_id>`, or `--all` for every unpinned job) so it adopts the current default while staying unpinned, pin it (`hermes cron edit <job_id> --provider <provider> --model <model>`), or set `cron.model` to move the whole fleet at once. Jobs created before snapshots existed keep following the live global default.
|
||||
|
||||
Whichever provider a job resolves to, its provider-specific request settings (e.g. `request_overrides` such as `extra_body`/`extra_headers` for custom providers) carry into the scheduled run just like an interactive session.
|
||||
|
||||
@@ -114,6 +114,17 @@ hermes config set cron.model <model> # every unpin
|
||||
keep their original model so you can decide deliberately. Stored snapshots are refreshed whenever
|
||||
you edit a job's provider, model, or base URL.
|
||||
|
||||
Resnapping refreshes an unpinned job's stored snapshot to the current global resolution without
|
||||
pinning it, so it keeps tracking future changes:
|
||||
|
||||
```bash
|
||||
hermes cron resnap <job_id> # one job
|
||||
hermes cron resnap --all # every unpinned agent job
|
||||
```
|
||||
|
||||
The agent-facing `cronjob` tool accepts the same action (`action=resnap job_id=<id>` or
|
||||
`action=resnap all=true`). Pinned axes and `no_agent` script jobs are left untouched.
|
||||
|
||||
## Skill-backed cron jobs
|
||||
|
||||
A cron job can load one or more skills before it runs the prompt.
|
||||
|
||||
Reference in New Issue
Block a user