feat: AppConfig + SttConfig TOML persisté (#15) #107

Merged
charles merged 4 commits from feat/15-stt-config into main 2026-04-06 02:08:51 +00:00
Owner

Closes #15

Changements

  • Workspace Cargo.toml : ajout de toml = "0.8" dans [workspace.dependencies] (serde_json et dirs étaient déjà présents)
  • crates/fractal-core/Cargo.toml : ajout de serde_json, toml, dirs comme dépendances workspace
  • crates/fractal-core/src/config.rs (nouveau) : implémentation complète de AppConfig et SttConfig avec persistance TOML dans ~/.config/fractal-plus/config.toml
  • crates/fractal-core/src/lib.rs : exposition publique du module config et re-export des types principaux

Types exposés

  • SttEngineKind — enum whisper | vosk | openai | custom
  • WhisperModelSize — enum tiny | base | small | medium | large | large-v3
  • SttConfig — section [stt] du fichier de config, avec auto_transcribe: bool
  • AppConfig — config racine avec load(), save(), reload() async

Tests

5 tests unitaires couvrant : defaults, sérialisation/désérialisation roundtrip, survie des valeurs par défaut sur TOML vide, et comparaison de tailles de modèles.

Aucune dépendance circulaire avec fractal-stt : les types sont redéfinis en strings dans fractal-core.

Closes #15 ## Changements - **Workspace `Cargo.toml`** : ajout de `toml = "0.8"` dans `[workspace.dependencies]` (`serde_json` et `dirs` étaient déjà présents) - **`crates/fractal-core/Cargo.toml`** : ajout de `serde_json`, `toml`, `dirs` comme dépendances workspace - **`crates/fractal-core/src/config.rs`** (nouveau) : implémentation complète de `AppConfig` et `SttConfig` avec persistance TOML dans `~/.config/fractal-plus/config.toml` - **`crates/fractal-core/src/lib.rs`** : exposition publique du module `config` et re-export des types principaux ## Types exposés - `SttEngineKind` — enum `whisper | vosk | openai | custom` - `WhisperModelSize` — enum `tiny | base | small | medium | large | large-v3` - `SttConfig` — section `[stt]` du fichier de config, avec `auto_transcribe: bool` - `AppConfig` — config racine avec `load()`, `save()`, `reload()` async ## Tests 5 tests unitaires couvrant : defaults, sérialisation/désérialisation roundtrip, survie des valeurs par défaut sur TOML vide, et comparaison de tailles de modèles. Aucune dépendance circulaire avec `fractal-stt` : les types sont redéfinis en strings dans `fractal-core`.
charles deleted branch feat/15-stt-config 2026-04-06 02:08:51 +00:00
Sign in to join this conversation.
No description provided.