Files
pgr/history/0.0.5/alpha.5.md
2026-09-25 00:36:24 +02:00

3.8 KiB
Raw Permalink Blame History

History 0.0.5-alpha.5 — audit Rust de façade/export completeness

Statut

FAIL

La gate mécanique de 0.0.5-alpha.5 exécutée le 2026-09-25 est propre, mais la revue fonctionnelle qui suit révèle que le contrat livré est incomplet par rapport à la convention Rust que PGR doit pouvoir porter : l'audit détecte crate::module::Item, mais ne détecte pas les références non qualifiées ou autrement non canoniques à un item partagé déjà exposé au crate-root, notamment dans son propre module de déclaration.

Le statut global reste donc FAIL. Les résultats mécaniques ne sont pas annulés ; ils prouvent que l'implémentation livrée fonctionne selon son contrat écrit, tandis que la revue révèle que ce contrat est trop faible.

Baseline et version

La tranche part du commit opérateur de 0.0.5-alpha.4 :

defc9ca  0.0.5-alpha.4

Le push vers origin/master a réussi avant l'application de alpha.5.

La version contrôlée après application du delta est :

0.0.5-alpha.5

history/0.0.5/alpha.4.md, deltas/0.0.5/alpha.5.md, scripts/audit_rust_export_completeness.py, tests/test_rust_export_completeness.py et docs/validation/003-RUST_EXPORT_COMPLETENESS.md sont présents. history/0.0.5/alpha.5.md était absent pendant la gate.

Validation opérateur observée

L'opérateur a fourni les sorties du 2026-09-25 depuis ~/Projects/pgr, à 00:03:49–00:08:36.

Les contrôles de présence, statut et révision ont réussi. La suite ciblée a exécuté 9 tests, tous réussis :

Ran 9 tests in 0.161s

OK

La suite Python globale a exécuté 28 tests, tous réussis :

Ran 28 tests in 0.468s

OK

Les audits documentaires affichent :

Markdown header audit: clean (140 file(s))
Markdown table audit: clean (6 table(s), 140 file(s))
Markdown link audit: clean (137 local link(s), 140 file(s))

Le contrôle structurel de la tranche affiche :

0.0.5 alpha.5 Rust façade audit: clean (recursive crate discovery, narrow ownership, regression coverage)

git diff --check et git diff --cached --check n'ont produit aucun diagnostic. Le scope Git observé est exactement celui du delta alpha.5.

Défaut fonctionnel découvert après la gate

La convention recherchée est plus stricte que le contrat implémenté : lorsqu'un item pub ou pub(crate) est partagé et exposé par la façade crate-root, ses références intra-crate doivent utiliser le chemin canonique crate::Item, y compris depuis le module propriétaire.

Le script version: 1 détecte seulement le sous-cas :

crate::module::Item

lorsque crate::Item existe déjà. Il laisse notamment passer :

Item
self::Item
super::Item
module::Item

ainsi que les noms nus dans des signatures, impl, constructeurs ou appels situés dans le module de déclaration. Le compilateur et Clippy ne possèdent pas cette convention de style/architecture : une seule consommation correcte par crate::Item peut suffire à rendre le réexport utilisé sans révéler les autres accès non canoniques.

Ce manque est dans le scope exact de alpha.5; il doit donc être corrigé par alpha.5.fix.1, sans commencer Tauri.

Résultat

0.0.5-alpha.5 est enregistré FAIL malgré une gate mécanique verte, car l'acceptation fonctionnelle de l'audit est incomplète.

Transition

Appliquer le présent history puis committer/pousser 0.0.5-alpha.5.

La correction suivante est :

0.0.5-alpha.5.fix.1

Elle doit étendre l'audit de façade pour imposer réellement la forme canonique intra-crate crate::Item aux items partagés, ajouter les régressions correspondantes et corriger la documentation/mesure de réconciliation. Aucun scope Tauri ne doit être absorbé.