docs/adr/0001-settings-architecture.md
The user Config stays a single human-readable YAML file (~/.labelmerc), edited
both by a GUI Settings dialog and by hand. The dialog writes changes through
ruamel.yaml as sparse, comment-preserving Overrides (only non-default keys, each
pruned when reset to its default) and applies them immediately, with no
OK/Apply/Cancel. Window geometry and dock layout stay in a separate Qt QSettings
store (Window State), which is not part of the Config.
~/.labelmerc, and
comment preservation needs a round-trip parser either way, so YAML wins
without a storage-format conversion. Key renames are still applied in place by
_migrate_config_from_file; only a whole-file format conversion is avoided.--config supplies a YAML expression (no file to write to) or when per-session
CLI override flags are present. A custom --config <file> path (e.g. a
labelmerc beside a standalone build) is editable.