pub struct Cadence {
pub every_ms: Option<i64>,
pub every_grains: Option<u64>,
pub every_events: Option<u64>,
pub every_sessions: Option<u64>,
}Expand description
When a loop pass is due — the loop’s cadence, as host policy.
The engine has no clock and no scheduler of its own (ARCHITECTURE.md:
cadence is data, evaluation is a command); a host calls run and the
engine decides whether there is anything to do. Until now that decision
was only expressible as per-call flags (--min-new, --if-stale), so
every surface that can trigger a run — CLI, MCP, the console — had to be
told separately, and none of them could count the units a chat deployment
actually thinks in. This block is the same gate as the flags, set once in
the policy file, with two more units.
Each field is a threshold; the pass is due when any set one is met
(whichever comes first). Nothing set — the default — means a pass is due
whenever it is called, which is what every deployment had before. Explicit
per-call flags override the block (host CLI flags > policy file), and a
full sweep (areev loop reflect) is a command, not a tick: it always runs.
Fields§
§every_ms: Option<i64>Due when this long has passed since the last run (or it never ran).
every_grains: Option<u64>Due when this many grains of any kind landed since the last run.
every_events: Option<u64>Due when this many Event grains — turns, in a chat deployment — landed since the last run. Hermes’s post-turn review fires every ten.
every_sessions: Option<u64>Due when Events from this many distinct sessions landed since the last
run: “reflect once per conversation” is 1.