Expand description
Execution limits: the one limits: block every scope carries (spec
2026-09-12 execution-limits §3.1), its duration grammar, the built-in
defaults (§3.3) and the resolver that says what is in force and where it
came from (§3.9).
Three knobs, no more: deadline (wall clock for the unit of work),
stuck (minutes of no progress before a stop, or off) and cost_usd
(only meaningful on a metered model — applicability is the caller’s call,
this module resolves the number). Inner scopes REPLACE a key; nothing here
adds two caps together, because the product of caps is the problem the
spec exists to remove.
Structs§
- Limits
- The block as written in YAML. Every key optional; an absent key means
“inherit”, never “unlimited” —
stuck: offis the explicit opt-out. - Resolved
- Resolved
Limits
Enums§
- Scope
- Which built-in deadline applies when no scope sets one.
- Source
- Where a resolved value came from — the half of
mur limitsthat makes it worth running. - Stuck
- The stuck detector’s setting once resolved.
Constants§
- DEFAULT_
DEADLINE_ FLEET - DEFAULT_
DEADLINE_ TASK - DEFAULT_
STUCK - §3.3 — the constants
mur limitsprints as(built-in default).
Functions§
- parse_
duration 30s,5m,2h,1d,1h30m, or a bare integer (seconds).Noneon anything else — the caller turns that into a load error naming the key.- resolve
- The resolver. Precedence, narrowest wins: flag > agent > fleet > global >
built-in. Each key is resolved on its own; a scope that sets only
stuckleavesdeadlineto the next scope out. - validate
- §4: an unparsable value is an error naming the key, never a silent default.