v0.3.9-pre.003
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# Plan v0.3.9 — Worker API générique + audit RAW Transaction
|
||||
|
||||
@@ -575,9 +575,9 @@ Le champ tuple de `WorkerSnapshotSequence` reste privé. L'`impl crate::WorkerSn
|
||||
|
||||
### `pre.003` — hardening, races, object-safety, impl externe et freeze
|
||||
|
||||
**Statut : prévu.**
|
||||
**Statut : réalisé ; gate opérateur demandé avant freeze effective.**
|
||||
|
||||
Budget cible : **15-20 min**. Fermer le hardening du contrat Worker, les races et invariants lifecycle, l’object-safety et la preuve d’implémentation externe. Sortie : Worker API fonctionnellement fermée avant tout audit RAW provider.
|
||||
Budget cible : **15-20 min**. La production API de `pre.002` reste inchangée : aucun nouveau type, module runtime ou edge de dépendance n'est nécessaire. La tranche ferme le hardening par preuves externes et adversariales : immutabilité terminale sous tous les mutateurs, trois ordres stop/fault, redaction hostile, stop cross-thread, `Send + Sync`, object-safety, implémentation std-only de `WorkerSnapshotSource`, coalescing latest-value pour listeners indépendants/lents, late-listener resync, rétention du snapshot terminal, inventaires exacts de modules/exports et firewall runtime/domain. `README.md` et `USAGE.md` durables sont créés pour la bibliothèque désormais fonctionnellement complète ; leur dernière réconciliation reste réservée à `pre.008`. Sortie : Worker API matériellement fermée, freeze effective dès validation du gate Cargo opérateur, avant tout audit RAW provider.
|
||||
|
||||
### `pre.004` — audit RAW A : Solana standard + KSP Transport/Store/Config
|
||||
|
||||
|
||||
@@ -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 n’est déclaré exécuté en `pre.001`.
|
||||
|
||||
La livraison initiale `pre.001` avait conservé `workspace.package.version = 0.3.8` en suivant l’exception 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`.
|
||||
|
||||
Reference in New Issue
Block a user