From 4eba9be48c3184415966ab48b1f34ad671ee9658 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 28 Aug 2026 15:53:15 +0200 Subject: [PATCH] v0.2.14-pre.006 --- Cargo.toml | 4 +- deltas/0.2.14/pre.006.md | 147 +++++++++++++++++++++ docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md | 29 +++- docs/validation/017-V0_2_14_PROGRAM_API.md | 40 +++++- 4 files changed, 213 insertions(+), 7 deletions(-) create mode 100644 deltas/0.2.14/pre.006.md diff --git a/Cargo.toml b/Cargo.toml index c2e19ba..77cdd2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 318 +# version: 319 [workspace] resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-wallet-lib"] [workspace.package] -version = "0.2.14-pre.5.fix.1" +version = "0.2.14-pre.6" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.2.14/pre.006.md b/deltas/0.2.14/pre.006.md new file mode 100644 index 0000000..9d905b0 --- /dev/null +++ b/deltas/0.2.14/pre.006.md @@ -0,0 +1,147 @@ + + + +# Delta `0.2.14-pre.006` — gate technique final Program API + +## 1. Base requise + +Cette tranche s'applique exclusivement après `0.2.14-pre.005-fix.001`. + +Le gate opérateur du fix est intégralement vert : + +```text +cargo fmt --all PASS +python3 scripts/audit_rust_workspace_rules.py PASS / clean +python3 scripts/audit_markdown_tables.py ... PASS / clean — 173 tables / 123 fichiers +cargo check --workspace PASS +cargo clippy --workspace --all-targets PASS +cargo test -p ksp-program-api PASS — 18 tests Rust +cargo test -p ksp-logging-lib --test ownership PASS — 2/2 +cargo test --workspace PASS +cargo tree -p ksp-program-api --edges normal Core + Interface uniquement +cargo tree --duplicates inspecté +``` + +Le faux positif logging de `pre.005` est donc fermé sans changement de production ni de dépendances. + +## 2. Objectif + +Préparer le gate technique final de `0.2.14` sans rouvrir la surface fonctionnelle. + +Aucun nouveau type, trait, test métier, registry, codec, runtime ou comportement n'est ajouté. Les canaris existants couvrent déjà : + +```text +ProgramInstructionRecognition +ProgramInstructionDecodeOutcome +ProgramInstructionDecoder: Send + Sync +associated Decoded sans bounds implicites +extension externe avec Pubkey non enregistré +NoMatch / ProgramMatch / ExactMatch +Decoded / Unsupported / Err Core +input Interface maximal 255 comptes / 10 240 bytes +Debug outcome opaque +façade crate-root exacte +inventaire de production exact +absence de ProgramKind / registry / preparer / payload D3 +absence de serde / JSON / Any / codecs +absence de logging runtime / IO +firewall Core + Interface +``` + +## 3. Décision de tranche + +`pre.006` reste un gate pur. Ajouter un nouveau test uniquement pour matérialiser le numéro de prerelease augmenterait la surface de changement sans renforcer une propriété non couverte. + +La tranche modifie donc seulement la version workspace, le plan, la validation et le présent delta. + +## 4. Version + +La prerelease non-fix synchronise la version Cargo conformément à `VER-ID-009` : + +```text +0.2.14-pre.5.fix.1 +→ +0.2.14-pre.6 +``` + +Commit attendu après validation : + +```text +v0.2.14-pre.006 +``` + +Aucun tag prerelease. + +## 5. Fichier ajouté + +```text +deltas/0.2.14/pre.006.md +``` + +## 6. Fichiers modifiés + +```text +Cargo.toml +docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md +docs/validation/017-V0_2_14_PROGRAM_API.md +``` + +## 7. Fichiers supprimés + +Aucun. + +## 8. Surface explicitement inchangée + +```text +crates/ksp-program-api/src/** +crates/ksp-program-api/tests/** +crates/ksp-program-api/unit_tests/** +crates/ksp-program-api/Cargo.toml +crates/ksp-program-api/README.md +crates/ksp-program-api/USAGE.md +CHANGELOG.md +ROADMAP.md +prompts/** +architectures / règles +``` + +La réconciliation README/USAGE et des documents durables reste réservée à `pre.007`. La préparation du prompt suivant, du CHANGELOG et du ROADMAP reste réservée à `pre.008`. + +## 9. Validations exécutées à la génération + +```text +python3 scripts/audit_rust_workspace_rules.py PASS / clean +python3 scripts/audit_markdown_tables.py ... PASS / clean — 174 tables / 124 fichiers +contrôle du diff PASS / 3 modifiés + 1 ajouté +``` + +Aucun `cargo` n'est disponible dans l'environnement de génération ; aucun PASS Cargo local n'est revendiqué. + +## 10. Gate opérateur + +```bash +cargo fmt --all +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.14 +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-program-api +cargo test -p ksp-logging-lib --test ownership +cargo test --workspace +cargo tree -p ksp-program-api --edges normal +cargo tree --duplicates +``` + +## 11. Décisions prises + +- le scope fonctionnel `0.2.14` est figé ; +- aucun nouveau contrat Program n'est introduit ; +- aucun registry, payload D3 ou `ProgramExecutionPreparer` n'est anticipé ; +- Program API reste déclarative et sans logging runtime ; +- Core + Interface restent les seules dépendances normales ; +- aucun smoke réseau n'est pertinent pour cette crate instruction-only sans I/O ; +- `pre.007` ne commence qu'après gate `pre.006` intégralement vert. + +## 12. Questions ouvertes + +Aucune question technique bloquante pour `0.2.14`. Après gate vert, la seule étape suivante est la réconciliation documentaire finale. diff --git a/docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md b/docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md index 238c8af..c5ea465 100644 --- a/docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md +++ b/docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md @@ -1,5 +1,5 @@ - + # Plan `0.2.14` — Program API foundation @@ -561,13 +561,15 @@ Le trait `ProgramInstructionDecoder: Send + Sync` expose l'associated type `Deco ### `pre.005` — Adversarial/API hardening + completeness -**Statut : matérialisé ; gate opérateur à confirmer.** +**Statut : réalisé ; `pre.005-fix.001` validé, gate opérateur intégralement PASS.** Deux canaris de fermeture sont ajoutés : `release_completeness.rs` verrouille l'inventaire exact des exports/modules et l'absence de surface closed-world/runtime ; `security_hardening.rs` couvre input Interface maximal, erreur sûre sur payload hostile et associated output sans bound implicite. Aucun contrat fonctionnel n'est ajouté. ### `pre.006` — Gate technique final -Aucun développement fonctionnel. Audits Rust/Markdown, check, Clippy, `cargo test -p ksp-program-api`, workspace complet et graphes Cargo. +**Statut : matérialisé ; gate opérateur à confirmer.** + +Aucun développement fonctionnel. Audits Rust/Markdown, check, Clippy, `cargo test -p ksp-program-api`, ownership Logging ciblé, workspace complet et graphes Cargo. Aucun README/USAGE final ni préparation de publication n’est mélangé à cette tranche. ### `pre.007` — Réconciliation documentaire finale @@ -675,6 +677,27 @@ normal dependencies inchangées : Core + Interface `pre.006` reste un gate technique final sans développement fonctionnel. +## 13.5 Gate opérateur `pre.005-fix.001` et ouverture de `pre.006` + +Le gate opérateur du 28 août 2026 ferme le correctif de `pre.005` : + +```text +cargo fmt --all PASS +audit Rust général / exports / workspace PASS +audit Markdown PASS — 173 tables / 123 fichiers +cargo check --workspace PASS +cargo clippy --workspace --all-targets PASS +cargo test -p ksp-program-api PASS — 18 tests Rust +cargo test -p ksp-logging-lib --test ownership PASS — 2 tests +cargo test --workspace PASS +cargo tree -p ksp-program-api --edges normal PASS — Core + Interface uniquement +cargo tree --duplicates exécuté, inventaire workspace observé +``` + +Le faux positif du canari logging est donc fermé sans changement de production ni de dépendances. Le scope fonctionnel `0.2.14` est figé avant `pre.006`. + +La tranche `pre.006` ne matérialise aucun nouveau code ou test : elle synchronise seulement la version workspace, le plan, la validation et son delta afin de rejouer le gate technique final sur la surface candidate déjà durcie. + ## 14. Hors périmètre confirmé ```text diff --git a/docs/validation/017-V0_2_14_PROGRAM_API.md b/docs/validation/017-V0_2_14_PROGRAM_API.md index 60f068a..72d8a3d 100644 --- a/docs/validation/017-V0_2_14_PROGRAM_API.md +++ b/docs/validation/017-V0_2_14_PROGRAM_API.md @@ -1,5 +1,5 @@ - + # Validation `0.2.14` — Program API foundation @@ -266,5 +266,41 @@ Ce gate autorise l'ouverture de `pre.005`. La sécurité des messages/contextes produits volontairement par une implémentation tierce reste sa responsabilité ; `ksp-program-api` garantit seulement qu'il n'ajoute aucun canal parallèle ni copie automatique du payload hostile. -Le gate opérateur de `pre.005` doit confirmer ces canaris avant le gate technique final `pre.006`. +Le gate opérateur de `pre.005` a révélé uniquement le faux positif cross-crate logging corrigé par `pre.005-fix.001`. Le gate du fix est désormais intégralement vert et autorise le gate technique final `pre.006`. +## 14. Gate opérateur `pre.005-fix.001` + +Le gate fourni le 28 août 2026 est intégralement vert : + +```text +cargo fmt --all PASS +audit Rust général / exports / workspace PASS +audit Markdown PASS — 173 tables / 123 fichiers +cargo check --workspace PASS +cargo clippy --workspace --all-targets PASS +cargo test -p ksp-program-api PASS — 18 tests Rust +cargo test -p ksp-logging-lib --test ownership PASS — 2/2 +cargo test --workspace PASS +cargo tree -p ksp-program-api --edges normal PASS — Core + Interface uniquement +cargo tree --duplicates inspecté +``` + +Le faux positif `tracing` du canari `release_completeness.rs` est fermé sans ajout de dépendance, sans modification de production et sans affaiblissement du scanner logging workspace. + +## 15. Gate technique final préparé `pre.006` + +`pre.006` ne modifie aucun fichier de production ni de test. Le gate final doit confirmer la candidate suivante sans élargissement : + +| Critère | Attendu `pre.006` | +|--------------------------------------|-------------------------------------------| +| API Program | exactement la surface fermée en `pre.005` | +| tests `ksp-program-api` | 18 tests Rust PASS | +| ownership Logging | 2 tests PASS | +| workspace | PASS | +| graphe normal `ksp-program-api` | Core + Interface uniquement | +| registry / preparer / payload D3 | ABSENTS | +| serde / codec / logging runtime / IO | ABSENTS | +| README / USAGE | non réconciliés ici | +| CHANGELOG / ROADMAP / prompt suivant | non modifiés | + +Aucun smoke réseau/live n'est requis : `ksp-program-api` reste une API déclarative instruction-only sans I/O.