Default remains allow; humans can deny agent pause/resume/retrigger/delete in the panel while tools never expose or set the field.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agents often pass zte/Qwen3-… as both provider and model; split combined routes so scheduled runs resolve a real model.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resume only unpauses; listeners need a native way to re-fire the same job id with a new run without creating duplicate executors.
Co-authored-by: Cursor <cursoragent@cursor.com>
labels schemas used additionalProperties:{type:string}, which assertSupportedJsonSchema rejects and aborted the whole tools.register batch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extend jobs with lifecycle projection and history policies so listeners can poll state at scale without breaking existing cron_* flows.
Co-authored-by: Cursor <cursoragent@cursor.com>
Tool creates often left ownerEmpNo unassigned so the sidebar hid them while runs still fired; infer identity from session/cwd, claim legacy orphans on list, and keep cron rows visible without leaking run sessions into the workspace list.
Co-authored-by: Cursor <cursoragent@cursor.com>
New jobs snapshot the current New Session default so quota is predictable.
cron_create inherits the calling session model unless provider+model are set.
The editor lists configured models; the job row shows which model will run.