Skip to content

Single source of config: ~/.champ/config.yaml only - #128

Merged
hellodk merged 1 commit into
masterfrom
refactor/single-user-config
Aug 30, 2026
Merged

Single source of config: ~/.champ/config.yaml only#128
hellodk merged 1 commit into
masterfrom
refactor/single-user-config

Conversation

@hellodk

@hellodk hellodk commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Closes #126

Consolidates all configuration into the user-level ~/.champ/config.yaml and
removes the workspace-local config entirely (per decision: full removal, silent).

Branched off master after merging #124; saveSettings now writes to ~/.champ
(superseding the workspace-first path #124 introduced).

Gates: check-types clean, lint 0 errors, 1743 passed / 5 skipped.

All configuration now comes from the user-level ~/.champ/config.yaml. The
workspace-level .champ/config.yaml is no longer read, written, or watched,
so config can't branch per-repo or leak keys into committed projects.

- resolveConfig reads only ~/.champ/config.yaml; no workspace fallback.
- resolveLayered drops the "workspace-yaml" source/layer entirely (#115 -> #126).
- generateConfig, configureProvider wizard, selectModel, firstRunSelect, and
  the MCP add/delete/install handlers all write to ~/.champ instead of the
  active workspace folder.
- persistProviderSettings (saveSettings / Add-Model) writes to ~/.champ only.
- File watcher reloads only on ~/.champ/config.yaml changes.
- The repo's .champ/config.yaml is untracked and gitignored to prevent
  re-committing a workspace config.

Tests: layered-source rewritten for the single-source contract; saveSettings
test asserts the user-level path.

Closes #126
@hellodk
hellodk merged commit e1b73e3 into master Aug 30, 2026
4 of 6 checks passed
@hellodk
hellodk deleted the refactor/single-user-config branch August 31, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consolidate all config into ~/.champ/config.yaml, remove workspace-local config

1 participant