4be9654284
Add `TuiPrefs` struct and `KeybindPrefs` sub-struct to `settings.rs` to decouple TUI-specific preferences (theme, font_size, keybinds) from the agent/project `config.toml` so they survive project switches. - `TuiPrefs::path()` resolves to `~/.deepseek/tui.toml`; honours `DEEPSEEK_CONFIG_PATH` env-var redirect used by tests and CI. - `TuiPrefs::load()` falls back to struct defaults when the file is absent — no error, backwards-compatible. - `TuiPrefs::save()` creates `~/.deepseek/` if necessary. - `TuiPrefs::validate()` normalises theme case and rejects unknown values with a helpful message. - 8 new unit tests cover defaults, round-trip TOML serde, validation, absent-file fallback, and the save→load cycle; all pass. - `cargo check` clean (0 errors, 0 new warnings beyond expected dead-code on the new public API). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>