Expose per-agent schedule and trigger in the control panel (WI-046)#127
Merged
Conversation
nateshpp
force-pushed
the
feature/panel-schedule-trigger
branch
2 times, most recently
from
July 8, 2026 02:22
d1b7c2c to
c7e427a
Compare
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
force-pushed
the
feature/panel-schedule-trigger
branch
from
July 8, 2026 02:24
c7e427a to
badfdc2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 theschedule/triggerschema fields that PR added). Merge #125 first, then this rebases ontomain.apps/control-panel/src/state/types.ts: the role type gainsschedule({cron, timezone?}) andtriggerbecomes 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 badtrigger.typeor an unknown trigger sub-key.Governance checklist
npm run verifypasses through every governance gate (control-panel coherence and coverage included) and AgentProof (25/25). It stops only atcheck:frontend/npm teston missing dev deps (esbuild,js-yaml) that CI installs; the panel's own typecheck/vitest run in CI where those deps are present.schema_versionchange)Test evidence