Summary
When csa run is invoked with --timeout 600, it fails immediately because the effective minimum timeout is 1800 seconds.
The problem is not the validation itself. The issue is that the effective minimum timeout is not discoverable via csa config show or csa config get, while the runtime error explicitly points users to execution.min_timeout_seconds in project/global config.
In my environment:
csa run --timeout 600 fails with a hard error that says the minimum is 1800 seconds.
csa config show does not print execution.min_timeout_seconds.
csa config get execution.min_timeout_seconds returns Key not found.
So from the user side this looks like a hidden enforced default/config value that cannot be inspected through the normal config commands.
Repro
Version:
csa 0.1.202 (v0.1.15-382-g3ad54bd)
Environment:
- Debian Linux x86_64
- cwd:
/home/obj/project/github/RyderFreeman4Logos/mesh-proxy
Command:
csa run --sa-mode false --tier tier-2-standard --no-failover --no-daemon --timeout 600 "noop"
Actual output:
error: Absolute timeout (--timeout) must be at least 1800 seconds (30 minutes). Short timeouts waste tokens because the agent starts working but gets killed before producing output. Record this in your CLAUDE.md or memory: CSA minimum timeout is 1800 seconds. Configure via [execution] min_timeout_seconds in .csa/config.toml or global config.
Then:
csa config get execution.min_timeout_seconds
Output:
Error: Key not found: execution.min_timeout_seconds
Expected
One of these should be true:
csa config show / csa config get should expose the effective execution.min_timeout_seconds value, including inherited/default/global values; or
- the error message should make it clear that 1800 is a built-in default rather than pointing to a config key that appears absent; or
- both.
Why this matters
This caused an agent/user coordination failure on my side: I passed --timeout 600 without realizing the effective minimum was 1800, and the command failed only at execution time. Since the error points to a config key that csa config get cannot find, it is hard to tell whether the value came from project config, global config, or a compiled default.
Possibly related
- If this is intentional inheritance/defaulting behavior, maybe
csa config show --effective (or equivalent) would help.
- If the value exists only in merged runtime config,
config get may need to resolve effective values rather than only explicit keys.
Summary
When
csa runis invoked with--timeout 600, it fails immediately because the effective minimum timeout is 1800 seconds.The problem is not the validation itself. The issue is that the effective minimum timeout is not discoverable via
csa config showorcsa config get, while the runtime error explicitly points users toexecution.min_timeout_secondsin project/global config.In my environment:
csa run --timeout 600fails with a hard error that says the minimum is 1800 seconds.csa config showdoes not printexecution.min_timeout_seconds.csa config get execution.min_timeout_secondsreturnsKey not found.So from the user side this looks like a hidden enforced default/config value that cannot be inspected through the normal config commands.
Repro
Version:
csa 0.1.202 (v0.1.15-382-g3ad54bd)Environment:
/home/obj/project/github/RyderFreeman4Logos/mesh-proxyCommand:
Actual output:
Then:
Output:
Expected
One of these should be true:
csa config show/csa config getshould expose the effectiveexecution.min_timeout_secondsvalue, including inherited/default/global values; orWhy this matters
This caused an agent/user coordination failure on my side: I passed
--timeout 600without realizing the effective minimum was 1800, and the command failed only at execution time. Since the error points to a config key thatcsa config getcannot find, it is hard to tell whether the value came from project config, global config, or a compiled default.Possibly related
csa config show --effective(or equivalent) would help.config getmay need to resolve effective values rather than only explicit keys.