Files
ironclaw/crates
Guille 030c09a68e fix(routines) - make cadence mandatory and expose guardrails (#2547)
Agents could not create reactive missions (e.g. "log every telegram message")
because of three shortcomings:

1. Cadence was optional and defaulted to "manual" silently — malformed values
   like "every 5 min" were also swallowed and became manual triggers
2. Reactive missions (event/webhook) had a hardcoded 300s cooldown with no way
   to override it via mission_create
3. mission_update and mission_delete existed in code but were not documented in
   the CodeAct preamble or the Tier 0 ActionDef schemas, so the LLM never
   called them

Changes:
- parse_cadence now returns Result and rejects unrecognized strings with a
  readable error so the LLM can correct the call
- mission_create requires cadence (returns error if missing instead of
  defaulting to manual)
- mission_create and mission_update accept guardrail params (cooldown_secs,
  max_concurrent, dedup_window_secs, max_threads_per_day) as top-level fields
- mission_list output now includes cadence and guardrails so misconfigured
  missions are visible
- mission_update and mission_delete added to CodeAct preamble
- Tier 0 ActionDef schemas updated with correct cadence formats and guardrails
- Regression tests for malformed cadence rejection

Changes on review
* chore: cargo fmt
* fix: enforce numeric params to be u64
* fix: address reviewer comments
* chore: divide long strings of comments
* fix: extract_fuardrails overrided existing mission update
* fix: allow event:*:pattern as cadence
* fix: check before storing events
* chore: fix docs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore: add limit to regexbuilder
* chore: homogenize tool description
* fix: add tests
* fix: implement requested fixes

---------

Co-authored-by: Guillermo Alejandro Gallardo Diez <gagdiez@iR2.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-17 11:05:21 +02:00
..