Files
2026-08-14 08:57:39 +02:00

183 lines
4.4 KiB
Markdown

<!-- file: deltas/0.0.3/pre.003.md -->
<!-- version: 1 -->
# Delta 0.0.3-pre.003
## Base requise
`v0.0.3-pre.002`.
## Objectif
Formaliser le graphe de dépendances KSP, corriger l'inventaire `pre.002` lorsque le graphe révèle une frontière plus propre et éliminer les dépendances susceptibles de créer des cycles ou de mélanger sémantique, I/O et persistence.
## Version Cargo
`workspace.package.version` passe de :
```text
0.0.3-pre.2
```
à :
```text
0.0.3-pre.3
```
Le header de `Cargo.toml` passe de version 8 à 9.
## Fichiers ajoutés
- `docs/architecture/005-DEPENDENCY_GRAPH.md`
- `deltas/0.0.3/pre.003.md`
## Fichiers modifiés
- `Cargo.toml`
- `ROADMAP.md`
- `docs/architecture/000-README.md`
- `docs/architecture/003-COMPONENT_CONTRACTS.md`
- `docs/architecture/004-COMPONENT_INVENTORY.md`
- `docs/rules/RULES_DEPENDENCIES.md`
- `docs/rules/RULES_KSP.md`
- `docs/IDEAS.md`
- `docs/plans/001-V0_0_3_PLAN.md`
- `prompts/001-V0_1_X_START_PROMPT.md`
## Fichiers supprimés
Aucun.
## Corrections du roadmap
La ligne :
```text
Ne pas créer ksp-onchain-transport-api ni ksp-wallet-api sans nouveau besoin concret
```
est supprimée des tâches à cocher.
Il s'agit d'une décision architecturale, conservée dans les règles et le graphe, pas d'un livrable.
## Décisions principales
### Program
```text
ksp-program-api
-> core/interface
ksp-program-lib
-> ksp-program-api
```
Program reste indépendant du wallet, du transport, du store et des materializers.
### Execution / Policy
`ksp-execution-policy-api` et `ksp-execution-lib` passent de candidats forts à composants retenus.
`ksp-execution-lib` dépend de :
```text
ksp-program-api
ksp-execution-policy-api
ksp-wallet-lib
ksp-onchain-transport-lib
```
Il ne dépend pas de `ksp-program-lib`.
Les implémentations Program officielles ou externes restent substituables derrière `ksp-program-api`.
### Materializer
`ksp-materializer-api` peut dépendre de `ksp-program-api`.
`ksp-materializer-api` et `ksp-materializer-lib` ne dépendent pas du store.
### Store
`ksp-store-api` reste indépendant de Program, Materializer et Transport.
`ksp-store-lib` implémente `ksp-store-api` avec PostgreSQL comme référence.
Les modèles persistants appartiennent au store ; les workers/jobs effectuent les conversions depuis les modèles de transport/processing.
Aucun `ksp-data-api` global n'est introduit.
### Transport
`ksp-onchain-transport-lib` ne dépend pas du store.
Les providers normalisent leurs réponses dans des modèles de transport homogènes, ensuite convertis explicitement par `ksp-worker-raw-retriever`.
### Workers / Jobs
`ksp-worker-api` et `ksp-job-api` restent des lifecycle APIs séparées.
`ksp-worker-control-lib` dépend de `ksp-worker-api` et ne contrôle pas les jobs.
Aucune `ksp-job-control-lib` n'est prévue.
### Notifications
`ksp-store-api` devient le propriétaire retenu du contrat canonique de notification lorsqu'une donnée persistée est disponible.
Le contrat reste indépendant du producteur et du mécanisme de diffusion.
## Frontières de conversion retenues
```text
transport model
-> worker/job acquisition
-> store raw DTO
store raw DTO
-> core processor
-> program API/lib
-> store Core DTO
store Core DTO
-> materializer worker
-> materializer API/lib
-> store materialization/projection DTO
```
Ces conversions explicites empêchent les dépendances croisées entre bibliothèques basses.
## Questions reportées
### `pre.004`
- types exacts decoder/executor ;
- opération préparée ;
- policy API détaillée ;
- cycle exact de `ksp-execution-lib` ;
- conformité wire et historique/deprecated.
### `pre.005`
- modèles persistants raw/Core/materialization/projection ;
- materializer API détaillée ;
- notifications et diffusion ;
- replay/provenance/idempotence ;
- rôle précis des workers de matérialisation.
### `pre.006`
- managers/processus/IPC ;
- norme scenarios ;
- orchestration globale ;
- pipelines spécialisés.
## Validations
- headers `file:` / `version:` vérifiés sur tous les fichiers Markdown livrés ;
- `Cargo.toml` parsé avec succès et version vérifiée à `0.0.3-pre.3` ;
- références internes vers `005-DEPENDENCY_GRAPH.md` vérifiées ;
- anciennes références à la fausse tâche roadmap vérifiées absentes ;
- aucune commande Cargo exécutée : l'archive delta ne contient pas le workspace complet et ne modifie aucun code Rust.