v0.3.15-pre.001-fix.001

This commit is contained in:
2026-09-13 00:33:44 +02:00
parent 4ec80889c2
commit 84ef8bb1f1
3 changed files with 346 additions and 43 deletions

View File

@@ -0,0 +1,159 @@
<!-- file: deltas/0.3.15/pre.001-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.15-pre.001-fix.001` — forecast souple éditable
## Base requise
```text
0.3.15-pre.001 appliquée
workspace.package.version = 0.3.15-pre.1
```
Le gate opérateur communiqué après `pre.001` est propre :
```text
cargo fmt --all -- --check : PASS
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (320 table(s), 184 file(s))
cargo check --workspace : PASS
```
Le comptage Markdown correspond exactement à la portée de la commande opérateur, qui cible `deltas/0.3.15` et non l'ensemble historique de `deltas/`.
## Motif du correctif
Le forecast recalibré de `docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md` et sa duplication de validation étaient présentés sous forme de tableau.
Cette forme conserve l'information mais ne suit pas la convention documentaire durable des versions KSP précédentes : le forecast souple utilise une sous-section `### pre.NNN` par tranche et place les correctifs directement sous leur prerelease via `#### pre.NNN-fix.MMM`.
Le même défaut avait déjà été corrigé dans des versions antérieures, notamment `0.3.4-pre.001-fix.001` et `0.3.9-pre.001-fix.001`.
## Correction
Le forecast est restructuré sans changer son contenu fonctionnel :
```text
## Forecast recalibré — prereleases souples
### pre.NNN — responsabilité
#### pre.NNN-fix.MMM — correctif éventuel
### rel.001 — publication stable mécanique
```
Le découpage reste exactement :
```text
pre.001 : cadrage
pre.002 : Transport WS capability
pre.003 : Config capability/composite
pre.004 : Worker enforcement
pre.005 : scaffold Desk
pre.006 : inventaire composable
pre.007 : reconstruction des ressources Start
pre.008 : runtime mono-route
pre.009 : runtime multi-route
pre.010 : snapshots/monitoring
pre.011 : frontend + tracing TypeScript
pre.012 : hardening races/shutdown/IPC
pre.013 : completeness/security cross-layer
pre.014 : gate technique/live
pre.015 : réconciliation documentaire
pre.016 : préparation publication
rel.001 : publication stable mécanique
```
`pre.001-fix.001` est enregistré directement sous `pre.001`. Aucun ordre, objectif, gap lower-layer, budget de responsabilité ou décision de sizing n'est changé.
## Version Cargo inchangée
Ce correctif est strictement documentaire. Conformément à `VER-ID-008` :
```text
workspace.package.version = 0.3.15-pre.1
```
`Cargo.toml` reste byte-identique à `pre.001`.
## Fichiers ajoutés
```text
deltas/0.3.15/pre.001-fix.001.md
```
## Fichiers modifiés
```text
docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md
docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md
```
Headers documentaires :
```text
plan 036 : version 1 -> 2
validation 032 : version 2 -> 3
```
## Fichiers supprimés
```text
aucun
```
## Fichiers explicitement inchangés
```text
Cargo.toml
crates/**
config/**
README.md
RULES.md
ROADMAP.md
CHANGELOG.md
prompts/**
deltas/0.3.15/pre.001.md
```
Le delta historique `pre.001.md` reste immuable conformément à `VER-DELTA-007` ; le correctif est tracé uniquement par le présent delta et les deux documents réellement corrigés.
## Décisions prises
```text
forecast KSP éditable = sous-sections, pas tableau
fix rattaché directement à sa prerelease dans le forecast
aucun changement de scope fonctionnel 0.3.15
aucune nouvelle tranche ajoutée
aucun changement de version Cargo pour ce fix documentaire
```
## Validations exécutées
Le gate opérateur de `pre.001` ci-dessus qualifie la base directe du fix.
Après restructuration documentaire :
```text
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (318 table(s), 185 file(s))
forecast table remnants dans plan 036 / validation 032 : 0
plan forecast headings : pre.001..pre.016 + rel.001 présents
validation forecast headings : pre.001..pre.016 + rel.001 présents
Cargo.toml : byte-identique à pre.001
deltas/0.3.15/pre.001.md : byte-identique à pre.001
```
Le passage de `320` à `318` tables correspond exactement au retrait des deux tableaux de forecast ; le passage de `184` à `185` fichiers correspond à l'ajout du présent delta.
## Validations non exécutées
Aucun nouveau test runtime/live n'est requis par ce fix documentaire. Les commandes Cargo post-fix ne sont pas déclarées PASS depuis l'environnement d'assemblage s'il ne dispose pas de Cargo ; le gate opérateur déjà communiqué reste la preuve technique de la base `pre.001`.
## Questions ouvertes
```text
aucune pour ce correctif documentaire
```

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan v0.3.15 — Raw Transaction Ingest Desk
@@ -663,29 +663,119 @@ app close -> tous Workers arrêtés/joints
Le build Tauri final reste un gate tardif et ne remplace pas les tests runtime.
## 20. Forecast recalibré
## 20. Forecast recalibré — prereleases souples
| Tranche | Objectif borné |
|-----------|------------------------------------------------------------------------------------------------------|
| `pre.001` | audit, route model, external re-audit, sizing, plan/validation |
| `pre.002` | Transport : capability WS typed par subscription + tests, sans app |
| `pre.003` | Config : schema/mapping capabilities WS + composite/profils Raw Ingest Desk |
| `pre.004` | Worker : enforcement des capabilities WS déclarées + canaris route constructors |
| `pre.005` | scaffold `ksp-app-raw-transaction-ingest-desk`, gabarit KSP, DTO/route IDs/states, sans Start Worker |
| `pre.006` | Config -> inventaire de routes composables/non composables + raisons sûres |
| `pre.007` | reconstruction/revalidation Start des ressources Transport pour les cinq routes, sans launch Worker |
| `pre.008` | Store lifecycle + Start/Stop mono-route réel |
| `pre.009` | multi-route : un Worker par route, même Store, isolation des faults |
| `pre.010` | snapshots/events/monitoring lifecycle-health-activity-backpressure-reconnect-replay-gaps-repair |
| `pre.011` | frontend fonctionnel complet + tracing TypeScript sûr |
| `pre.012` | races, shutdown app, sécurité IPC, hardening hostile/stale inventory |
| `pre.013` | cross-layer completeness + canaris système sans expansion de frontières |
| `pre.014` | gate technique/live accessible + frontend/Tauri + build final de validation technique |
| `pre.015` | réconciliation documentaire finale : plan/validation/README/USAGE |
| `pre.016` | préparation publication minimale : prompt suivant + CHANGELOG + ROADMAP |
| `rel.001` | mécanique stable uniquement, aucun rattrapage fonctionnel |
Le forecast initial `pre.002 -> pre.013` est étendu jusqu'à `pre.016`. La cause n'est pas une inflation UI : c'est la découverte d'un contrat WS capability manquant qui doit être fermé proprement dans Transport, Config puis Worker avant consommation par la Desk.
Le forecast initial `pre.002 -> pre.013` est donc étendu jusqu'à `pre.016`. La cause n'est pas une inflation UI : c'est la découverte d'un contrat WS capability manquant qui doit être fermé proprement dans Transport, Config puis Worker avant consommation par la Desk.
Le forecast reste volontairement souple. Chaque prerelease possède une sous-section directement éditable ; lorsqu'un correctif est nécessaire, il est ajouté sous la prerelease concernée avec un titre `#### pre.NNN-fix.MMM`. Les responsabilités de clôture `gate technique/live -> réconciliation documentaire -> préparation de publication` restent séparées.
### `pre.001` — audit / route model / external re-audit / sizing
**Statut : réalisé.**
Audit de la stable, des règles, de Config/Transport/Store/Worker, des cinq familles Worker, des Desk existantes et des surfaces providers/protocoles pertinentes. Matrice route -> capabilities -> Config -> ressources Worker, modèle de composabilité, screen map, IPC/tracing, sizing et plan/validation. Aucun scaffold Desk ni Start/Stop Worker.
Budget cible : une tranche de cadrage.
#### `pre.001-fix.001` — forecast souple éditable
**Statut : réalisé ; correctif documentaire uniquement.**
Remplacement du forecast tabulaire par la hiérarchie durable `### pre.NNN` / `#### pre.NNN-fix.MMM`, identique à celle utilisée dans les versions KSP précédentes. Aucun objectif, ordre, gap lower-layer ni décision de sizing n'est modifié. `workspace.package.version` reste `0.3.15-pre.1`.
### `pre.002` — capability WS typed dans Transport
Ajouter une déclaration de capabilities WS exacte par subscription, réutilisant les types Transport existants, avec validation et tests. Aucun code applicatif Desk.
Budget cible : une tranche Transport.
### `pre.003` — mapping Config et composite Raw Ingest Desk
Étendre le schema/mapping Config pour porter les capabilities WS déclarées et préparer les composites/profils Raw Transaction Ingest Desk cohérents Transport+Store. Aucun frontend.
Budget cible : une tranche Config.
### `pre.004` — enforcement Worker des capabilities WS
Faire refuser avant I/O les constructions de sources dont les capabilities WS requises ne sont pas déclarées, avec canaris des constructeurs de routes. Aucune logique provider dans la Desk.
Budget cible : une tranche Worker.
### `pre.005` — scaffold Raw Transaction Ingest Desk
Créer `ksp-app-raw-transaction-ingest-desk` sur le gabarit KSP existant, avec shell, splash, dépendances frontend, DTO de base, IDs de routes et états, sans démarrer de Worker.
Budget cible : une tranche Desk fondation.
### `pre.006` — inventaire de routes composables
Résoudre Config côté Rust et projeter les routes composables/non composables avec raisons sûres et génération d'inventaire, sans endpoint, URL, secret ou source key côté frontend.
Budget cible : une tranche composition.
### `pre.007` — reconstruction Start des ressources Transport
Revalider Config au Start et reconstruire les ressources Transport exactes nécessaires aux cinq routes, sans lancer encore le Worker. Le choix des endpoints physiques reste Transport-owned.
Budget cible : une tranche intégration Transport/Desk.
### `pre.008` — Store lifecycle et Start/Stop mono-route
Ouvrir/réutiliser le Store via `ksp-store-lib`, lancer un Worker pour une route, installer le handle avant publication Running, puis fermer proprement Stop/terminal.
Budget cible : une tranche runtime mono-route.
### `pre.009` — multi-route et Store partagé
Permettre plusieurs routes simultanées avec un Worker indépendant par route, un même Store partagé lorsque le réseau est strictement identique et une isolation des faults entre routes.
Budget cible : une tranche runtime multi-route.
### `pre.010` — snapshots et monitoring runtime
Relayer les snapshots/events sûrs nécessaires à la Desk : lifecycle, health, activity, backpressure, reconnect, replay, gaps et repair, sans payload RawTransaction ni identité provider sensible.
Budget cible : une tranche observabilité.
### `pre.011` — frontend fonctionnel et tracing TypeScript
Finaliser l'UI de sélection/supervision et tracer les interactions frontend conformément aux règles Desk KSP, sans journaliser de valeurs sensibles ni dupliquer la logique Worker.
Budget cible : une tranche frontend.
### `pre.012` — races / shutdown / sécurité IPC
Durcir stale inventory, Start/Stop concurrents, fermeture application, joins bornés, erreurs sûres, surfaces IPC et scénarios hostiles.
Budget cible : une tranche hardening.
### `pre.013` — completeness/security cross-layer
Fermer les canaris Config/Transport/Worker/Common RAW/Store/Desk, dependency firewalls, API publique, redaction et absence de seconde pipeline ou d'orchestration Backfill.
Budget cible : une tranche de clôture fonctionnelle.
### `pre.014` — gate technique/live final
Exécuter le workspace complet, Clippy strict, suites ciblées, graphes/duplicates, smokes réellement accessibles et build frontend/Tauri final. Aucun nouveau scope métier.
Budget cible : une tranche technique.
### `pre.015` — réconciliation documentaire finale
Réconcilier plan, validation, README/USAGE et documents durables réellement affectés. Ne pas modifier CHANGELOG, ROADMAP ni le prompt suivant.
Budget cible : une tranche documentaire.
### `pre.016` — préparation de publication
Préparer le prompt suivant, CHANGELOG, ROADMAP et la mécanique minimale de version/delta. Aucun rattrapage fonctionnel ou documentaire durable.
Budget cible : une tranche courte de publication.
### `rel.001` — publication stable mécanique
Publier mécaniquement `v0.3.15` sur une candidate déjà fermée, sans rattrapage.
## 21. Hors périmètre

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Validation v0.3.15 — Raw Transaction Ingest Desk
@@ -330,27 +330,81 @@ frontend sans endpoints/secrets/handles/source keys/payloads bruts
Ces tables décrivent le contrat de sécurité à implémenter ; elles ne revendiquent aucune commande Tauri existante en `pre.001`.
## 15. Sizing / forecast
## 15. Sizing / forecast souple
| Tranche | Objectif borné |
|-----------|------------------------------------------------------------------------------------------------------|
| `pre.001` | audit, route model, external re-audit, sizing, plan/validation |
| `pre.002` | Transport : capability WS typed par subscription + tests, sans app |
| `pre.003` | Config : schema/mapping capabilities WS + composite/profils Raw Ingest Desk |
| `pre.004` | Worker : enforcement des capabilities WS déclarées + canaris route constructors |
| `pre.005` | scaffold `ksp-app-raw-transaction-ingest-desk`, gabarit KSP, DTO/route IDs/states, sans Start Worker |
| `pre.006` | Config -> inventaire de routes composables/non composables + raisons sûres |
| `pre.007` | reconstruction/revalidation Start des ressources Transport pour les cinq routes, sans launch Worker |
| `pre.008` | Store lifecycle + Start/Stop mono-route réel |
| `pre.009` | multi-route : un Worker par route, même Store, isolation des faults |
| `pre.010` | snapshots/events/monitoring lifecycle-health-activity-backpressure-reconnect-replay-gaps-repair |
| `pre.011` | frontend fonctionnel complet + tracing TypeScript sûr |
| `pre.012` | races, shutdown app, sécurité IPC, hardening hostile/stale inventory |
| `pre.013` | cross-layer completeness + canaris système sans expansion de frontières |
| `pre.014` | gate technique/live accessible + frontend/Tauri + build final de validation technique |
| `pre.015` | réconciliation documentaire finale : plan/validation/README/USAGE |
| `pre.016` | préparation publication minimale : prompt suivant + CHANGELOG + ROADMAP |
| `rel.001` | mécanique stable uniquement, aucun rattrapage fonctionnel |
Le forecast durable est porté par la section 20 du plan `036` sous forme hiérarchique éditable, et non par un tableau. La validation conserve ici la même séquence afin que le statut de chaque tranche puisse être complété sans réécrire la structure documentaire.
### `pre.001` — cadrage
**Statut : réalisé.** Audit, route model, external re-audit, sizing et plan/validation, sans code fonctionnel Desk.
#### `pre.001-fix.001` — forme du forecast
**Statut : réalisé ; documentaire uniquement.** Le tableau de forecast initial est remplacé par la convention KSP `### pre.NNN` / `#### pre.NNN-fix.MMM`. Aucun contenu fonctionnel du sizing n'est changé.
### `pre.002` — Transport WS capability
Capability WS typed par subscription + tests, sans app.
### `pre.003` — Config capability/composite
Schema/mapping capabilities WS + composite/profils Raw Ingest Desk.
### `pre.004` — Worker enforcement
Enforcement des capabilities WS déclarées + canaris route constructors.
### `pre.005` — scaffold Desk
Scaffold `ksp-app-raw-transaction-ingest-desk`, gabarit KSP, DTO/route IDs/states, sans Start Worker.
### `pre.006` — inventaire composable
Config -> inventaire de routes composables/non composables + raisons sûres.
### `pre.007` — ressources Start
Reconstruction/revalidation Start des ressources Transport pour les cinq routes, sans launch Worker.
### `pre.008` — runtime mono-route
Store lifecycle + Start/Stop mono-route réel.
### `pre.009` — runtime multi-route
Un Worker par route, même Store si réseau identique, isolation des faults.
### `pre.010` — monitoring
Snapshots/events/monitoring lifecycle-health-activity-backpressure-reconnect-replay-gaps-repair.
### `pre.011` — frontend
Frontend fonctionnel complet + tracing TypeScript sûr.
### `pre.012` — hardening
Races, shutdown app, sécurité IPC, hardening hostile/stale inventory.
### `pre.013` — completeness
Cross-layer completeness + canaris système sans expansion de frontières.
### `pre.014` — gate technique/live
Gate technique/live accessible + frontend/Tauri + build final de validation technique.
### `pre.015` — réconciliation documentaire
Plan/validation/README/USAGE uniquement selon les surfaces réellement affectées.
### `pre.016` — préparation publication
Prompt suivant + CHANGELOG + ROADMAP + mécanique minimale de publication.
### `rel.001` — stable
Publication mécanique uniquement, aucun rattrapage fonctionnel.
Le forecast initial du prompt n'est pas recopié : trois tranches lower-layer précèdent volontairement le scaffold UI.