Files
codewhale/crates
wangfengcsu 4be9654284 feat(config): separate tui.toml for theme and keybinds (closes #437)
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>
2026-05-04 16:30:20 -07:00
..