cache_key() в src/cli/cache.rs использует api_key в открытом виде как часть ключа записи в redb:
fn cache_key(api_key: &str, api_base: &str) -> String {
format!("{}|{}", api_key, api_base.trim_end_matches('/'))
}Это означает, что VIBEMODE_API_KEY хранится в открытом виде внутри cache.redb (лежит в APPDATA / ~/.config). Любой пользователь системы с доступом к этому файлу может извлечь ключ.
- Заменить
cache_keyна хеш отapi_key+api_base:- Использовать
std::collections::hash_map::DefaultHasherдля получения stable хеша - Формат ключа:
<hash>|api_base
- Использовать
- Убедиться, что кэш по-прежнему корректно работает (читается и записывается)
cargo test --lockedпроходитcargo clippy --all-targets -- -D warningsчистый- Кэш продолжает работать корректно после изменения формата ключа
Cargo.toml(новые зависимости не нужны)- Формат JSON-вывода
- Любые другие модули кроме
src/cli/cache.rs