v0.1.3-pre.001-fix.003

This commit is contained in:
2026-08-15 08:36:51 +02:00
parent 532f56eaad
commit ff94762b10
4 changed files with 304 additions and 47 deletions

View File

@@ -0,0 +1,165 @@
<!-- file: deltas/0.1.3/pre.001-fix.003.md -->
<!-- version: 1 -->
# Delta 0.1.3-pre.001-fix.003
## Base requise
Livraison précédente appliquée et commitée :
```text
0.1.3-pre.001-fix.002
```
Ce correctif reste documentaire et doit être validé avant toute ouverture de `pre.002`.
## Type de livraison
```text
ksp-doc-0.1.3-pre.001-fix.003.zip
```
## Objectif
Corriger le dimensionnement du plan `0.1.3` afin que les prereleases prévues restent compatibles avec la règle KSP de petites tranches d'environ 1520 minutes de travail effectif, et rendre explicites les prereleases qui modifient `ksp-logging-lib` pour la non-régression multi-sink/routing.
Aucune décision fonctionnelle validée dans `pre.001-fix.001/.002` n'est annulée.
## Version Cargo
Ce correctif modifie uniquement la documentation de planification.
Conformément à `VER-ID-008`, `workspace.package.version` reste :
```text
0.1.3-pre.1
```
Identifiant de livraison/commit :
```text
0.1.3-pre.001-fix.003
```
## Fichiers ajoutés
- `deltas/0.1.3/pre.001-fix.003.md`
## Fichiers modifiés
- `docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md` — version documentaire 3 -> 4 ;
- `docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md` — version documentaire 8 -> 9 ;
- `docs/plans/000-README.md` — version documentaire 10 -> 11.
## Correction de `pre.002`
`pre.002` n'agrège plus le bootstrap et le registre de fichiers.
Elle est limitée à :
```text
création ksp-config-lib
ConfigBootstrapOptions
default cfgpath = config
default schemapath = config/schemas
--cfgpath
--schemapath
validation/tests bootstrap
```
Le registre logique est déplacé en `pre.003`.
## Nouvelle `pre.003` — registre `file_id`
Cette tranche possède exclusivement :
```text
ConfigFileId
ConfigFileKind
ConfigFileDescriptor
ConfigFileRegistry
file_id -> filename
--filemap=<file_id>=<filename>
validation des overrides
```
Aucune lecture JSON/schema n'est requise dans cette tranche.
## Tranches `ksp-logging-lib` explicites
Les ajouts/modifications Logging nécessaires ne sont plus regroupés dans une seule prerelease vague.
### `pre.004` — contrats/settings multi-output
- console configurable ;
- plusieurs outputs fichier ;
- `output_id` unique ;
- level/targets/domains par output ;
- format/ANSI/rotation ;
- validation publique des settings ;
- aucune dépendance Logging -> Config.
### `pre.005` — runtime multi-sink + routing
- création réelle de 0..N sinks fichier ;
- console indépendante ;
- routing/filter par output, level, target, domain ;
- non-blocking/guards ;
- conservation du subscriber unique, takeover et hot reload transactionnel ;
- tests de non-régression.
Le schema `std.logging.json` n'est gelé qu'ensuite, en `pre.006`, sur la surface Logging effectivement stabilisée.
## Découpage révisé
```text
pre.002 crate Config + bootstrap cfgpath/schemapath
pre.003 registre file_id -> filename + --filemap
pre.004 Logging : contrats/settings multi-output
pre.005 Logging : runtime multi-sink + routing/filter
pre.006 JSON/JSON Schema + std.logging.json
pre.007 globals + profils + default_profile
pre.008 compositions génériques par file_id
pre.009 .env + process env + resolver ${...}
pre.010 sensibilité + real/safe/provenance
pre.011 adapter Config -> Logging
pre.012 management + persistence JSON/.env
pre.013 ownership audits + robustesse
pre.014 clôture
```
Le nombre de prereleases n'est pas une cible à minimiser. Toute tranche qui devient manifestement supérieure au budget d'environ 1520 minutes doit être scindée explicitement.
## Invariants conservés
- `ksp-config-lib` reste l'unique manager KSP des fichiers Config et variables applicatives ;
- `cfgpath`/`schemapath` restent bootstrap-only ;
- `file_id` reste l'identité logique stable, filename reste remplaçable ;
- process env > `.env` > fallback ;
- `${KSP_VAR}` / `${KSP_VAR:-fallback}` restent le modèle d'interpolation ;
- secrets conservent valeur réelle + représentation sûre/redacted ;
- Config construit les contrats Logging sans posséder le routing Logging ;
- `ksp-logging-lib` conserve subscriber/layers/writers/lifecycle/guards ;
- `LoggingGuard` reste orchestration-owned ;
- `0.1.4` reste la release prévue pour `ksp-app-config-desk`.
## Validations exécutées
Sur le delta documentaire :
- contrôle des headers `file:` / `version:` ;
- contrôle que les versions documentaires progressent d'une unité ;
- contrôle que `pre.002` ne contient plus le registre `file_id` ;
- contrôle que `pre.003` possède le registre et `--filemap` ;
- contrôle que `pre.004` et `pre.005` mentionnent explicitement les modifications `ksp-logging-lib` ;
- contrôle que `std.logging.json`/son schema arrivent après ces tranches Logging ;
- contrôle du nouveau découpage jusqu'à `pre.014` ;
- contrôle que `Cargo.toml` n'est pas livré par ce fix.
## Validations non exécutées
Aucune commande Cargo n'est déclarée réussie pour ce correctif documentaire. Aucun code Rust, manifest ou fichier runtime n'est modifié.
## Question ouverte avant `pre.002`
Aucune question bloquante n'est conservée par défaut. Le plan regranularisé doit être validé par le user avant ouverture de `pre.002`.