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