v0.3.15-pre.005-fix.002
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 600
|
# version: 601
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-raw-transaction-ingest-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-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-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-raw-transaction-ingest-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-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-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.3.15-pre.5.fix.1"
|
version = "0.3.15-pre.5.fix.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: crates/ksp-app-raw-transaction-ingest-desk/frontend/main.html -->
|
<!-- file: crates/ksp-app-raw-transaction-ingest-desk/frontend/main.html -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
|
|
||||||
@@ -8,27 +8,30 @@
|
|||||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||||
<link rel="icon" href="imgs/logo.png">
|
<link rel="icon" href="imgs/logo.png">
|
||||||
<link rel="stylesheet" href="sass/main.scss">
|
<link rel="stylesheet" href="sass/main.scss">
|
||||||
<title>KSP Raw Transaction Ingest Desk</title>
|
<title>Raw Transaction Ingest Desk — Routes</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<header class="app-header bg-dark text-light">
|
<header class="app-header">
|
||||||
<div class="container-fluid h-100 d-flex align-items-center gap-3 px-4">
|
<nav class="navbar h-100 py-0 bg-light text-dark">
|
||||||
<img class="app-logo" src="imgs/logo.png" alt="KSP">
|
<div class="container-fluid px-4 flex-nowrap">
|
||||||
<div>
|
<div class="navbar-brand d-flex align-items-center me-4 flex-nowrap">
|
||||||
<div class="fw-semibold">KSP Raw Transaction Ingest Desk</div>
|
<img alt="KSP" src="imgs/logo.png" class="app-logo">
|
||||||
<small class="text-light-emphasis">Composition et supervision des routes live RawTransaction</small>
|
<span class="ps-2 fs-4 fw-semibold text-primary text-nowrap">Raw Transaction Ingest Desk</span>
|
||||||
|
<span class="mx-2 fs-5 text-body-secondary" aria-hidden="true">—</span>
|
||||||
|
<span id="headerViewTitle" class="fs-5 text-body text-nowrap">Routes</span>
|
||||||
</div>
|
</div>
|
||||||
<span id="headerPhase" class="badge text-bg-secondary ms-auto">scaffold</span>
|
<span id="headerPhase" class="badge text-bg-secondary ms-auto">scaffold</span>
|
||||||
</div>
|
</div>
|
||||||
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main class="app-main container-fluid px-0">
|
<main class="app-main container-fluid p-0">
|
||||||
<div class="row g-0 h-100">
|
<div class="row g-0 h-100 flex-nowrap">
|
||||||
<aside class="app-sidebar bg-dark text-light">
|
<aside class="col-auto app-sidebar border-end bg-body-tertiary">
|
||||||
<div class="app-sidebar-scroll" data-simplebar>
|
<div class="app-sidebar-scroll h-100" data-simplebar>
|
||||||
<nav class="nav nav-pills flex-column p-3 gap-2" aria-label="Navigation principale">
|
<nav class="nav nav-pills flex-column gap-1 p-3" aria-label="Navigation Raw Transaction Ingest Desk">
|
||||||
<button class="nav-link active text-start" type="button" data-view="routes">
|
<button class="nav-link text-start active" type="button" data-view="routes">
|
||||||
<i class="fa-solid fa-route me-2" aria-hidden="true"></i>Routes
|
<i class="fa-solid fa-route me-2" aria-hidden="true"></i>Routes
|
||||||
</button>
|
</button>
|
||||||
<button class="nav-link text-start" type="button" data-view="diagnostics">
|
<button class="nav-link text-start" type="button" data-view="diagnostics">
|
||||||
@@ -37,9 +40,10 @@
|
|||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
<section class="app-content flex-grow-1">
|
<section class="col app-content app-scrollable h-100" data-simplebar>
|
||||||
<div class="h-100" data-simplebar>
|
<div class="container-fluid px-4 py-4">
|
||||||
<div class="container-fluid p-4">
|
<div class="card app-shell-card mx-auto shadow-sm border-0">
|
||||||
|
<div class="card-body p-4">
|
||||||
<section data-view-panel="routes">
|
<section data-view-panel="routes">
|
||||||
<div class="d-flex align-items-start justify-content-between gap-3 flex-wrap mb-4">
|
<div class="d-flex align-items-start justify-content-between gap-3 flex-wrap mb-4">
|
||||||
<div>
|
<div>
|
||||||
@@ -53,7 +57,7 @@
|
|||||||
<div class="alert alert-info" role="status">
|
<div class="alert alert-info" role="status">
|
||||||
Aucun Worker n'est démarré par ce scaffold. Les cinq IDs ci-dessous ne constituent aucune preuve de disponibilité runtime.
|
Aucun Worker n'est démarré par ce scaffold. Les cinq IDs ci-dessous ne constituent aucune preuve de disponibilité runtime.
|
||||||
</div>
|
</div>
|
||||||
<div id="routeFoundation" class="row g-3" aria-live="polite"></div>
|
<div id="routeFoundation" class="row g-3 app-route-grid" aria-live="polite"></div>
|
||||||
<div class="card shadow-sm mt-4">
|
<div class="card shadow-sm mt-4">
|
||||||
<div class="card-header fw-semibold">États réservés</div>
|
<div class="card-header fw-semibold">États réservés</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@@ -89,6 +93,7 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-raw-transaction-ingest-desk/frontend/sass/_app.scss
|
// file: crates/ksp-app-raw-transaction-ingest-desk/frontend/sass/_app.scss
|
||||||
// version: 1
|
// version: 2
|
||||||
|
|
||||||
$app-header-height: 72px;
|
$app-header-height: 72px;
|
||||||
$app-footer-height: 42px;
|
$app-footer-height: 42px;
|
||||||
@@ -52,6 +52,17 @@ body {
|
|||||||
height: 42px;
|
height: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-scrollable {
|
||||||
|
height: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-shell-card {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 1320px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.app-sidebar {
|
.app-sidebar {
|
||||||
width: $app-sidebar-width;
|
width: $app-sidebar-width;
|
||||||
min-width: $app-sidebar-width;
|
min-width: $app-sidebar-width;
|
||||||
@@ -77,12 +88,30 @@ body {
|
|||||||
font-family: var(--bs-font-monospace);
|
font-family: var(--bs-font-monospace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-route-grid {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-route-grid > * {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.app-route-card {
|
.app-route-card {
|
||||||
|
min-width: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
border-left: 4px solid rgba($primary, 0.55);
|
border-left: 4px solid rgba($primary, 0.55);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-route-code {
|
||||||
|
min-width: 0;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
.app-placeholder {
|
.app-placeholder {
|
||||||
min-height: 220px;
|
min-height: 320px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -90,6 +119,7 @@ body {
|
|||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
border: 1px dashed var(--bs-border-color);
|
border: 1px dashed var(--bs-border-color);
|
||||||
|
border-radius: var(--bs-border-radius-lg);
|
||||||
color: var(--bs-secondary-color);
|
color: var(--bs-secondary-color);
|
||||||
background: var(--bs-body-bg);
|
background: var(--bs-body-bg);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-raw-transaction-ingest-desk/frontend/ts/main.ts
|
// file: crates/ksp-app-raw-transaction-ingest-desk/frontend/ts/main.ts
|
||||||
// version: 1
|
// version: 2
|
||||||
|
|
||||||
import "bootstrap";
|
import "bootstrap";
|
||||||
import ResizeObserver from "resize-observer-polyfill";
|
import ResizeObserver from "resize-observer-polyfill";
|
||||||
@@ -14,6 +14,11 @@ installFrontendConsoleBridge("main");
|
|||||||
|
|
||||||
type ViewId = "routes" | "diagnostics";
|
type ViewId = "routes" | "diagnostics";
|
||||||
|
|
||||||
|
const viewTitles: Record<ViewId, string> = {
|
||||||
|
routes: "Routes",
|
||||||
|
diagnostics: "Diagnostics",
|
||||||
|
};
|
||||||
|
|
||||||
function isViewId(value: string | undefined): value is ViewId {
|
function isViewId(value: string | undefined): value is ViewId {
|
||||||
return value === "routes" || value === "diagnostics";
|
return value === "routes" || value === "diagnostics";
|
||||||
}
|
}
|
||||||
@@ -27,7 +32,11 @@ function activateView(viewId: ViewId, source: "startup" | "user"): void {
|
|||||||
button.classList.toggle("active", active);
|
button.classList.toggle("active", active);
|
||||||
button.setAttribute("aria-current", active ? "page" : "false");
|
button.setAttribute("aria-current", active ? "page" : "false");
|
||||||
});
|
});
|
||||||
document.title = `Raw Transaction Ingest Desk — ${viewId === "routes" ? "Routes" : "Diagnostics"}`;
|
const header = document.querySelector<HTMLElement>("#headerViewTitle");
|
||||||
|
if (header) {
|
||||||
|
header.textContent = viewTitles[viewId];
|
||||||
|
}
|
||||||
|
document.title = `Raw Transaction Ingest Desk — ${viewTitles[viewId]}`;
|
||||||
frontendTrace("main", "Raw Transaction Ingest Desk view DOM updated", { viewId, source });
|
frontendTrace("main", "Raw Transaction Ingest Desk view DOM updated", { viewId, source });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +92,7 @@ function renderRouteFoundation(foundation: RawIngestRouteFoundationDto): void {
|
|||||||
routeRoot.replaceChildren();
|
routeRoot.replaceChildren();
|
||||||
for (const routeId of foundation.routeIds) {
|
for (const routeId of foundation.routeIds) {
|
||||||
const column = document.createElement("div");
|
const column = document.createElement("div");
|
||||||
column.className = "col-12 col-xl-6";
|
column.className = "col-12 col-xl-6 app-route-column";
|
||||||
const card = document.createElement("div");
|
const card = document.createElement("div");
|
||||||
card.className = "card h-100 shadow-sm app-route-card";
|
card.className = "card h-100 shadow-sm app-route-card";
|
||||||
const body = document.createElement("div");
|
const body = document.createElement("div");
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
|
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
|
||||||
// version: 1
|
// version: 2
|
||||||
|
|
||||||
//! Desktop scaffold contract canaries for Raw Transaction Ingest Desk.
|
//! Desktop scaffold contract canaries for Raw Transaction Ingest Desk.
|
||||||
|
|
||||||
@@ -122,3 +122,34 @@ fn pre_005_route_foundation_is_backend_owned_and_has_exact_five_ids_and_seven_st
|
|||||||
assert!(!tauri.contains(forbidden), "scaffold Tauri surface contains premature runtime marker {forbidden}");
|
assert!(!tauri.contains(forbidden), "scaffold Tauri surface contains premature runtime marker {forbidden}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn pre_005_fix_002_shell_reuses_common_light_template_and_bounds_route_foundation() {
|
||||||
|
let html = read_text(app_root().join("frontend/main.html").as_path());
|
||||||
|
for required in [
|
||||||
|
"<header class=\"app-header\">",
|
||||||
|
"navbar h-100 py-0 bg-light text-dark",
|
||||||
|
"col-auto app-sidebar border-end bg-body-tertiary",
|
||||||
|
"col app-content app-scrollable h-100",
|
||||||
|
"card app-shell-card mx-auto shadow-sm border-0",
|
||||||
|
"id=\"routeFoundation\" class=\"row g-3 app-route-grid\"",
|
||||||
|
] {
|
||||||
|
assert!(html.contains(required), "missing common shell marker: {required}");
|
||||||
|
}
|
||||||
|
for forbidden in ["app-header bg-dark", "app-sidebar bg-dark text-light", "app-content flex-grow-1"] {
|
||||||
|
assert!(!html.contains(forbidden), "obsolete shell marker remains: {forbidden}");
|
||||||
|
}
|
||||||
|
let styles = read_text(app_root().join("frontend/sass/_app.scss").as_path());
|
||||||
|
for required in [
|
||||||
|
".app-scrollable {",
|
||||||
|
".app-shell-card {",
|
||||||
|
".app-route-grid {",
|
||||||
|
".app-route-grid > * {",
|
||||||
|
"min-width: 0;",
|
||||||
|
"max-width: 100%;",
|
||||||
|
"overflow: hidden;",
|
||||||
|
"overflow-wrap: anywhere;",
|
||||||
|
] {
|
||||||
|
assert!(styles.contains(required), "missing bounded layout marker: {required}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
|
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
|
||||||
// version: 1
|
// version: 2
|
||||||
|
|
||||||
//! Release-completeness canaries for the Raw Transaction Ingest Desk scaffold tranche.
|
//! Release-completeness canaries for the Raw Transaction Ingest Desk scaffold tranche.
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ fn pre_005_production_module_inventory_is_exact_and_scaffold_only() {
|
|||||||
#[test]
|
#[test]
|
||||||
fn pre_005_public_surface_exposes_only_application_run_entry_point() {
|
fn pre_005_public_surface_exposes_only_application_run_entry_point() {
|
||||||
let lib = read_text(app_root().join("src/lib.rs").as_path());
|
let lib = read_text(app_root().join("src/lib.rs").as_path());
|
||||||
let public_reexports = lib.lines().filter(|line| line.starts_with("pub use ")).collect::<std::vec::Vec<_>>();
|
let public_reexports = lib.lines().filter(|line| return line.starts_with("pub use ")).collect::<std::vec::Vec<_>>();
|
||||||
assert_eq!(public_reexports, vec!["pub use self::tauri::run;"]);
|
assert_eq!(public_reexports, vec!["pub use self::tauri::run;"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
164
deltas/0.3.15/pre.005-fix.002.md
Normal file
164
deltas/0.3.15/pre.005-fix.002.md
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
<!-- 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`.
|
||||||
Reference in New Issue
Block a user