# Delta `0.1.3-rel.001` — publication stable Configuration foundation ## Base requise `0.1.3-pre.015` avec les correctifs documentaires `pre.015-fix.001` et `pre.015-fix.002`, au sens des commits de livraison correspondants, avec : ```text workspace.package.version = "0.1.3-pre.15" ``` Les deux fixes de `pre.015` ne modifient pas la version Cargo. ## Objectif Publier la release stable `0.1.3`, clôturer `Configuration foundation` et préparer l'ouverture de `0.1.4 — ksp-app-config-desk` sans ajouter de nouvelle fonctionnalité runtime. ## Version Cargo `workspace.package.version` passe de : ```text 0.1.3-pre.15 ``` à : ```text 0.1.3 ``` Le header de `Cargo.toml` passe de version 60 à 61. Aucune dépendance ni feature Cargo n'est ajoutée ou retirée par cette publication. ## Validations finales exécutées par le user Commandes communiquées avec succès le 2026-08-16 sur `0.1.3-pre.15` après application de `pre.015-fix.001` et `pre.015-fix.002` : ```bash cargo fmt --all cargo check --workspace cargo clippy --workspace --all-targets cargo test --workspace cargo tree -p ksp-config-lib cargo tree -p ksp-config-lib -d cargo tree -p ksp-config-lib -e features cargo tree -p ksp-config-lib -e normal cargo tree -p ksp-logging-lib -d ``` Résultats communiqués : - `cargo check --workspace` : succès ; - `cargo clippy --workspace --all-targets` : succès sans warning communiqué ; - `cargo test --workspace` : succès ; - `ksp-config-lib` : 80 tests unitaires, 4 audits ownership et 11 tests publics réussis ; - `ksp-core-lib` : 14 tests unitaires et 3 tests publics réussis ; - `ksp-logging-lib` : 34 tests unitaires et toutes les intégrations exécutées réussies ; le probe d'overhead reste volontairement `ignored` par défaut ; - `cargo tree -p ksp-config-lib -d` : seul doublon observé, `syn 2.0.119` / `syn 3.0.3`, transitif via `jsonschema` et ses dépendances ; - `cargo tree -p ksp-config-lib -e normal` : graphe runtime cohérent avec Core, Logging, `serde`, `serde_json` et `jsonschema` ; - `cargo tree -p ksp-logging-lib -d` : aucun doublon. ## Surface stable publiée `0.1.3` stabilise notamment : - `ksp-config-lib` comme propriétaire unique KSP des documents Config, schemas, profils, compositions, variables applicatives KSP/KSPB, `.env`, interpolation et persistence autorisée ; - le bootstrap non récursif `cfgpath` / `schemapath` et les overrides physiques `--filemap==` ; - le registre logique `file_id -> filename` et l'association logique document/schema ; - parsing JSON, validation JSON Schema Draft 2020-12 et validation sémantique KSP ; - globals, `default_profile`, profils, provenance de sélection et compositions par `file_id` ; - priorité `process environment > .env > fallback > missing`, avec chaîne vide explicitement définie ; - placeholders `${NAME}` et `${NAME:-fallback}` sous contrôle exclusif de Config ; - sensibilité `Public` / `Internal` / `Secret`, valeurs réelle/sûre et provenance par segment/pointeur JSON ; - redaction des secrets dans les surfaces sûres et accès réel explicite pour les consumers/management légitimes ; - `Config -> ksp_logging_lib::LoggingSettings`, validation effective de `logs_directory`, console, multi-sinks, formats, rotations, targets et domains ; - management typé de `std.logging.json`, lecture management du source brut et persistence atomique ; - create/update/remove `.env`, preservation des commentaires/lignes non ciblées, permissions existantes et mode `0600` pour un nouveau `.env` sur Unix ; - rapports de changement distinguant source/effective/shadowing/reload ; - audits d'ownership empêchant les crates hors Config de contourner Config pour les variables KSP/KSPB ou les ressources physiques gérées ; - audit automatique de couverture `.env.example` ; - documentation durable `ksp-config-lib/README.md`, `USAGE.md` et `TODO.md`. La release complète également `ksp-logging-lib` avec les capacités nécessaires au contrat `std.logging.json` : settings multi-output, runtime multi-sink, routing niveau/target/domain, formats et hot reload transactionnel, sans introduire de dépendance inverse Logging -> Config. ## Documentation de clôture Le présent delta : - ajoute `0.1.3` en tête de `CHANGELOG.md` ; - marque `0.1.3` réalisée dans `ROADMAP.md` ; - clôt `005-V0_1_3_CONFIG_FOUNDATION_PLAN.md` comme plan historique ; - actualise les index docs/plans et la séquence fonctionnelle ; - corrige dans le README racine l'ancienne mention `apps/` : les packages Rust KSP, y compris les applications Tauri, vivent directement sous `crates/` selon la convention workspace retenue ; - conserve `prompts/004-V0_1_4_START_PROMPT.md` comme prompt final d'ouverture de la release suivante. ## Fichiers ajoutés ```text deltas/0.1.3/rel.001.md ``` ## Fichiers modifiés ```text Cargo.toml CHANGELOG.md ROADMAP.md README.md docs/000-README.md docs/plans/000-README.md docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md ``` ## Fichiers supprimés Aucun. ## Décisions Aucune nouvelle décision fonctionnelle Config n'est introduite par `rel.001`. La publication stable confirme les décisions prises pendant `0.1.3`, notamment l'ownership exclusif de Config, la séparation source/effective, la politique de sensibilité/redaction, la persistence atomique et la frontière Config -> Logging. Les conventions Tauri ajoutées dans `pre.015-fix.001/.002` servent de contraintes d'entrée pour `0.1.4`, mais leur implémentation appartient à cette release suivante. ## Validation du commit stable Ce delta modifie `Cargo.toml` et de la documentation, mais aucun fichier Rust. Conformément aux règles KSP, `cargo fmt --all` n'est pas requis par une modification Rust dans ce delta. Avant publication/tag, exécuter sur `workspace.package.version = "0.1.3"` : ```bash cargo check --workspace cargo clippy --workspace --all-targets cargo test --workspace cargo tree -p ksp-config-lib cargo tree -p ksp-config-lib -d cargo tree -p ksp-config-lib -e normal cargo tree -p ksp-logging-lib -d ``` `cargo test --workspace` est approprié ici car il s'agit précisément de la fermeture d'une version stable. ## Publication Git Après validation du delta : 1. vérifier le working tree ; 2. créer le commit de release : ```text v0.1.3-rel.001 ``` 3. créer le tag stable : ```text v0.1.3 ``` Aucun tag des prereleases/fixes intermédiaires n'est requis. ## Suite Après le tag `v0.1.3`, ouvrir : ```text 0.1.4-pre.001 ``` avec : ```text prompts/004-V0_1_4_START_PROMPT.md ``` `0.1.4-pre.001` commence par brainstorming, audit de la base Tauri de khadhroony-bot3 et planification détaillée avant implémentation de `ksp-app-config-desk`.