Skip to main content

Module limits

Module limits 

Source
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: off is the explicit opt-out.
Resolved
ResolvedLimits

Enums§

Scope
Which built-in deadline applies when no scope sets one.
Source
Where a resolved value came from — the half of mur limits that 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 limits prints as (built-in default).

Functions§

parse_duration
30s, 5m, 2h, 1d, 1h30m, or a bare integer (seconds). None on 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 stuck leaves deadline to the next scope out.
validate
§4: an unparsable value is an error naming the key, never a silent default.