fix(config): use XDG-standard paths on macOS (prevent DataOnly reset deleting config) #118
Reference in New Issue
Block a user
Delete Branch "fix/xdg-macos-path-collision"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
버그
macOS 에서
dirs::config_dir()과dirs::data_dir()이 동일하게~/Library/Application Support/반환. 결과:~/Library/Application Support/kebab/config.toml~/Library/Application Support/kebab/kebab reset(DataOnly) 가data_dir을 삭제하면 config 파일도 같은 경로에 있으므로 함께 삭제됨. 사용자가workspace.root등 커스텀 설정을 잃는 데이터 손실 버그.수정
xdg_config_path,xdg_data_dir,xdg_cache_dir에서dirscrate fallback 제거 →$HOME/.config,$HOME/.local/share,$HOME/.cache직접 사용.xdg_state_dir은 이미 같은 패턴 사용 중 (변경 없음).새 경로 (macOS):
~/.config/kebab/config.toml~/.local/share/kebab/~/.cache/kebab/~/.local/state/kebab/(unchanged)마이그레이션
Config::load(None)에서 새 경로가 없고 macOS legacy path (~/Library/Application Support/kebab/config.toml) 가 있으면 자동 copy 후 stderr 안내 출력. data dir (SQLite / vector store) 는 크기 문제로 auto-migration 없음 —kebab init+kebab ingest로 재생성 필요.테스트
기존 31개 kebab-config 테스트 통과.
xdg_paths_honor_env는XDG_CONFIG_HOMEenv 가 설정된 경우를 커버 (변경 없음).