You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Replace per-setting configuration files with config.yaml #38
Project and user configuration currently use one file per setting under .code-converge/ (for example mode, review-model, and max-cycles). This is difficult to discover, review, and maintain as the configuration surface grows.
Desired outcome
Use one YAML configuration document named config.yaml in each supported .code-converge directory:
<git-root>/.code-converge/config.yaml for project settings;
~/.code-converge/config.yaml for user settings.
Keep the existing source precedence: CLI flags > project YAML > user YAML > environment > built-in defaults.
Acceptance criteria
config.yaml is the only supported file-based settings source in both project and user .code-converge directories.
It represents every setting currently configured through per-setting value files, including mode, workflow options, stage-specific model/reasoning overrides, review base, and diagnostic session-log settings.
The documented YAML schema is typed, validated, and rejects unknown keys and invalid values with actionable diagnostics.
code-converge config reports effective values and their existing sources correctly when values come from YAML.
Existing CLI flags and CODE_CONVERGE_* environment variables retain their current names and precedence.
Legacy per-setting files are not read and no migration, fallback, or compatibility behavior is implemented.
Decide and document the YAML representation for the three prompt settings; a file reference is acceptable if prompt contents should remain separate from configuration.
Update README and the public CLI/configuration contract with complete project and user examples.
Add focused precedence, validation, malformed-YAML, unknown-key, and no-legacy-fallback tests.
Scope notes
This is a clean-break change to the public configuration contract and belongs to Feature Flow, not Small Change. It should include a versioning/release decision appropriate for the breaking configuration change.
Activity
dapi commentedon Jul 31, 2026
Implemented in draft PR #41.
Verification performed:
GOCACHE=/private/tmp/code-converge-go-cache go test ./internal/configGOCACHE=/private/tmp/code-converge-go-cache go vet ./...make docs-lintgit diff --checkgo test ./internal/appcould not execute in this sandbox because the macOS loader aborts generated test binaries withmissing LC_UUID load command.Merge pull request #41 from dapi/codex/gh-38