Skip to content

Expose per-agent schedule and trigger in the control panel (WI-046)#127

Merged
nateshpp merged 1 commit into
mainfrom
feature/panel-schedule-trigger
Jul 8, 2026
Merged

Expose per-agent schedule and trigger in the control panel (WI-046)#127
nateshpp merged 1 commit into
mainfrom
feature/panel-schedule-trigger

Conversation

@nateshpp

@nateshpp nateshpp commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

What this PR does

Makes every agent's model, runner, schedule, and trigger settable from one operator surface: the control panel's Agents tab. Choosing when and how an agent fires is now a panel setting rather than a hand-edit of .modonome/config.yaml. Closes WI-046.

Stacked on #125 (base is feature/configurable-trigger-layer, since it uses the schedule/trigger schema fields that PR added). Merge #125 first, then this rebases onto main.

  • apps/control-panel/src/state/types.ts: the role type gains schedule ({cron, timezone?}) and trigger becomes the string-or-object union WI-032 defined.
  • apps/control-panel/src/screens/SettingsScreen.tsx: the Agents tab adds a schedule cron input, a trigger type select (with a hint), and a conditional after-role list, plus immutable update handlers that clear an emptied field instead of saving an invalid empty value. Control density stays within the coherence budget (7 of 10).
  • tests/schedule-trigger-schema.test.mjs: the role sub-schema accepts a schedule, a bare string trigger, and an after-role object, and rejects a bad trigger.type or an unknown trigger sub-key.

Governance checklist

  • npm run verify passes through every governance gate (control-panel coherence and coverage included) and AgentProof (25/25). It stops only at check:frontend/npm test on missing dev deps (esbuild, js-yaml) that CI installs; the panel's own typecheck/vitest run in CI where those deps are present.
  • No em dashes in any tracked file
  • Prose states conclusions directly
  • No AI co-author lines in commit messages
  • Ratchet logic unchanged (n/a)
  • No new AgentProof scenario (n/a)
  • Config schema unchanged in this PR (the fields were added in Configurable trigger and schedule layer (WI-032) #125; no schema_version change)
  • Prompt unchanged (n/a)

Test evidence

$ node --test tests/schedule-trigger-schema.test.mjs
# tests 5
# pass 5
# fail 0

$ node scripts/check-control-panel-coherence.mjs
PASS: every screen is within the control-density budget and every lever has a hint.

$ node scripts/check-control-panel-coverage.mjs
PASS: every config lever is either exposed or documented as intentionally not.

@nateshpp
nateshpp requested a review from techseek4vr as a code owner July 7, 2026 14:51
Base automatically changed from feature/configurable-trigger-layer to main July 7, 2026 19:31
@nateshpp
nateshpp force-pushed the feature/panel-schedule-trigger branch 2 times, most recently from d1b7c2c to c7e427a Compare July 8, 2026 02:22
Every agent's model, runner, schedule, and trigger is now set from one surface, the
control panel's Agents tab, so choosing when and how an agent fires is an operator
setting rather than a hand-edit of config.yaml.

- apps/control-panel/src/state/types.ts: the role type gains schedule ({cron,
  timezone?}) and trigger becomes the string-or-object union that WI-032 defined.
- apps/control-panel/src/screens/SettingsScreen.tsx: the Agents tab adds a schedule
  cron input, a trigger type select, and an after-role list, with immutable update
  handlers that clear an emptied field rather than save an invalid empty value.
- tests/schedule-trigger-schema.test.mjs: the role sub-schema accepts a schedule, a
  string trigger, and an after-role object, and rejects a bad trigger type or an
  unknown trigger sub-key.
@nateshpp
nateshpp force-pushed the feature/panel-schedule-trigger branch from c7e427a to badfdc2 Compare July 8, 2026 02:24
@nateshpp
nateshpp merged commit 60cb4a8 into main Jul 8, 2026
6 checks passed
@nateshpp
nateshpp deleted the feature/panel-schedule-trigger branch July 8, 2026 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants