# Delta `0.2.11-pre.013` — préparation de publication minimale ## 1. Base ```text 0.2.11-pre.012 ``` Cette tranche est exclusivement le couloir de préparation de publication. Conformément à `docs/rules/PROMPT_STRUCTURE.md` et `docs/rules/FILE_CONTRACTS.md`, elle ne modifie aucun code fonctionnel, test, schema, Config, README, USAGE, plan, validation, architecture ou règle normative. Le payload fonctionnel est limité à : ```text prompt de démarrage 0.2.12 CHANGELOG.md ROADMAP.md ``` avec les deux fichiers mécaniques autorisés : ```text Cargo.toml deltas/0.2.11/pre.013.md ``` ## 2. Gate `pre.012` Le gate opérateur `pre.012` du `2026-08-26` est entièrement vert : ```text cargo fmt --all PASS Rust workspace audit PASS / 0 export candidate Markdown audit PASS / 127 tables / 122 files cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test --workspace PASS ``` Les suites directement concernées conservent notamment : ```text Off-chain Transport unit 58/58 PASS Off-chain dependency boundary 6/6 PASS Off-chain public API 7/7 PASS Off-chain release completeness 2/2 PASS Off-chain security hardening 3/3 PASS Config unit 120/120 PASS Config ownership 5/5 PASS Config public API 16/16 PASS ``` Les smokes live restent `ignored` dans le workspace normal. Le re-smoke keyless `pre.011-fix.001` acquis avant la réconciliation documentaire reste la preuve live finale : ```text 7/7 providers keyless PASS ``` Le smoke keyed reste explicitement `SKIP opérateur` et n'est pas requalifié. ## 3. Version technique ```text workspace.package.version = 0.2.11-pre.13 commit attendu = v0.2.11-pre.013 aucun tag prerelease ``` Le changement Cargo est mécanique ; aucune sémantique runtime ne change. ## 4. Relecture préalable au prompt `0.2.12` Avant rédaction du prompt, les sources normatives ont été relues, notamment : ```text docs/rules/PROMPT_STRUCTURE.md docs/rules/VERSION_WORKFLOW.md docs/rules/RULES_DOCUMENTATION.md docs/rules/RULES_GENERAL.md docs/rules/RULES_DEPENDENCIES.md docs/rules/RULES_KSP.md docs/rules/FILE_CONTRACTS.md docs/architecture/000-README.md docs/architecture/002-LAYERS_AND_DEPENDENCIES.md docs/architecture/003-COMPONENT_CONTRACTS.md docs/architecture/004-COMPONENT_INVENTORY.md docs/architecture/005-DEPENDENCY_GRAPH.md docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md ``` La rédaction a aussi confronté : ```text prompts/011-V0_2_6_START_PROMPT.md prompts/015-V0_2_10_START_PROMPT.md prompts/016-V0_2_11_START_PROMPT.md docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md crates/ksp-offchain-transport-lib public API ksp-config-lib Off-chain adapter/composite/packaging ksp-app-config-desk gabarit Tauri actuel ksp-app-wallet-desk composition/runtime actuel ``` Les sources officielles Tauri 2 actuelles sur configuration, sécurité et capabilities ainsi que la référence TS-RS sont inscrites dans le prompt comme sources externes à réauditer en `0.2.12-pre.001`. Aucune version historique n'est transformée en pin. ## 5. Prompt `0.2.12` Ajout de : ```text prompts/017-V0_2_12_START_PROMPT.md ``` Le prompt ouvre exclusivement : ```text v0.2.11 -> 0.2.12-pre.001 ``` Mission : ```text 1. créer ksp-app-solprices-desk comme HID provider-agnostic 2. valider inventory/price/availability/freshness + refresh single/many/all 3. intégrer ensuite la même capacité générique dans ksp-app-wallet-desk 4. ne dupliquer aucune récupération/normalisation provider dans les applications ``` Les décisions acquises sont reprises depuis l'architecture et la clôture `0.2.11` : ```text SOL/USD V1 existant 8 providers sous Off-chain Transport aucun provider concret hardcodé dans l'app Config propriétaire des credentials Off-chain Transport propriétaire des rate limits/cooldowns provider_id opaque autorisé comme identifiant générique ports SOL Prices Desk attendus 1434/1435 Tauri lancé crate-local aucun fetch provider frontend aucune API key/URL/header provider dans les DTOs Wallet Desk réutilise MarketPriceService ``` Le prompt ne transforme pas les questions d'UI/composition encore ouvertes en décisions arbitraires. `pre.001` doit notamment trancher screen map, command/DTO map, composite dédié, ownership de l'état de présentation, UX refresh, capabilities Tauri, insertion Wallet Desk et stratégie de gate fonctionnel/live. ## 6. Prévision souple `0.2.12` Le prompt fournit un forecast initial détaillé allant de l'audit/sizing au scaffold SOL Prices Desk, composition Config, table/refresh, stabilisation standalone, intégration Wallet Desk, hardening, puis trois couloirs distincts : ```text gate technique/live final réconciliation documentaire finale préparation minimale de publication ``` Le forecast est explicitement recalibrable par `0.2.12-pre.001`. Si SOL Prices Desk + intégration Wallet Desk apparaît surdimensionné pour une release concrète clôturable dans la session, la frontière doit être rediscutée avant implémentation lourde plutôt que de supprimer silencieusement une partie de la mission. ## 7. `CHANGELOG.md` Le changelog stable est préparé pour `0.2.11 — Off-chain price transport` avec les faits consolidés : ```text SOL/USD V1 8 adapters REST sans SDK provider MarketPriceDecimal exact sémantiques/provenance/timestamps explicites registry + availability + rate limits/cooldowns refresh single/many/all séquentiel et déterministe Config std.offchain_transport V1 origines provider fixes et secrets Config-owned DexScreener pair explicite sans discovery aucun consensus/fallback/moyenne KSP CoinMarketCap ids -> id corrigé au gate live re-smoke keyless final 7/7 PASS smoke keyed SKIP opérateur prompt 0.2.12 préparé ``` ## 8. `ROADMAP.md` `0.2.11` passe à l'état réalisé avec une synthèse stable correspondant au contrat réellement livré et au smoke keyless final `7/7`. La suite active reste : ```text 0.2.12 SOL Prices Desk + intégration prix Wallet Desk 0.2.13 Interface foundation 0.2.14 Program API foundation ``` Aucune renumérotation supplémentaire n'est introduite. ## 9. Fichiers modifiés/ajoutés ```text Cargo.toml CHANGELOG.md ROADMAP.md prompts/017-V0_2_12_START_PROMPT.md deltas/0.2.11/pre.013.md ``` Aucun autre fichier ne doit changer dans cette tranche. En particulier, `prompts/000-README.md` n'est pas mis à jour ici : c'est un README et la lane de publication minimale interdit de rouvrir les README après la réconciliation documentaire. ## 10. Gate opérateur Comme cette tranche ne modifie aucun code/runtime/config/schema : ```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.11 cargo check --workspace cargo clippy --workspace --all-targets cargo test --workspace ``` Aucun smoke live ni `cargo tree` n'est à rejouer si le delta est appliqué exactement. ## 11. Suite Si ce gate est vert, la seule étape restante est : ```text 0.2.11-rel.001 ``` Elle est limitée à la mécanique de publication stable : version Cargo `0.2.11`, delta `rel.001`, commit final et tag stable `v0.2.11`, sans rattrapage technique ou documentaire. Après publication du tag stable, la session suivante ouvre : ```text 0.2.12-pre.001 ``` avec `prompts/017-V0_2_12_START_PROMPT.md` et commence impérativement par l'audit/sizing défini dans ce prompt.