Files
khadhroony-solana-project/deltas/0.1.3/pre.001-fix.003.md

166 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 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`.