Files
2026-08-16 19:49:21 +02:00

3.5 KiB

Delta 0.1.4-pre.017 — panneau Test Logging

Base

0.1.4-pre.016-fix.002 est validée : cargo fmt --all, cargo check --workspace et cargo clippy --workspace --all-targets sont propres ; 56 tests ksp-app-config-desk, 88 tests ksp-config-lib, 37 tests unitaires ksp-logging-lib, les audits ownership, APIs publiques et tests runtime/intégration passent.

Objectif

Ajouter une surface manuelle et contrôlée pour démontrer le routing réel du runtime Logging avant/après hot reload, sans contourner ksp-logging-lib et sans introduire de target dynamique arbitraire.

Changements

Backend contrôlé

Config Desk ajoute emit_logging_test et deux DTO TS-RS :

  • LoggingTestRequestDto ;
  • LoggingTestResultDto.

Le service accepte :

  • niveau trace, debug, info, warn, error ou all ;
  • target logique app -> ksp-app-config-desk ;
  • target logique logging_test -> ksp-app-config-desk.logging-test ;
  • domain absent, known ou custom.

Les domains connus sont limités à config.logging_test, config.logging_runtime et frontend. Un domain personnalisé est borné à 80 caractères ASCII alphanumériques plus ., _ et -. Le message doit contenir de 1 à 500 octets.

Les targets restent des callsites statiques. L'application n'importe pas tracing et émet exclusivement via les macros ksp-logging-lib.

Le mode all émet exactement cinq événements, un par niveau. Le résultat ne réexpose pas le message ; il contient uniquement le nombre d'événements, le niveau demandé, target/domain effectifs et la génération runtime active.

Frontend

La vue Logging ajoute Test Logging — routing contrôlé avec :

  • message ;
  • niveau ;
  • target backend contrôlé ;
  • domain absent/connu/personnalisé ;
  • Log backend ;
  • Log via bridge frontend.

La voie frontend réutilise le bridge existant et conserve son contrat fixe target=ksp-app-config-desk.frontend.main, domain=frontend. Elle permet de comparer le routing d'un événement backend et celui d'un événement issu de la WebView dans les mêmes sinks.

Le message du panneau est volontairement journalisé : l'UI rappelle explicitement de ne jamais y placer de Secret.

Tests

Les tests ajoutés couvrent :

  • les cinq niveaux et le mode batch all ;
  • les deux targets statiques ;
  • les trois modes de domain ;
  • le rejet des domains personnalisés non sûrs ;
  • la borne du message ;
  • les exports TS-RS des DTO.

Version technique

workspace.package.version = 0.1.4-pre.17

Validation attendue

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 test -p ksp-logging-lib
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json

Scénario fonctionnel :

  1. avec le profil actif actuel, lancer tous sur ksp-app-config-desk.logging-test + config.logging_test ;
  2. noter quels niveaux apparaissent en console et dans les file sinks ;
  3. modifier niveaux/targets/domains, Sauvegarder et appliquer ;
  4. relancer exactement le même test sans redémarrage ;
  5. vérifier que le routing suit immédiatement le nouveau runtime ;
  6. répéter avec Log via bridge frontend et vérifier le target ksp-app-config-desk.frontend.main / domain frontend.

Suite

0.1.4-pre.018 couvrira robustesse/extensibilité/tests desktop : source invalide au démarrage, audits, tests frontend/Tauri/build et ajout futur d'un file_id/editor sans refonte du shell.