v0.3.9-pre.003

This commit is contained in:
2026-09-04 14:45:05 +02:00
parent 84647c12ea
commit bb7ee3cc3a
9 changed files with 946 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Validation v0.3.9 — Worker API + audit RAW Transaction
@@ -128,21 +128,25 @@ Les cases cochées de cette sous-section attestent la matérialisation de la sur
### `pre.003`
- [ ] Stop-vs-fault ordres adversariaux couverts.
- [ ] Tous mutateurs refusent Stopped/Faulted.
- [ ] Debug hostile identity redacted.
- [ ] Snapshot ne contient aucun payload/string libre.
- [ ] Stop token `Send + Sync` prouvé cross-thread.
- [ ] `WorkerSnapshotSource: Send + Sync` prouvé.
- [ ] `WorkerSnapshotSource` object-safe prouvé avec trait object.
- [ ] Implémentation externe std-only compilée/testée.
- [ ] Listeners lents indépendants resynchronisés vers latest value.
- [ ] Late listener `current()` + séquence validés.
- [ ] Snapshot terminal reste lisible.
- [ ] Exact module inventory prouvé.
- [ ] Exact crate-root export inventory prouvé.
- [ ] Production sources sans Job/Config/Interface/Transport/Store/Tokio/futures/serde/Tauri/Solana.
- [ ] Worker API déclarée fonctionnellement frozen avant tout audit RAW détaillé.
- [X] Canarie des trois ordres stop-vs-fault ajoutée.
- [X] Canarie exhaustive vérifiant que tous les mutateurs refusent `Stopped` et `Faulted` ajoutée.
- [X] Canaries Debug hostile identity/lifecycle/snapshot et erreurs d'identité sans echo ajoutées.
- [X] Inventaire lexical exact de `WorkerSnapshot` ajouté : six dimensions communes uniquement, aucun payload/string libre.
- [X] Stop token `Send + Sync` et visibilité cross-thread couverts par canarie.
- [X] `Send + Sync` des primitives Worker publiques promises couvert par canarie de compilation.
- [X] `WorkerSnapshotSource: Send + Sync` et object-safety couverts par une implémentation externe via `&dyn WorkerSnapshotSource`.
- [X] Implémentation externe std-only matérialisée sans Tokio/Futures crate ni dev-dependency.
- [X] Listeners lent et rapide indépendants couverts avec coalescing vers la latest value.
- [X] Late listener `current()` puis `wait_for_change(sequence)` couvert.
- [X] Snapshot terminal retenu et relisible via `current()` couvert.
- [X] Exact production module inventory ajouté.
- [X] Exact crate-root export inventory ajouté et `pub mod` interdit.
- [X] Firewall production renforcé contre Job/Config/Interface/Transport/Store/Tokio/Futures/serde/Tauri/Solana et préoccupations RAW/provider.
- [X] `crates/ksp-worker-api/README.md` descriptif durable ajouté.
- [X] `crates/ksp-worker-api/USAGE.md` version-neutral ajouté avec exemples identity/lifecycle/health/activity/stop/snapshot/source/sequence.
- [X] Audits Python d'assemblage : Rust clean, export completeness 0, KSP workspace clean, Markdown clean (320 tables / 736 fichiers).
- [ ] Gate Cargo opérateur `pre.003` exécuté.
- [ ] Worker API déclarée effectivement frozen avant tout audit RAW détaillé ; cette case se ferme uniquement après le gate Cargo opérateur.
## 5. Threat model à fermer
@@ -244,10 +248,10 @@ Aucun item ci-dessous nest déclaré exécuté en `pre.001`.
La livraison initiale `pre.001` avait conservé `workspace.package.version = 0.3.8` en suivant lexception du prompt 028. Cette exception est supplantée par la règle normative `VER-ID-009`.
Après `pre.002-fix.002`, létat courant est :
Après matérialisation de `pre.003`, létat courant est :
```text
workspace.package.version = 0.3.9-pre.2.fix.2
workspace.package.version = 0.3.9-pre.3
```
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. `pre.003` reprend ensuite la séquence prerelease normale avec `0.3.9-pre.3`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.