From 3d307be645155fbc4666b0bd451ee1730e5cd5a1 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 28 Aug 2026 16:56:06 +0200 Subject: [PATCH] v0.2.14-rel.001 --- Cargo.toml | 4 +- deltas/0.2.14/rel.001.md | 307 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 309 insertions(+), 2 deletions(-) create mode 100644 deltas/0.2.14/rel.001.md diff --git a/Cargo.toml b/Cargo.toml index 8d6bf6e..d35e313 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 321 +# version: 322 [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.8" +version = "0.2.14" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.2.14/rel.001.md b/deltas/0.2.14/rel.001.md new file mode 100644 index 0000000..25d2217 --- /dev/null +++ b/deltas/0.2.14/rel.001.md @@ -0,0 +1,307 @@ + + + +# Delta `0.2.14-rel.001` — publication stable Program API foundation + +## 1. Base requise + +Base directe attendue : + +```text +0.2.14-pre.008 +workspace.package.version = 0.2.14-pre.8 +``` + +Commit attendu pour cette livraison : + +```text +v0.2.14-rel.001 +``` + +Tag stable attendu après validation : + +```text +v0.2.14 +``` + +## 2. Responsabilité de `rel.001` + +Cette livraison effectue uniquement la mécanique de publication stable définie par le cycle KSP et `VER-LIFECYCLE-012`. + +Elle : + +- passe `workspace.package.version` de `0.2.14-pre.8` à `0.2.14` ; +- ajoute le présent delta `rel.001` ; +- ne corrige ni code, ni test, ni manifest de crate, ni README/USAGE, ni plan/validation, ni architecture/règle, ni prompt, ni `CHANGELOG.md`, ni `ROADMAP.md`. + +Tout défaut appartenant à un couloir antérieur doit renvoyer vers une prerelease appropriée ; `rel.001` n'est jamais une tranche de rattrapage. + +## 3. Preuves acquises avant publication + +Le gate opérateur du gate technique final `0.2.14-pre.006`, exécuté le **28 août 2026**, a validé : + +```text +cargo fmt --all PASS +python3 scripts/audit_rust_workspace_rules.py PASS + General Rust rule audit clean + Rust export completeness audit 0 candidate(s) + KSP workspace Rust rule audit clean +python3 scripts/audit_markdown_tables.py PASS — 174 tables / 124 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 / inspecté +cargo tree --duplicates PASS / inspecté +``` + +Le graphe normal ciblé est resté strictement : + +```text +ksp-program-api +├── ksp-core-lib +│ └── solana-pubkey +└── ksp-interface-lib + └── ksp-core-lib +``` + +Le gate opérateur de la réconciliation documentaire `0.2.14-pre.007`, exécuté le **28 août 2026**, a ensuite validé : + +```text +cargo fmt --all PASS +python3 scripts/audit_rust_workspace_rules.py PASS + General Rust rule audit clean + Rust export completeness audit 0 candidate(s) + KSP workspace Rust rule audit clean +python3 scripts/audit_markdown_tables.py PASS — 175 tables / 125 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 +cargo test --workspace PASS +``` + +Enfin, le gate opérateur de la préparation minimale de publication `0.2.14-pre.008`, exécuté le **28 août 2026**, a validé : + +```text +cargo fmt --all PASS +python3 scripts/audit_rust_workspace_rules.py PASS + General Rust rule audit clean + Rust export completeness audit 0 candidate(s) + KSP workspace Rust rule audit clean +python3 scripts/audit_markdown_tables.py PASS — 175 tables / 127 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 +cargo test --workspace PASS +``` + +`pre.008` n'a rouvert aucun code, test, README/USAGE, plan, validation ou architecture. Elle a préparé uniquement `Cargo.toml`, `CHANGELOG.md`, `ROADMAP.md`, le prompt suivant et son delta. + +Le seul incident technique de la release, le faux positif cross-crate du scanner Logging observé en `pre.005`, a été corrigé dans `pre.005-fix.001` sans changement fonctionnel ; son gate ciblé puis le workspace complet sont passés avant l'ouverture de `pre.006`. + +## 4. Version stable publiée + +La version Cargo devient : + +```text +workspace.package.version = 0.2.14 +``` + +La release stable publiée est : + +```text +0.2.14 — Program API foundation +``` + +La surface stable comprend : + +```text +ksp-program-api +ProgramInstructionRecognition + NoMatch + ProgramMatch + ExactMatch +ProgramInstructionDecodeOutcome + Decoded(Decoded) + Unsupported +ProgramInstructionDecoder: Send + Sync + associated type Decoded + program_ids(&self) -> &[Pubkey] + recognize(&self, &ProgramInstruction) -> ProgramInstructionRecognition + decode(&self, &ProgramInstruction) -> Result> +10 exports crate-root exacts +3 modules/fichiers Rust de production exacts +Program Pubkey opaque non enregistré supporté +output Decoded possédé par l'implémentation externe +aucun bound implicite Debug / Clone / Send / Sync sur Decoded +``` + +La dependency direction stable reste : + +```text +ksp-program-api + -> ksp-core-lib + -> ksp-interface-lib + -> ksp-core-lib +``` + +Sont volontairement absents de cette foundation : + +```text +ksp-program-lib +registry runtime / dyn registry +ProgramKind / descriptor global +identity / version / coverage +proofs / diagnostics de replay +ProgramAccountDecoder +ProgramEventDecoder +ProgramReturnDataDecoder +ProgramExecutionPreparer +payload canonique D3 +serde / serde_json / Any +borsh / wincode / bincode +ksp-logging-lib / tracing runtime +réseau / filesystem / environnement +Store / Materializer / Wallet / Config / Tauri +``` + +`ProgramInstructionRecognition::ExactMatch` reste une assertion de reconnaissance du decoder et non une preuve indépendante. Les erreurs réelles restent transportées par le `Result` Core ; `Unsupported` représente un état de décodage non supporté et non une erreur artificielle. + +## 5. Fichiers ajoutés + +```text +deltas/0.2.14/rel.001.md +``` + +## 6. Fichiers modifiés + +```text +Cargo.toml +``` + +## 7. Fichiers supprimés + +```text +aucun +``` + +## 8. Validations exécutées pour préparer le delta + +Contrôles statiques de l'overlay : + +```text +Cargo.toml version 0.2.14 +Cargo.toml header version 322 +payload rel.001 2 fichiers exactement +CHANGELOG.md non rouvert +ROADMAP.md non rouvert +prompt 020 non rouvert +README/USAGE non rouverts +plan / validation non rouverts +code / tests non rouverts +aucun fichier de rattrapage présent +``` + +La préparation de l'archive ne rejoue aucun test Cargo dans l'environnement de génération. Le gate stable final reste à exécuter après application du delta et avant commit/tag. + +## 9. Validations non exécutées pendant la préparation + +Ne sont volontairement pas rejoués pour construire l'overlay : + +```text +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 +smokes réseau/live +``` + +Le changement est limité au signal de version Cargo et au présent delta ; ces contrôles doivent uniquement être rejoués dans le gate stable défini ci-dessous lorsque requis. + +## 10. Validation stable après application + +Exécuter avant publication : + +```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 --workspace +``` + +Aucun smoke réseau/live ni nouveau graphe Cargo n'est requis : `rel.001` ne modifie ni runtime, ni code métier, ni dépendances. + +## 11. Décisions de publication + +Aucune nouvelle décision fonctionnelle ou architecturale n'est introduite par `rel.001`. + +La publication confirme uniquement que : + +1. `0.2.14-pre.008` est la candidate directe de la release stable ; +2. les lanes technique, documentaire et préparation de publication sont closes ; +3. `CHANGELOG.md`, `ROADMAP.md` et `prompts/020-V0_3_1_START_PROMPT.md` restent inchangés dans `rel.001` ; +4. `ksp-program-api` reste instruction-only et sans runtime `ksp-program-lib` ; +5. l'output typé reste possédé par l'implémentation et aucun registry hétérogène n'est promis par la foundation ; +6. l'archive historique `khadhroony-bot3_v0.5.3-pre.005-fix010.zip` est obligatoire pour l'audit `0.3.1-pre.001`, mais reste une source historique non normative ; +7. `0.3.1` ouvre `ksp-store-api` + `ksp-store-lib` avec PostgreSQL de référence et persistence RAW-only ; +8. la prochaine release s'ouvre exclusivement depuis le tag stable `v0.2.14`. + +## 12. Questions ouvertes + +Aucune question ouverte ne bloque la publication de `0.2.14`. + +Les choix de registry/runtime Program, payload canonique D3, decoders account/event/return-data et préparation d'exécution restent explicitement reportés. Ils ne constituent pas une dette bloquante de cette foundation et ne doivent pas être réintroduits pendant la publication stable. + +Le détail du modèle RAW, de l'API backend-agnostic Store, du schéma PostgreSQL et des migrations appartient à l'audit/sizing de `0.3.1-pre.001`. + +## 13. Commit et tag stable + +Après succès du gate stable : + +```text +commit : v0.2.14-rel.001 +tag : v0.2.14 +``` + +Aucun tag intermédiaire `rel.001` n'est requis. + +Commandes Git typiques : + +```bash +git add Cargo.toml deltas/0.2.14/rel.001.md +git commit -m "v0.2.14-rel.001" +git tag v0.2.14 +git push +git push origin v0.2.14 +``` + +## 14. Suite + +Après publication du tag stable `v0.2.14`, ouvrir : + +```text +0.3.1-pre.001 — Store RAW foundation +``` + +avec : + +```text +prompts/020-V0_3_1_START_PROMPT.md +``` + +La session suivante doit recevoir : + +```text +archive opérateur exacte de v0.2.14 +khadhroony-bot3_v0.5.3-pre.005-fix010.zip +``` + +`0.3.1-pre.001` reste une tranche d'audit/brainstorming/sizing avant toute implémentation lourde ; elle doit auditer l'ancien `ks-store` et PostgreSQL actuel, définir le minimum RAW réellement replayable, choisir le modèle API/backend extensible et préserver les reports `0.3.2`/`0.3.3`/`0.3.4` ainsi que CORE/DECODE/SPECIALIZED.