165 lines
5.5 KiB
Markdown
165 lines
5.5 KiB
Markdown
<!-- file: deltas/0.3.15/pre.005-fix.002.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.15-pre.005-fix.002` — réalignement du template Desk et bornage de `routeFoundation`
|
|
|
|
## Base requise
|
|
|
|
```text
|
|
0.3.15-pre.005-fix.001
|
|
workspace.package.version = 0.3.15-pre.5.fix.1
|
|
deltas/0.3.15/pre.005.md présent
|
|
deltas/0.3.15/pre.005-fix.001.md présent
|
|
```
|
|
|
|
## Défauts observés
|
|
|
|
Le contrôle visuel du nouveau `ksp-app-raw-transaction-ingest-desk` montre deux dérives du scaffold livré en `pre.005` :
|
|
|
|
```text
|
|
le shell principal utilise un header et une sidebar sombres alors que les autres ksp-app-*-desk utilisent le template clair commun ;
|
|
les cartes générées dans #routeFoundation peuvent déborder horizontalement à droite de la fenêtre.
|
|
```
|
|
|
|
Le gate opérateur de `pre.005-fix.001` révèle également un second défaut Clippy strict dans `tests/release_completeness.rs` :
|
|
|
|
```text
|
|
error: missing `return` statement
|
|
-D clippy::implicit-return
|
|
```
|
|
|
|
La closure de filtrage du canari de surface publique utilisait un retour implicite.
|
|
|
|
## Correction du template desktop
|
|
|
|
Le shell principal est réaligné sur le contrat visuel déjà utilisé par Config Desk, Wallet Desk, SOL Prices Desk, Store Desk et Backfill Desk :
|
|
|
|
```text
|
|
header app-header contenant une navbar bg-light text-dark ;
|
|
sidebar col-auto app-sidebar border-end bg-body-tertiary ;
|
|
contenu col app-content app-scrollable h-100 avec SimpleBar ;
|
|
container-fluid px-4 py-4 ;
|
|
card app-shell-card mx-auto shadow-sm border-0 ;
|
|
footer sombre commun inchangé.
|
|
```
|
|
|
|
Le titre de vue du header est désormais explicitement possédé par `#headerViewTitle` et synchronisé par la navigation frontend entre `Routes` et `Diagnostics`.
|
|
|
|
Aucune couleur métier spécifique n'est introduite : `_variables.scss` et `_bootswatch.scss` restent ceux du template Pulse déjà copié depuis les autres Desk.
|
|
|
|
## Correction du débordement de `routeFoundation`
|
|
|
|
La structure commune manquante est restaurée et la grille de routes reçoit en plus des gardes explicites :
|
|
|
|
```text
|
|
app-shell-card avec width 100 %, max-width 1320px et min-width 0 ;
|
|
app-route-grid sans marge horizontale négative effective ;
|
|
enfants de grille avec min-width 0 ;
|
|
cartes avec min-width 0, max-width 100 % et overflow hidden ;
|
|
IDs monospace avec overflow-wrap anywhere et word-break break-word.
|
|
```
|
|
|
|
Les colonnes générées par TypeScript portent également `app-route-column` en plus des classes Bootstrap `col-12 col-xl-6`.
|
|
|
|
Ces protections empêchent un identifiant ou une carte de forcer la largeur du flex item principal au-delà de la fenêtre.
|
|
|
|
## Correction Clippy
|
|
|
|
Le canari `pre_005_public_surface_exposes_only_application_run_entry_point` utilise maintenant un `return` explicite dans sa closure :
|
|
|
|
```rust
|
|
.filter(|line| return line.starts_with("pub use "))
|
|
```
|
|
|
|
La règle workspace `clippy::implicit_return = deny` est ainsi respectée également dans ce test d'intégration.
|
|
|
|
## Canari de régression desktop
|
|
|
|
`tests/desktop_contract.rs` vérifie désormais explicitement :
|
|
|
|
```text
|
|
le header clair commun ;
|
|
la sidebar bg-body-tertiary ;
|
|
le flex item Bootstrap col app-content app-scrollable ;
|
|
le wrapper app-shell-card ;
|
|
l'absence des anciens marqueurs bg-dark/flex-grow-1 ;
|
|
les gardes CSS de largeur et de wrapping de routeFoundation.
|
|
```
|
|
|
|
Le test ne fige pas le contenu fonctionnel futur des routes et ne transforme pas le scaffold en runtime Worker.
|
|
|
|
## Frontières conservées
|
|
|
|
```text
|
|
aucun Start/Stop Worker ;
|
|
aucune composition Transport/Store/Worker ;
|
|
aucune ouverture d'endpoint ;
|
|
aucun changement Config ;
|
|
aucune nouvelle API publique ;
|
|
aucune nouvelle dépendance ou feature ;
|
|
aucun changement des cinq IDs de route ;
|
|
aucun changement des sept états applicatifs ;
|
|
aucun endpoint, secret ou handle exposé au frontend.
|
|
```
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.3.15/pre.005-fix.002.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
crates/ksp-app-raw-transaction-ingest-desk/frontend/main.html
|
|
crates/ksp-app-raw-transaction-ingest-desk/frontend/sass/_app.scss
|
|
crates/ksp-app-raw-transaction-ingest-desk/frontend/ts/main.ts
|
|
crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
|
|
crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
|
|
```
|
|
|
|
## Fichiers supprimés
|
|
|
|
```text
|
|
aucun
|
|
```
|
|
|
|
## Version Cargo
|
|
|
|
Le fix modifie le frontend applicatif et un test Rust. Conformément aux règles de versioning du workspace :
|
|
|
|
```text
|
|
header Cargo.toml : 600 -> 601
|
|
workspace.package.version : 0.3.15-pre.5.fix.1 -> 0.3.15-pre.5.fix.2
|
|
```
|
|
|
|
## Audits disponibles dans l'environnement d'assemblage
|
|
|
|
```text
|
|
General Rust rule audit: clean
|
|
Rust export completeness audit: 0 candidate(s)
|
|
KSP workspace Rust rule audit: clean
|
|
Markdown table audit: clean (318 table(s), 195 file(s))
|
|
HTML parse: clean
|
|
```
|
|
|
|
La toolchain Cargo/Rust n'est pas disponible dans l'environnement d'assemblage. Les gates Cargo, Clippy et tests restent donc à confirmer après application du delta.
|
|
|
|
## 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-app-raw-transaction-ingest-desk --all-targets --all-features
|
|
cargo test --workspace --all-targets --all-features
|
|
(cd crates/ksp-app-raw-transaction-ingest-desk && npm run build)
|
|
(cd crates/ksp-app-raw-transaction-ingest-desk && cargo tauri dev)
|
|
```
|
|
|
|
Le dernier lancement est le contrôle visuel explicite du shell commun et de l'absence de débordement horizontal de `routeFoundation`.
|