feat(config): auto type inference + provenance/merge bug fixes @osterman (#2897)
## whatatmos config setandatmos stack setnow default--typetoauto: infer from the Atmos config schema, then from the type of the value already at the path, falling back to a string (with a warning) only when neither source has an answer.atmos stack setpreviously never inferred at all — every value was stored as a string unless--typewas passed explicitly.- Fixed
PickProvenanceFile(shared byatmos stack set/get/delete/listand the AI/MCP tools layer) always picking the last provenance entry, which for any value defined only in an imported catalog file was a phantomLine:0entry pointing at the wrong (importing) manifest instead of the file that actually defines the value. - Fixed
MCPSettings.Enabled(abooltaggedomitempty) silently disappearing from the merged config whenatmos.yamland anatmos.d/fragment both set it to different values, instead of the explicit value winning. - Fixed error hints containing a raw
<placeholder>(e.g.pass --config <file>.) being silently stripped by the terminal markdown renderer, which parses unescaped angle brackets as inline HTML. --config a.yaml,b.yamlonatmos config get/set/delete/formatnow warns that only the first file is targeted, instead of silently dropping the rest.atmos config geton a key defined only in anatmos.d/fragment now hints to checkatmos describe configinstead of just reporting "not found".- The
unsetalias (forconfig/stack delete) now shows up in--helpoutput, alongsidedel. - Adds a blog post and roadmap entry for the type-inference change, and fixes a stale doc example that cited a non-existent config field.
why
- A hands-on DX field-test pass of
atmos configandatmos stack/atmos stack configsurfaced these as real, reproducible bugs and gaps — silent type corruption, a provenance-resolution bug that broke edits for the standard catalog-import stack pattern, and a config value that could vanish entirely on merge. - These commands had effectively zero CLI-level test coverage before this PR; the fixes are backed by new regression tests reproducing each bug (including a second, independently-broken copy of the provenance bug found in the AI/MCP tools layer during the fix).
references
- N/A
Summary by CodeRabbit
- New Features
config setandstack setautomatically infer value types, with warnings when falling back to strings.- Imported catalog and vendor values can be edited, deleted, and formatted in their source files.
- Help output now displays all command aliases.
- Bug Fixes
- Improved guidance for missing files and imported values, shared-file warnings, and invalid-value errors.
- Preserved error-hint placeholders such as
<file>in formatted output. - MCP settings now default safely to disabled.
- Documentation
- Updated command references and examples for type inference and imported configuration values.