v0.3.7-pre.014
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 439
|
||||
# version: 440
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-app-backfill-desk", "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-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.7-pre.13.fix.1"
|
||||
version = "0.3.7-pre.14"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"recycle_timeout_ms": 5000
|
||||
},
|
||||
"tls": {
|
||||
"mode": "verify_full"
|
||||
"mode": "disabled"
|
||||
},
|
||||
"bootstrap": {
|
||||
"schema_autocreate": true,
|
||||
@@ -41,7 +41,7 @@
|
||||
"recycle_timeout_ms": 5000
|
||||
},
|
||||
"tls": {
|
||||
"mode": "verify_full"
|
||||
"mode": "disabled"
|
||||
},
|
||||
"bootstrap": {
|
||||
"schema_autocreate": true,
|
||||
@@ -66,7 +66,7 @@
|
||||
"recycle_timeout_ms": 5000
|
||||
},
|
||||
"tls": {
|
||||
"mode": "verify_full"
|
||||
"mode": "disabled"
|
||||
},
|
||||
"bootstrap": {
|
||||
"schema_autocreate": true,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-config-lib/unit_tests/store.rs
|
||||
// version: 3
|
||||
// version: 4
|
||||
|
||||
#[test]
|
||||
fn committed_store_profile_maps_exact_runtime_settings_and_secret_fallback() {
|
||||
@@ -30,7 +30,7 @@ fn committed_store_profile_maps_exact_runtime_settings_and_secret_fallback() {
|
||||
assert_eq!(postgres.pool().wait_timeout(), std::time::Duration::from_millis(5_000));
|
||||
assert_eq!(postgres.pool().create_timeout(), std::time::Duration::from_millis(10_000));
|
||||
assert_eq!(postgres.pool().recycle_timeout(), std::time::Duration::from_millis(5_000));
|
||||
assert_eq!(postgres.tls_mode(), ksp_store_lib::PostgresTlsMode::VerifyFull);
|
||||
assert_eq!(postgres.tls_mode(), ksp_store_lib::PostgresTlsMode::Disabled);
|
||||
assert!(postgres.bootstrap().auto_migrate());
|
||||
assert!(postgres.bootstrap().schema_autocreate());
|
||||
assert!(postgres.bootstrap().schema_autoupdate());
|
||||
@@ -132,6 +132,14 @@ fn named_store_targets_select_one_network_and_database_without_runtime_multiplex
|
||||
assert_eq!(resolved.profile_id(), target_id);
|
||||
assert_eq!(resolved.selection_source(), crate::ConfigProfileSelectionSource::Explicit);
|
||||
assert_eq!(resolved.settings().network().as_str(), network);
|
||||
let postgres = match resolved.settings().backend() {
|
||||
ksp_store_lib::StoreBackendSettings::Postgres(postgres) => std::option::Option::Some(postgres),
|
||||
_ => std::option::Option::None,
|
||||
};
|
||||
assert!(postgres.is_some(), "committed Store target should remain PostgreSQL: {target_id}");
|
||||
if let std::option::Option::Some(postgres) = postgres {
|
||||
assert_eq!(postgres.tls_mode(), ksp_store_lib::PostgresTlsMode::Disabled);
|
||||
}
|
||||
assert_eq!(
|
||||
resolved.effective().value().pointer("/postgres/connection_uri").and_then(serde_json::Value::as_str),
|
||||
std::option::Option::Some(expected_uri),
|
||||
|
||||
86
deltas/0.3.7/pre.014.md
Normal file
86
deltas/0.3.7/pre.014.md
Normal file
@@ -0,0 +1,86 @@
|
||||
<!-- file: deltas/0.3.7/pre.014.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.7-pre.014` — réconciliation TLS Store committed
|
||||
|
||||
## 1. Base requise
|
||||
|
||||
```text
|
||||
0.3.7-pre.013-fix.001
|
||||
workspace.package.version = 0.3.7-pre.13.fix.1
|
||||
```
|
||||
|
||||
## 2. Défaillance réconciliée
|
||||
|
||||
Le replay workspace étendu après `pre.013` a révélé une divergence antérieure : le `config/std.store.json` réellement utilisé pour les smokes PostgreSQL locaux est en TLS `disabled`, tandis que la fixture et le test committed `ksp-config-lib` attendaient encore `verify_full`.
|
||||
|
||||
Cette divergence Config/runtime est traitée dans une nouvelle prerelease conformément au lifecycle ; elle n'est pas mélangée au fix de hardening `pre.013-fix.001`.
|
||||
|
||||
## 3. Contrat committed
|
||||
|
||||
Les trois profils Store committed :
|
||||
|
||||
```text
|
||||
devnet
|
||||
mainnet
|
||||
testnet
|
||||
```
|
||||
|
||||
utilisent désormais :
|
||||
|
||||
```json
|
||||
"tls": {
|
||||
"mode": "disabled"
|
||||
}
|
||||
```
|
||||
|
||||
La fixture Config est synchronisée et les tests vérifient `PostgresTlsMode::Disabled` pour le profil par défaut comme pour les trois cibles nommées.
|
||||
|
||||
Le schema/runtime Store continue à supporter `verify_full` et les autres modes admis ; seule la politique des profils committed change.
|
||||
|
||||
## 4. Lane release
|
||||
|
||||
Cette réconciliation consomme `pre.014`. Le gate technique final est déplacé à `pre.015`, la réconciliation documentaire à `pre.016` et la préparation publication à `pre.017`.
|
||||
|
||||
## 5. Version
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.7-pre.14
|
||||
label = 0.3.7-pre.014
|
||||
```
|
||||
|
||||
## 6. Fichiers ajoutés
|
||||
|
||||
```text
|
||||
deltas/0.3.7/pre.014.md
|
||||
```
|
||||
|
||||
## 7. Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
config/std.store.json
|
||||
crates/ksp-config-lib/unit_tests/fixtures/std.store.json
|
||||
crates/ksp-config-lib/unit_tests/store.rs
|
||||
docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md
|
||||
docs/validation/024-V0_3_7_BACKFILL_DESK.md
|
||||
```
|
||||
|
||||
## 8. Fichiers supprimés
|
||||
|
||||
Aucun.
|
||||
|
||||
## 9. Gate après application
|
||||
|
||||
```text
|
||||
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.3.7
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-config-lib
|
||||
cargo test -p ksp-job-backfill-lib
|
||||
cargo test -p ksp-app-backfill-desk
|
||||
```
|
||||
|
||||
Aucun `cargo tree` requis : aucune dépendance ni feature Cargo n'est modifiée.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Plan v0.3.7 — Backfill Desk
|
||||
|
||||
@@ -298,17 +298,23 @@ La tranche matérialise ce contrat via `ProgramIdAutocompleteOptionDto`, ajouté
|
||||
|
||||
Aucune nouvelle capacité métier. La tranche ferme la surface V1 par des canaries dédiés : inventaire exact des dépendances KSP et interdictions des backends/clients physiques, inventaire exact des modules de production et suites d’intégration, surface Tauri/contrôles frontend finaux, composition Config exacte sur `devnet`/`mainnet`/`testnet`, scan agrégé de sécurité IPC/frontend et contrôle de la discipline crate-root pour les DTO `pub(crate)` partagés introduits par la Desk.
|
||||
|
||||
Les nouvelles suites `dependency_boundary.rs` et `release_completeness.rs` complètent `desktop_contract.rs`, `desktop_security.rs` et `config_composition.rs`. Elles ne modifient ni runtime Job, ni Store, ni Transport, ni DTO/IPC, ni frontend. `pre.014` reste propriétaire du gate technique final workspace/Tauri build.
|
||||
Les nouvelles suites `dependency_boundary.rs` et `release_completeness.rs` complètent `desktop_contract.rs`, `desktop_security.rs` et `config_composition.rs`. Elles ne modifient ni runtime Job, ni Store, ni Transport, ni DTO/IPC, ni frontend.
|
||||
|
||||
### pre.014 — gate technique final
|
||||
Le replay workspace étendu après `pre.013` a révélé une divergence antérieure du document Store committed : les profils réellement utilisés localement ont été passés à TLS `disabled` pour PostgreSQL local, tandis que la fixture et un test Config restaient sur `verify_full`. Cette divergence Config/runtime doit être réconciliée avant le gate final et consomme donc `pre.014`; le gate technique final est décalé à `pre.015`.
|
||||
|
||||
### pre.014 — réconciliation TLS Store committed
|
||||
|
||||
Synchroniser `config/std.store.json`, sa fixture Config et les assertions committed sur `PostgresTlsMode::Disabled` pour les trois profils `devnet`/`mainnet`/`testnet`. Cette tranche ne change pas les capacités TLS du Store : `verify_full` reste supporté par le schema/runtime ; seule la politique des profils committed est réconciliée avec le PostgreSQL local réellement utilisé pour les smokes Backfill Desk. Aucun runtime Backfill n'est rouvert.
|
||||
|
||||
### pre.015 — gate technique final
|
||||
|
||||
`cargo fmt`, audits, check/clippy/tests workspace, arbres Cargo utiles, `cargo tauri build`, smoke Mainnet lecture seule opt-in si environnement sûr disponible.
|
||||
|
||||
### pre.015 — réconciliation documentaire
|
||||
### pre.016 — réconciliation documentaire
|
||||
|
||||
README/USAGE/plan/validation et architecture seulement si la surface finale l'exige. Aucun nouveau runtime.
|
||||
|
||||
### pre.016 — préparation publication
|
||||
### pre.017 — préparation publication
|
||||
|
||||
Prompt suivant + CHANGELOG + ROADMAP uniquement avec le bump prerelease/delta requis.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/024-V0_3_7_BACKFILL_DESK.md -->
|
||||
<!-- version: 23 -->
|
||||
<!-- version: 24 -->
|
||||
|
||||
# Validation v0.3.7 — Backfill Desk
|
||||
|
||||
@@ -595,3 +595,22 @@ Le même replay opérateur a également révélé un échec distinct de `ksp-con
|
||||
- [X] audits statiques Rust/Markdown propres dans l'environnement d'assemblage ;
|
||||
- [ ] replay opérateur `cargo fmt/check/clippy/test` du fix à exécuter avant toute nouvelle prerelease.
|
||||
|
||||
## 29. `pre.014` — réconciliation TLS Store committed avant gate final
|
||||
|
||||
Le replay opérateur de `pre.013-fix.001` ferme le hardening Backfill Desk : audits Rust/Markdown, `cargo check --workspace`, Clippy, les 50 tests `ksp-job-backfill-lib` et toutes les suites `ksp-app-backfill-desk`, y compris `dependency_boundary`, `desktop_security` et `release_completeness`, passent.
|
||||
|
||||
L'échec workspace distinct observé pendant le replay étendu vient de `ksp-config-lib` : `config/std.store.json` utilisé par l'opérateur a été passé à TLS `disabled` pour PostgreSQL local, mais la fixture committed et le test `committed_store_profile_maps_exact_runtime_settings_and_secret_fallback` attendaient encore `VerifyFull`. Le smoke Backfill Desk Mainnet confirme également l'ouverture Store avec `tls_mode="disabled"`. Cette divergence Config/runtime, antérieure au hardening, est donc réconciliée dans une nouvelle prerelease et non dans un fix `pre.013`.
|
||||
|
||||
`pre.014` synchronise les trois profils committed `devnet`, `mainnet` et `testnet` sur `tls.mode = "disabled"`, met la fixture Config à l'identique et exige `PostgresTlsMode::Disabled` dans les assertions committed, y compris pour les trois cibles nommées. Le schema et le runtime continuent à supporter les autres modes TLS, notamment `verify_full`; aucune capacité Store n'est supprimée.
|
||||
|
||||
### Gate statique local `pre.014`
|
||||
|
||||
- [X] `config/std.store.json` : trois profils committed en TLS `disabled` ;
|
||||
- [X] fixture `ksp-config-lib` byte-for-byte cohérente sur la politique TLS ;
|
||||
- [X] test committed par défaut synchronisé sur `PostgresTlsMode::Disabled` ;
|
||||
- [X] cibles `devnet`/`mainnet`/`testnet` canariées sur le même mode TLS ;
|
||||
- [X] aucune modification du schema TLS ni de `ksp-store-lib`/`ksp-store-postgres-lib` ;
|
||||
- [X] aucun runtime/DTO/IPC/frontend Backfill modifié ;
|
||||
- [X] aucune dépendance/feature Cargo ajoutée ;
|
||||
- [X] gate technique final décalé à `pre.015`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user