[limits]
Resource limits for the agent session.
deny_unknown_fields guards against typos. Without it, a field like max_search_results (an old name / misremembered variant of grep_max_results) gets silently dropped at parse time, so the user-intended cap never reaches the daemon.
Command-execution knobs (command_timeout, command_max_timeout, output bounds, spill controls, env-loading) live in [crate::manifest::CommandRunConfig] under the [command_run] section. [limits] here is intentionally restricted to numerical resource caps that aren’t tied to a single tool.
file_read_dedup_entries
Section titled “file_read_dedup_entries”LRU entry count for the file_read dedup cache. 0 disables dedup.
file_read_dedup_total_mb
Section titled “file_read_dedup_total_mb”Total MB of cached file contents before oldest entries evict.
file_read_max_bytes
Section titled “file_read_max_bytes”Pre-read byte cap for file_read. Reads that would exceed this throw with a “use offset/limit or grep” message rather than silently truncating. Only applied when no explicit line range was requested — an explicit range means the caller has already accepted responsibility for output size. 0 = unbounded (not recommended).
file_read_max_tokens
Section titled “file_read_max_tokens”Post-read token cap for file_read. Same throw policy as file_read_max_bytes. Uses a per-extension bytes-per-token ratio (JSON-family: 2, everything else: 4) to estimate tokens without round-tripping a real tokenizer call. 0 = unbounded.