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

4.4 KiB

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 :

0.0.3-pre.2

à :

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 :

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

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 :

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

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.