4.3 KiB
Delta 0.1.4-pre.014 — Logging editor, lecture/DTO
Statut
Tranche livrée pour validation locale.
0.1.4-pre.013 est considérée validée : fmt, check, clippy, les 38 tests Config Desk, les 87 tests Config, les cinq audits ownership et les 12 tests d'API publique passent. Les reveals privilégiés effective et .env ont été exercés avec confirmation explicite, affichage/masquage transitoire et nettoyage à la fermeture, sans valeur Secret visible dans les logs.
Objectif
Ouvrir la surface Logging fonctionnelle en lecture typée uniquement, en utilisant le contrat public de ksp-config-lib comme unique autorité et sans commencer prématurément les mutations, la persistence ou le hot reload.
Modifications
Backend
- nouveau module
logging_editor.rs; - chargement exclusif via
ConfigManagement::load_logging_document(); - extension publique minimale de Config :
LoggingFileConfig::ansi()permet de projeter le champ déjà possédé par le contrat typé sans sérialisation JSON de contournement ; - résolution du path via le registre Config, sans chemin physique codé en dur ;
- mapping des types publics Config vers des DTO TS-RS dédiés :
LoggingDocumentDto;LoggingProfileDto;LoggingConsoleDto;LoggingFileDto;LoggingOutputFilterDto;LoggingTargetFilterDto;
- nouvelle commande Tauri centralisée
get_logging_document; - nouveau domaine technique
config.logging_editor; - logs bornés aux compteurs/identifiants de structure, sans contenu sensible.
Frontend
- la route Logging remplace son placeholder par une vue réelle ;
- nouveau module
frontend/ts/logging.ts; - affichage read-only de :
file_id;- path résolu ;
format_version;logs_directory;default_profile;
- sélection locale du profil inspecté ;
- affichage de
default_filteretspan_events; - projection de la console avec son filtre
level/targets/domains; - projection de tous les fichiers et de leurs filtres ;
- projection des
target_filtersglobaux ; - bouton Rafraîchir pour relire le contrat typé ;
- aucune sauvegarde ni mutation dans cette tranche.
Tests
- le document Logging commité doit mapper l'intégralité de la surface de lecture attendue ;
- le getter
LoggingFileConfig::ansi()est verrouillé dans les tests unitaires et dans le test d'intégration de l'API publique ; - les listes multiples
targetsetdomainsdoivent être conservées sans perte ni réordonnancement ; - les dérivations TS-RS ajoutent les tests d'export des six nouveaux DTO.
Documentation
pre.013marquée réalisée ;pre.014marquée en cours ;- README/USAGE/TODO alignés sur la nouvelle surface Logging read-only.
Hors scope maintenu
Cette tranche ne modifie pas :
- les profils Logging ;
default_profile;- les sinks ;
- les filtres ;
- le runtime Logging actif ;
LoggingGuard;- les fichiers de log persistés.
Les mutations/persistence appartiennent à pre.015; le runtime/hot reload et les fichiers uniques par lancement appartiennent à pre.016.
Scénarios de validation
- ouvrir Logging :
cfg.std.logginget son path résolu doivent apparaître ; - vérifier
format_version=1,logs_directory=${KSP_LOGS_DIRECTORY:-logs}etdefault_profile=local_dev; - le sélecteur doit proposer
local_dev (default); - le profil doit afficher
default_filter=warnetspan_events=new_and_close; - la console doit afficher stderr / ANSI oui / compact / level debug / targets
*/ domains*; - les deux fichiers
file.all.debugetfile.config.errordoivent être présents avec leurs chemins, formats, rotations et filtres ; - les trois target filters
ksp-config-lib,ksp-logging-lib,ksp-app-config-deskdoivent apparaître ; - Rafraîchir doit relire le document sans modifier le runtime ni la génération Logging.
Version technique
workspace.package.version = "0.1.4-pre.14"
Validation locale demandée
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-config-desk
cargo test -p ksp-config-lib
cargo tree -p ksp-app-config-desk
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json