fix(cli): use XDG config paths consistently - #1179
Conversation
PR Review SummarySize
Affected crates
Blast radius — BroadThis PR touches: source code,documentation,configuration / policy files Updated automatically on each push to this PR. |
766578a to
d618672
Compare
There was a problem hiding this comment.
Code Review
This pull request standardizes configuration and profile path resolution across the codebase to use $XDG_CONFIG_HOME/nono (defaulting to ~/.config/nono) and introduces the $NONO_CONFIG variable for path expansion. It updates CLI output helpers, documentation, helper scripts, and integration tests to support this change. Feedback on the documentation changes highlights that replacing $HOME with ~ in file:// URIs will prevent proper shell expansion and fail runtime validation, so those instances should be reverted to $HOME.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
c9b9717 to
030daaa
Compare
Route user config (config.toml, trusted-keys cache) through resolve_user_config_dir() instead of dirs::config_dir(), so macOS matches ~/.config/nono like profiles and packages already did. Add $NONO_CONFIG profile expansion, display path helpers for CLI output, and update schema/docs/scripts to prefer XDG variables in machine-readable paths while keeping ~/.config/nono in user-facing docs and --help. Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai>
7a44e63 to
5b6090d
Compare
* fix(cli): use XDG config paths consistently Route user config (config.toml, trusted-keys cache) through resolve_user_config_dir() instead of dirs::config_dir(), so macOS matches ~/.config/nono like profiles and packages already did. Add $NONO_CONFIG profile expansion, display path helpers for CLI output, and update schema/docs/scripts to prefer XDG variables in machine-readable paths while keeping ~/.config/nono in user-facing docs and --help. Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai> * fix Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai> --------- Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai> (cherry picked from commit 8e0d94f) Signed-off-by: oscarmackjr-twg <oscar.mack.jr@gmail.com>
* fix(cli): use XDG config paths consistently Route user config (config.toml, trusted-keys cache) through resolve_user_config_dir() instead of dirs::config_dir(), so macOS matches ~/.config/nono like profiles and packages already did. Add $NONO_CONFIG profile expansion, display path helpers for CLI output, and update schema/docs/scripts to prefer XDG variables in machine-readable paths while keeping ~/.config/nono in user-facing docs and --help. Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai> * fix Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai> --------- Signed-off-by: Aleksy Siek <aleksy@alwaysfurther.ai>
Linked Issue
Closes #1175
Summary
Route user config (config.toml, trusted-keys cache) through resolve_user_config_dir() instead of dirs::config_dir(), so macOS matches ~/.config/nono like profiles and packages already did.
Add $NONO_CONFIG profile expansion, display path helpers for CLI output, and update schema/docs/scripts to prefer XDG variables in machine-readable paths while keeping ~/.config/nono in user-facing docs and --help.
tldr: user facing docs = use absolute path just so mac users aren't lost. For inside code files, use XDG since it is expanded/replaced by defaults internally anyway is set/unset on both platforms. With this, we will be fully unified on the XDG spec
Test Plan
Checklist
CHANGELOG.mdif needed