Summary
The gateway dashboard cron form only supports payloadKind: "systemEvent" | "agentTurn". Script jobs created via CLI appear in the job list and run history, but can't be created or edited from the web UI. The form needs script-specific fields.
Problem
CronFormState in ui/src/ui/ui-types.ts has no "script" option for payloadKind and no fields for command, args, env, or cwd. The form view (ui/src/ui/views/cron.ts) and controller (ui/src/ui/controllers/cron.ts) only handle the two existing payload kinds.
Acceptance Criteria
payloadKind union extended to include "script"
- New form fields when script is selected:
command (required), args (textarea, one per line), env (textarea, KEY=VALUE per line), cwd (optional)
- Form→payload serialization: converts form fields to
CronScriptPayload
- Payload→form deserialization: populates form fields when editing an existing script job
- Agent-specific fields (
payloadModel, payloadThinking, payloadLightContext) hidden when payloadKind === "script"
payloadText field hidden when payloadKind === "script" (replaced by command)
- Field labels and placeholders via i18n keys
Files Affected
ui/src/ui/ui-types.ts — extend CronFormState
ui/src/ui/views/cron.ts — script form fields, conditional visibility
ui/src/ui/controllers/cron.ts — form<->payload conversion for script kind
- Possibly
ui/src/ui/i18n/ — add i18n keys for new field labels
Related
Summary
The gateway dashboard cron form only supports
payloadKind: "systemEvent" | "agentTurn". Script jobs created via CLI appear in the job list and run history, but can't be created or edited from the web UI. The form needs script-specific fields.Problem
CronFormStateinui/src/ui/ui-types.tshas no"script"option forpayloadKindand no fields forcommand,args,env, orcwd. The form view (ui/src/ui/views/cron.ts) and controller (ui/src/ui/controllers/cron.ts) only handle the two existing payload kinds.Acceptance Criteria
payloadKindunion extended to include"script"command(required),args(textarea, one per line),env(textarea, KEY=VALUE per line),cwd(optional)CronScriptPayloadpayloadModel,payloadThinking,payloadLightContext) hidden whenpayloadKind === "script"payloadTextfield hidden whenpayloadKind === "script"(replaced bycommand)Files Affected
ui/src/ui/ui-types.ts— extendCronFormStateui/src/ui/views/cron.ts— script form fields, conditional visibilityui/src/ui/controllers/cron.ts— form<->payload conversion for script kindui/src/ui/i18n/— add i18n keys for new field labelsRelated