config.json Limits
Last updated
The runtime limits config.json can raise, and the package defaults it cannot change.
Missing reply_lang, output_dir, and model_tag are filled with defaults and written back on startup. Since v1.1.2 missing limit fields are no longer filled in, and a limit can only raise its default: the effective value is max(config value, default), so a smaller value is ignored.
| Key | Default | Description |
|---|---|---|
limits.max_tool_iterations |
256 |
Maximum tool iterations per run (128 before v1.1.2) |
limits.agent_send_timeout_seconds |
600 |
Model-request timeout |
limits.max_history_messages |
16 |
Recent history messages retained (24 before v1.1.2) |
limits.max_history_bytes |
4194304 |
History-size ceiling. Changed from 5242880 in v1.0.12, where it became MAX_DOCUMENT_BYTES * 4 — four times the 1 MiB single-document ceiling |
Package defaults that are not read from config.json (since v1.1.2 all of them live in configs/configs.go):
| Constant | Default | Description |
|---|---|---|
MAX_SESSION_TASKS |
3 |
Concurrent tasks per session; further tasks queue rather than fail (NumCPU × 4 before v1.1.2) |
MAX_SUBAGENT_TIMEOUT_MIN |
30 |
Subagent timeout in minutes |
MAX_RESUME_WAIT_MIN |
60 |
How long a pending resume waits for answers |
MAX_CONCURRENT_TOOLS |
5 |
Concurrent tool calls within one model turn; the rest queue (v1.0.20) |
The daemon port is not configurable: 17989 is a package constant, and a limits.port entry is ignored.
There are no environment variables for runtime limits — env-based overrides were removed; config.json is the only knob.