v0.2.13-pre.008
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,8 +1,16 @@
|
||||
<!-- file: CHANGELOG.md -->
|
||||
<!-- version: 16 -->
|
||||
<!-- version: 17 -->
|
||||
|
||||
# Changelog KSP
|
||||
|
||||
## 0.2.13 — Interface / wire foundation — 2026-08-28
|
||||
|
||||
`0.2.13` introduit `ksp-interface-lib` comme première façade wire officielle KSP, volontairement passive et Program-facing. La surface stable réexporte le `Pubkey` canonique de Core, ajoute `ProgramAccountMeta` et `ProgramInstruction` à champs privés avec accessors explicites, conserve l’ordre et les doublons des account metas, accepte les Program Pubkeys opaques et borne l’admission à **255 account metas** et **10 240 octets** de data. Les deux bornes sont des limites d’admission Interface et ne prétendent pas garantir à elles seules le fit d’une transaction Solana top-level. Les erreurs réutilisent le contrat Core `Error/Result` avec uniquement `field`, `actual_len` et `maximum_len`, tandis que le `Debug` de l’instruction n’expose que `program_id`, `account_count` et `data_len`.
|
||||
|
||||
La dependency direction finale reste strictement `ksp-interface-lib -> ksp-core-lib -> solana-pubkey`. Aucun `serde`, codec générique (`borsh`, `wincode`, `bincode`), `solana-instruction`, runtime réseau ou logging n’est ajouté à cette foundation. Les canaris public API, consumer externe, dependency firewall et release completeness verrouillent les six exports crate-root, les quatre modules de production, l’absence de narrowing/codec caché, le transfert des `Vec` admis sans réallocation interne et la non-répétition de matériel hostile dans les erreurs. `pre.005-fix.001` corrige uniquement un faux positif du scanner Logging provoqué par le littéral de test `tracing::`, sans changement de production ni de dépendance. Les gates `pre.006` et `pre.007` passent ensuite audits Rust/Markdown, `cargo check`, Clippy, tests Interface, ownership Logging, workspace complet et graphes Cargo avant la réconciliation documentaire finale.
|
||||
|
||||
`prompts/019-V0_2_14_START_PROMPT.md` ouvre `0.2.14 — Program API foundation` exclusivement depuis le tag stable `v0.2.13`. Le gate `pre.001` de cette prochaine release exige aussi l’archive historique `khadhroony-bot3_v0.5.3-pre.005-fix010.zip` afin d’auditer les anciens contrats decoder/executor sous une matrice `REPRENDRE / REDESSINER / REPORTER / REJETER`, sans faire de kbot3 une autorité architecturale ni recréer son monolithe `ks-lib`.
|
||||
|
||||
## 0.2.12 — SOL Prices Desk + projection prix Wallet — 2026-08-27
|
||||
|
||||
`0.2.12` ajoute `ksp-app-solprices-desk`, troisième Desk Tauri spécialisé de KSP, comme HID strictement provider-neutral au-dessus de `ksp-offchain-transport-lib`. Son composite dédié sélectionne `std.logging` et `std.offchain_transport`; la vue Prices expose l’inventaire des huit providers SOL/USD, disponibilité, sémantique, auth, prix exact sous forme de chaîne, timestamps provider/KSP distincts et retry deadline sans inventer de fraîcheur. Les refresh manuel individuel, sélectionné et global passent exclusivement par `MarketPriceService`; les batchs sont bornés à `1..=64`, les états `in_flight` restent backend-owned et aucun polling, scheduler, fallback, moyenne ou prix canonique n’est introduit dans le Desk. Le frontend conserve l’absence de réseau/persistence navigateur et journalise les interactions sans prix, credential, URL, header ou payload provider.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 310
|
||||
# version: 311
|
||||
|
||||
[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-wallet-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.2.13-pre.7"
|
||||
version = "0.2.13-pre.8"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: ROADMAP.md -->
|
||||
<!-- version: 90 -->
|
||||
<!-- version: 91 -->
|
||||
|
||||
# Roadmap KSP
|
||||
|
||||
@@ -57,8 +57,8 @@ Le roadmap décrit les objectifs à atteindre et les grandes étapes prévues. U
|
||||
- [X] `0.2.10` — OrbitFlare Yellowstone gRPC stable : profil Config V3 Devnet, License Key injectée comme metadata secrète `x-token`, smoke live `Subscribe -> Slot + Ping` validé deux fois, sans modification du moteur N1/N2 ni heartbeat provider.
|
||||
- [X] `0.2.11` — Off-chain price transport stable : `ksp-offchain-transport-lib` expose SOL/USD via huit adapters REST `reqwest` sans SDK provider, décimal exact, sémantiques/provenance explicites, registry/availability/rate limits et refresh single/many/all génériques ; Config `std.offchain_transport` construit le service sans dépendance inverse, DexScreener reste lié à une paire explicite sans discovery, aucun consensus/fallback automatique n’est introduit, et le smoke live keyless final passe 7/7 après correction CoinMarketCap V2.
|
||||
- [X] `0.2.12` — SOL Prices Desk + projection prix Wallet stables : HID provider-neutral avec refresh row/selected/all et batch `1..=64`, observations/timestamps exacts sans polling/consensus, puis refresh balance Wallet enrichi d’une moyenne SOL/USD consumer-owned et d’un équivalent USD exact best-effort ; smoke live de composition, workspace complet et bundles Tauri Linux validés.
|
||||
- [ ] `0.2.13` — Introduire la première surface de `ksp-interface-lib`, façade wire KSP publique et passive utilisable par les implémentations officielles et externes ; `pre.001` doit confronter l’architecture actuelle aux contrats utiles de l’ancien `khadhroony-bot3` sans recréer son monolithe `ks-lib`, et séparer explicitement données wire, comportement Program et implémentations.
|
||||
- [ ] `0.2.14` — Introduire `ksp-program-api` comme premier contrat Program extensible, sans imposer encore `ksp-program-lib` complet ; les traits de reconnaissance/decode/build et autres comportements ne doivent pas être aspirés prématurément dans `ksp-interface-lib`.
|
||||
- [X] `0.2.13` — Interface / wire foundation stable : `ksp-interface-lib` expose `Pubkey`, `ProgramAccountMeta` et `ProgramInstruction` passifs, admission bornée à 255 account metas / 10 240 bytes, erreurs et `Debug` sans payload hostile, façade crate-root et consumer externe canaris ; graphe strict `Interface -> Core`, sans serde/codec générique, `solana-instruction`, réseau ni logging runtime.
|
||||
- [ ] `0.2.14` — Introduire `ksp-program-api` comme premier contrat Program extensible, sans imposer encore `ksp-program-lib` complet ; `pre.001` doit auditer la base stable `v0.2.13` et l’archive historique `khadhroony-bot3_v0.5.3-pre.005-fix010.zip`, puis classer reconnaissance/decode/outcomes/proofs/préparation sous `REPRENDRE / REDESSINER / REPORTER / REJETER` avant de figer la surface.
|
||||
|
||||
### TODO/IDEAS — providers Yellowstone non planifiés
|
||||
|
||||
|
||||
233
deltas/0.2.13/pre.008.md
Normal file
233
deltas/0.2.13/pre.008.md
Normal file
@@ -0,0 +1,233 @@
|
||||
<!-- file: deltas/0.2.13/pre.008.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.13-pre.008` — préparation minimale de publication
|
||||
|
||||
## 1. Base
|
||||
|
||||
```text
|
||||
0.2.13-pre.007
|
||||
```
|
||||
|
||||
Le gate opérateur de `pre.007`, exécuté le **28 août 2026**, est intégralement vert :
|
||||
|
||||
```text
|
||||
cargo fmt --all PASS
|
||||
audits Rust / export completeness / workspace PASS
|
||||
audit Markdown PASS — 164 tables / 120 fichiers
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets PASS
|
||||
cargo test -p ksp-interface-lib PASS
|
||||
cargo test --workspace PASS
|
||||
```
|
||||
|
||||
La réconciliation documentaire finale est donc fermée avant cette tranche.
|
||||
|
||||
## 2. Objectif
|
||||
|
||||
`pre.008` est exclusivement la lane minimale de préparation de publication de `0.2.13` imposée par `VER-LIFECYCLE-003` et `PROMPT_STRUCTURE.md`.
|
||||
|
||||
Elle ne rouvre aucun code, test, README/USAGE, plan, validation, architecture, règle ou configuration.
|
||||
|
||||
Elle :
|
||||
|
||||
```text
|
||||
bump la prerelease Cargo vers pre.8
|
||||
prépare l'entrée CHANGELOG stable 0.2.13
|
||||
synchronise le statut global ROADMAP
|
||||
ajoute le prompt autonome 0.2.14
|
||||
trace cette préparation dans le delta
|
||||
```
|
||||
|
||||
## 3. Version technique
|
||||
|
||||
```text
|
||||
0.2.13-pre.7
|
||||
->
|
||||
0.2.13-pre.8
|
||||
```
|
||||
|
||||
Le bump est mécanique pour une prerelease non-fix.
|
||||
|
||||
## 4. Changelog / Roadmap
|
||||
|
||||
`CHANGELOG.md` prépare l'entrée stable :
|
||||
|
||||
```text
|
||||
0.2.13 — Interface / wire foundation — 2026-08-28
|
||||
```
|
||||
|
||||
Le résumé conserve les faits de clôture réellement prouvés :
|
||||
|
||||
```text
|
||||
ProgramAccountMeta + ProgramInstruction passifs
|
||||
255 account metas / 10_240 bytes
|
||||
Error/Debug sans payload hostile
|
||||
graphe Interface -> Core uniquement
|
||||
aucun serde/codec générique/solana-instruction/network/logging
|
||||
canaris public API / external consumer / dependency firewall / completeness
|
||||
pre.005-fix.001 limité au faux positif scanner Logging
|
||||
gates techniques et documentaires finaux verts
|
||||
```
|
||||
|
||||
`ROADMAP.md` marque `0.2.13` comme terminé et maintient `0.2.14` comme prochaine release active.
|
||||
|
||||
## 5. Prompt `0.2.14`
|
||||
|
||||
Ajout :
|
||||
|
||||
```text
|
||||
prompts/019-V0_2_14_START_PROMPT.md
|
||||
```
|
||||
|
||||
Le prompt ouvre :
|
||||
|
||||
```text
|
||||
0.2.14 — Program API foundation
|
||||
```
|
||||
|
||||
exclusivement depuis :
|
||||
|
||||
```text
|
||||
v0.2.13
|
||||
```
|
||||
|
||||
Le démarrage exige explicitement **deux archives** :
|
||||
|
||||
```text
|
||||
archive opérateur KSP v0.2.13
|
||||
khadhroony-bot3_v0.5.3-pre.005-fix010.zip
|
||||
```
|
||||
|
||||
Ordre d'autorité fixé :
|
||||
|
||||
```text
|
||||
v0.2.13 + règles/architecture KSP autorité actuelle
|
||||
kbot3 historique audit/héritage uniquement
|
||||
```
|
||||
|
||||
L'archive kbot3 est obligatoire pour le gate `pre.001` afin d'auditer réellement les anciens contrats :
|
||||
|
||||
```text
|
||||
ks-lib/src/decoder/api/contracts.rs
|
||||
ks-lib/src/decoder/api/decoder.rs
|
||||
ks-lib/src/model/decoded.rs
|
||||
ks-lib/src/model/replay.rs
|
||||
ks-lib/src/model/solana.rs
|
||||
ks-lib/src/executor/api/execution.rs
|
||||
ks-lib/src/executor/api/executor.rs
|
||||
```
|
||||
|
||||
Le prompt impose la matrice :
|
||||
|
||||
```text
|
||||
REPRENDRE
|
||||
REDESSINER
|
||||
REPORTER
|
||||
REJETER
|
||||
```
|
||||
|
||||
et protège notamment les frontières :
|
||||
|
||||
```text
|
||||
Core = Pubkey / Program IDs / Error
|
||||
Interface = wire passif
|
||||
Program API = comportements/contracts extensibles
|
||||
Program Lib = implémentations officielles futures
|
||||
CORE futur = replay/context transaction/CPI/logs/return data/balance deltas
|
||||
Execution futur = policy/wallet/network/simulation/send/confirmation
|
||||
```
|
||||
|
||||
La prévision souple initiale réserve distinctement audit/sizing, scaffold, contracts, hardening, gate technique, réconciliation documentaire et préparation de publication.
|
||||
|
||||
## 6. Fichiers ajoutés/modifiés
|
||||
|
||||
Ajoutés :
|
||||
|
||||
```text
|
||||
prompts/019-V0_2_14_START_PROMPT.md
|
||||
deltas/0.2.13/pre.008.md
|
||||
```
|
||||
|
||||
Modifiés :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
CHANGELOG.md
|
||||
ROADMAP.md
|
||||
```
|
||||
|
||||
Aucun fichier supprimé.
|
||||
|
||||
## 7. Surfaces volontairement inchangées
|
||||
|
||||
Cette tranche ne touche pas :
|
||||
|
||||
```text
|
||||
README.md
|
||||
RULES.md
|
||||
.env.example
|
||||
config/**
|
||||
crates/**
|
||||
docs/**
|
||||
prompts/001..018
|
||||
```
|
||||
|
||||
En particulier :
|
||||
|
||||
```text
|
||||
crates/ksp-interface-lib/src/**
|
||||
crates/ksp-interface-lib/tests/**
|
||||
crates/ksp-interface-lib/unit_tests/**
|
||||
crates/ksp-interface-lib/README.md
|
||||
crates/ksp-interface-lib/USAGE.md
|
||||
docs/plans/020-V0_2_13_INTERFACE_PLAN.md
|
||||
docs/validation/016-V0_2_13_INTERFACE.md
|
||||
docs/architecture/**
|
||||
```
|
||||
|
||||
## 8. Validations de préparation
|
||||
|
||||
À exécuter dans l'environnement de préparation :
|
||||
|
||||
```text
|
||||
audit Rust workspace
|
||||
audit Markdown
|
||||
contrôle exact du payload overlay
|
||||
contrôle des versions/file headers
|
||||
```
|
||||
|
||||
Aucun résultat Cargo nouveau n'est revendiqué tant qu'il n'a pas été exécuté par l'opérateur sur `pre.008`.
|
||||
|
||||
## 9. 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.13
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-interface-lib
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Aucun smoke réseau/live ni nouveau graphe Cargo n'est requis puisque cette lane ne modifie ni code ni dépendances.
|
||||
|
||||
## 10. Suite
|
||||
|
||||
Si le gate est vert :
|
||||
|
||||
```text
|
||||
0.2.13-rel.001
|
||||
```
|
||||
|
||||
La release finale effectue uniquement la mécanique de publication stable :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.13
|
||||
delta rel.001
|
||||
commit de publication
|
||||
tag stable v0.2.13 après validation opérateur
|
||||
```
|
||||
|
||||
`rel.001` ne doit contenir aucun rattrapage fonctionnel ou documentaire.
|
||||
1430
prompts/019-V0_2_14_START_PROMPT.md
Normal file
1430
prompts/019-V0_2_14_START_PROMPT.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user