v0.3.15-pre.006-fix.001
This commit is contained in:
159
deltas/0.3.15/pre.006-fix.001.md
Normal file
159
deltas/0.3.15/pre.006-fix.001.md
Normal file
@@ -0,0 +1,159 @@
|
||||
<!-- file: deltas/0.3.15/pre.006-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.15-pre.006-fix.001` — classification réseau des capabilities Raw Ingest
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.15-pre.006
|
||||
workspace.package.version = 0.3.15-pre.6
|
||||
deltas/0.3.15/pre.006.md présent
|
||||
```
|
||||
|
||||
## Défauts observés
|
||||
|
||||
Le gate opérateur de `pre.006` révèle deux défauts distincts.
|
||||
|
||||
Le canari `pre_006_committed_devnet_public_inventory_proves_only_config_composability` échoue car il construit `ConfigManagement` depuis les racines utilisateur courantes au lieu d'utiliser une racine Config de test déterministe.
|
||||
|
||||
Le contrôle fonctionnel du Desk révèle surtout une mauvaise frontière de classification : `Yellowstone + HTTP hydration` sur Mainnet n'est `Configured` que lorsque le profil applicatif sélectionné est `publicnode_mainnet`. Ce comportement confond le profil Transport d'un provider avec l'identité du réseau logique.
|
||||
|
||||
## Correction du modèle applicatif
|
||||
|
||||
Le composite Raw Transaction Ingest Desk devient réseau-centrique :
|
||||
|
||||
```text
|
||||
devnet
|
||||
mainnet
|
||||
testnet
|
||||
```
|
||||
|
||||
Chaque profil applicatif possède un Transport de base et peut référencer des sources Transport optionnelles du même réseau :
|
||||
|
||||
```text
|
||||
transport
|
||||
transport.helius
|
||||
transport.yellowstone
|
||||
```
|
||||
|
||||
Le provider reste une propriété de la source Transport. Il ne devient ni un réseau ni un profil opérateur du Desk.
|
||||
|
||||
Ainsi, pour `mainnet`, les capabilities sont agrégées depuis :
|
||||
|
||||
```text
|
||||
mainnet_public
|
||||
helius_mainnet
|
||||
publicnode_mainnet
|
||||
```
|
||||
|
||||
Lorsque `KSP_SECRET_PUBLICNODE_MAINNET_GRPC_X_TOKEN` est résolu, Yellowstone gRPC est une capability de `mainnet`; le choix d'un pseudo-profil `publicnode_mainnet` n'existe plus dans l'UI applicative.
|
||||
|
||||
Le même principe s'applique à Devnet avec `devnet_public`, `helius_devnet` et `orbitflare_devnet`.
|
||||
|
||||
## Testnet indépendant du token PublicNode
|
||||
|
||||
Un nouveau profil Transport `testnet_public` fournit le socle HTTP + WebSocket Solana standard sans secret.
|
||||
|
||||
`publicnode_testnet` reste une source Yellowstone optionnelle. L'absence du token PublicNode Testnet ne rend donc plus les routes HTTP/WS standard Testnet indisponibles.
|
||||
|
||||
## Secrets optionnels
|
||||
|
||||
Une erreur `ERROR_CODE_ENVIRONMENT_VARIABLE_MISSING` sur une source Transport optionnelle ne rend plus tout le profil réseau indisponible.
|
||||
|
||||
Elle affecte uniquement la route qui dépend de cette source :
|
||||
|
||||
```text
|
||||
transport.helius -> Helius Transaction + HTTP hydration
|
||||
transport.yellowstone -> Yellowstone + HTTP hydration
|
||||
```
|
||||
|
||||
Les routes satisfaites par le Transport de base restent `Configured`.
|
||||
|
||||
Toute source Transport effectivement résolue doit néanmoins prouver exactement le même réseau que Store. Un mismatch reste fail-closed.
|
||||
|
||||
## Canaris déterministes
|
||||
|
||||
Les tests du Desk n'utilisent plus les racines Config utilisateur. Ils construisent un `ConfigDocumentEngine` sur les fichiers committed du workspace et injectent explicitement l'environnement nécessaire.
|
||||
|
||||
Les nouveaux canaris vérifient notamment :
|
||||
|
||||
```text
|
||||
inventaire applicatif exact = devnet/mainnet/testnet ;
|
||||
agrégation Helius/Yellowstone same-network ;
|
||||
mainnet Yellowstone configuré lorsque le token PublicNode Mainnet est résolu ;
|
||||
routes standard Mainnet toujours configurées lorsque les secrets optionnels sont absents ;
|
||||
absence des identités provider dans la projection frontend ;
|
||||
Testnet standard utilisable sans token PublicNode.
|
||||
```
|
||||
|
||||
## Frontières conservées
|
||||
|
||||
```text
|
||||
aucun probe réseau ;
|
||||
aucune ouverture Store ;
|
||||
aucune session Transport ;
|
||||
aucun Worker ;
|
||||
aucun Start/Stop ;
|
||||
aucune inférence depuis provider ;
|
||||
aucune URL, credential, metadata secrète, URI Store ou handle projeté au frontend.
|
||||
```
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
deltas/0.3.15/pre.006-fix.001.md
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
config/composite.ksp-app-raw-transaction-ingest-desk.json
|
||||
config/std.transport.json
|
||||
crates/ksp-app-raw-transaction-ingest-desk/README.md
|
||||
crates/ksp-app-raw-transaction-ingest-desk/USAGE.md
|
||||
crates/ksp-app-raw-transaction-ingest-desk/frontend/main.html
|
||||
crates/ksp-app-raw-transaction-ingest-desk/frontend/ts/main.ts
|
||||
crates/ksp-app-raw-transaction-ingest-desk/src/constants.rs
|
||||
crates/ksp-app-raw-transaction-ingest-desk/src/lib.rs
|
||||
crates/ksp-app-raw-transaction-ingest-desk/src/route_inventory.rs
|
||||
crates/ksp-app-raw-transaction-ingest-desk/unit_tests/route_inventory.rs
|
||||
crates/ksp-config-lib/README.md
|
||||
crates/ksp-config-lib/USAGE.md
|
||||
crates/ksp-config-lib/unit_tests/composite.rs
|
||||
crates/ksp-config-lib/unit_tests/fixtures/composite.ksp-app-raw-transaction-ingest-desk.json
|
||||
crates/ksp-config-lib/unit_tests/transport.rs
|
||||
docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md
|
||||
docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md
|
||||
```
|
||||
|
||||
## Fichiers supprimés
|
||||
|
||||
```text
|
||||
aucun
|
||||
```
|
||||
|
||||
## Version Cargo
|
||||
|
||||
```text
|
||||
header Cargo.toml : 602 -> 603
|
||||
workspace.package.version : 0.3.15-pre.6 -> 0.3.15-pre.6.fix.1
|
||||
```
|
||||
|
||||
## Gate opérateur attendu
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo fmt --all -- --check
|
||||
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.15
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p ksp-config-lib --all-targets --all-features
|
||||
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
|
||||
cargo test --workspace --all-targets --all-features
|
||||
(cd crates/ksp-app-raw-transaction-ingest-desk && cargo tauri dev)
|
||||
```
|
||||
|
||||
Aucun `npm run build` direct n'appartient à ce gate ; Tauri possède le cycle frontend via ses hooks.
|
||||
Reference in New Issue
Block a user