# 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.