Conversation
20 new kebab-case entries mirroring the flag names exactly, resolved with the mandatory precedence explicitly-passed flag > config.json > built-in default (explicitFlags via flag.Visit). Durations are strings, default-true bools and meaningful-zero ints are tri-state pointers, and max-stream-retries keeps its env layer (flag > env > config > default). Each flag's -h usage names its config.json key.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wiring status
16 of the 20 settings are wired end-to-end on this branch. The remaining 4 —
bash-timeout,subagent-idle-timeout,subagent-idle-kill-after,max-concurrent-llm-requests— have their config-layer fields, resolvers, and tests in place, but their CLI application points (tool.SetShellTimeout, the orchestratorSetIdlePolicy,client.SetLLMConcurrency) arrive with the sibling PRs that introduce those flags (#130, #131, #132). The wiring will be added as those merge — that is inherent to the independent-PR structure, not an omission.Every flag that makes sense to persist now has a config.json equivalent: 20 new kebab-case entries mirroring the flag names exactly —
--bash-timeout→"bash-timeout",--system-prompt→"system-prompt", and so on.Precedence is explicit and enforced
explicitly-passed flag > config.json > built-in default. The explicitly-passed set is built with
flag.Visit, so only flags actually typed on the command line override the config file — a flag left at its Go default doesn't shadow config.max-stream-retrieskeeps its env layer: flag > env > config > default.Typing rules
"45s","2m") — no unit confusionEach flag's
-husage string names its config.json key.Honest scope
16 of the 20 are wired end-to-end on this branch. The other 4 —
bash-timeout,subagent-idle-timeout,subagent-idle-kill-after,max-concurrent-llm-requests— have fields, resolvers, and tests at the config layer; their CLI application points ride with the sibling PRs that add those flags.Dependency note:
docs/config-reference.mdships with the strict-parsing PR.Testing
exit 0 — all 18 packages green (15 ok, 3 without test files).