diff --git a/docs/design/STEP20C_COREC_V2_INTEGRATION_DECISION.md b/docs/design/STEP20C_COREC_V2_INTEGRATION_DECISION.md index 9711a8b..95a2f56 100644 --- a/docs/design/STEP20C_COREC_V2_INTEGRATION_DECISION.md +++ b/docs/design/STEP20C_COREC_V2_INTEGRATION_DECISION.md @@ -56,7 +56,8 @@ Les commits source-only suivants étaient publiés normalement sur `origin` - `c0a822a0799ef024727b4a51a7442b8626223a69` : fixtures headless revues ; - `bf00b0b0ed3e20bfb7c68d2fbbe6553594f3167a` : diagnostics OOM/G2 revus. -Le dernier kit compte 105 fichiers, environ 1,18 Mo. La reproduction depuis +Le kit publié à bf00b0b0 compte 105 fichiers, environ 1,18 Mo ; les reçus +de clôture et le correctif du test offline sont conservés ensuite séparément. La reproduction depuis une archive Git vierge (`results/git-next-kit-reproduction.json`) vérifie les octets et modes des arbres CORE SceneFX/Mosaic 85/417 fichiers, OOM 86/417, GPU SceneFX 87 ; une reconstruction CORE indépendante avec fetch public avait @@ -64,15 +65,18 @@ déjà été acceptée. Cela prouve **EXACT_FOR_NEW_TREE**, sans garantir un bin reproductible bit à bit. La [recette de build](../../tooling/probes/step20c-corec-v2/BUILD_RECIPE.md) décrit les prérequis et les limites. -La publication documentaire finale reste à sceller par le closeout final ; -aucun SHA futur n'est inventé ici. Le contrôle système pré-final confirme +La publication documentaire a été vérifiée directement sur origin puis github +au commit `9d4e7942f5a45b4be37ba75682cd146a58295659`. Son extraction Git +vierge reproduit aussi CORE/OOM/GPU exactement et passe 48 tests offline. +Le closeout externe scelle l'inventaire final et la présente mise à jour +administrative, sans référence circulaire à son propre futur SHA. Le contrôle système pré-final confirme les huit hashes protégés, le PID Sway quotidien 2325, son exécutable `/usr/bin/sway` et son startticks 2833 inchangés par lecture seule. Tous les PIDs privés vérifiés sont absents ; aucun `/tmp/smx-*` ne reste. Les huit premières entrées du ledger sont structurellement identiques aux reçus initiaux. -À cette édition, `bf00b0b0ed3e20bfb7c68d2fbbe6553594f3167a` est la dernière -publication vérifiée. Ce dossier ne prétend pas déjà publié sous son propre -futur commit. +Les observations de publication sont conservées dans +evidence/documentary-publication.json ; elles portent sur ce commit réellement +interrogé, pas sur un SHA futur. ## 2. Contrat technique V2 et audit C @@ -407,8 +411,8 @@ Les anciennes preuves perdues ne sont pas récupérées par cette procédure. Les PASS suivants désignent les gates bornées réellement validées, jamais STEP20C production. L'audit HOME/protections pré-final et la revue globale indépendante sont -acceptés. La publication documentaire finale doit encore être liée à ses -observations directes de remotes dans les reçus de clôture. +acceptés. La publication documentaire est liée aux observations directes des +deux remotes au commit 9d4e7942 ; les reçus de clôture conservent le SHA final. ```text COREC_V2_STORAGE_GATE=PASS @@ -452,7 +456,7 @@ COREC_V2_GPU_COMPLETION=NOT_PROVEN COREC_V2_ATOMIC_GENERATION=NOT_PROVEN COREC_V2_REPRODUCIBLE_KIT=PASS COREC_V2_INDEPENDENT_REVIEW=ACCEPTED -COREC_V2_DOCUMENTARY_PUBLICATION=PARTIAL +COREC_V2_DOCUMENTARY_PUBLICATION=PASS COREC_V2_HOME_CLEAN=PASS SWAYFX_MOSAIC_STEP20C_REBUILD_FROM_GIT_COREC_OOM_GPU_NIGHT_SHIFT_V1=PARTIALLY_ADVANCED ``` @@ -549,7 +553,8 @@ jeton O1 et le ledger sont inchangés, le jeton factice existant est refusé. L'échec initial reste conservé. Les reçus reviews/offline-post-run-delta-review.json et reviews/final-global-review.json sont matérialisés explicitement par le parent depuis les retours structurés des reviewers en lecture seule. La revue -globale est ACCEPTED sans blocage ; la publication reste à sceller. +globale est ACCEPTED sans blocage ; la publication documentaire est vérifiée +au commit 9d4e7942. Le scellement externe conserve ensuite l'inventaire final. Les autres validations finales transmises à cette édition réussissent : AST des 43 Python, C17 fullscreen/G2, cinq bindings, manifests historiques diff --git a/tooling/probes/step20c-corec-v2/evidence/documentary-publication.json b/tooling/probes/step20c-corec-v2/evidence/documentary-publication.json new file mode 100644 index 0000000..835dc53 --- /dev/null +++ b/tooling/probes/step20c-corec-v2/evidence/documentary-publication.json @@ -0,0 +1,8 @@ +{ + "commit": "9d4e7942f5a45b4be37ba75682cd146a58295659", + "observed_ns": 1792051054677409397, + "remotes": { + "origin": "9d4e7942f5a45b4be37ba75682cd146a58295659\trefs/heads/main", + "github": "9d4e7942f5a45b4be37ba75682cd146a58295659\trefs/heads/main" + } +} diff --git a/tooling/probes/step20c-corec-v2/evidence/final-git-source-reproduction.json b/tooling/probes/step20c-corec-v2/evidence/final-git-source-reproduction.json new file mode 100644 index 0000000..725bd43 --- /dev/null +++ b/tooling/probes/step20c-corec-v2/evidence/final-git-source-reproduction.json @@ -0,0 +1,99 @@ +{ + "status": "PASS", + "source_commit": "9d4e7942f5a45b4be37ba75682cd146a58295659", + "archive_sha256": "0a28d4b9cb186454f23e9125fa1f594ad7bb168a5562af8df666e57b2f14a96c", + "commands": [ + { + "argv": [ + "python3", + "-B", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-kit/tooling/probes/step20c-corec-v2/assemble.py", + "--project-git", + "/home/fy59/Documents/Development/swayfx-mosaic", + "--scene-git", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/sources/scenefx.git", + "--destination", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-core" + ], + "exit": 0, + "log_sha256": "9dc570fa367c2b71cd44ec78c46fc83b3f3484584c9047cf47287c84258a694b" + }, + { + "argv": [ + "python3", + "-B", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-kit/tooling/probes/step20c-corec-v2/verify.py", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-core" + ], + "exit": 0, + "log_sha256": "2bb2d634194772d28cced35b57e9a56a9054d15f530c47352d6c48efcf21920a" + }, + { + "argv": [ + "python3", + "-B", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-kit/tooling/probes/step20c-corec-v2/oom/assemble-variant.py", + "--core", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-core", + "--destination", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-oom" + ], + "exit": 0, + "log_sha256": "a7f3cf3d706edee3375ce77239c97a31dfa4d79a7228b2d00931093951eab315" + }, + { + "argv": [ + "python3", + "-B", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-kit/tooling/probes/step20c-corec-v2/gpu/reproduce.py", + "--core", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-core/scene", + "--destination", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-gpu", + "--work", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-repro-work" + ], + "exit": 0, + "log_sha256": "7e794b1a1095bb6c71d3351e94ff1c1d289e2df4b8c64d7e43e2020952001331" + }, + { + "argv": [ + "python3", + "-B", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/final-git-kit/tooling/probes/step20c-corec-v2/graphics/validate_offline.py", + "--lab", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po", + "--gpu-source-manifest", + "/var/tmp/swayfx-mosaic-corec-v2-i516p6po/results/gpu-source-freeze-corrected.json" + ], + "exit": 0, + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + ], + "checks": { + "final-git-repro-core/scene": { + "files": 85, + "exact_bytes_and_modes": true + }, + "final-git-repro-core/mosaic": { + "files": 417, + "exact_bytes_and_modes": true + }, + "final-git-repro-oom/scene": { + "files": 86, + "exact_bytes_and_modes": true + }, + "final-git-repro-oom/mosaic": { + "files": 417, + "exact_bytes_and_modes": true + }, + "final-git-repro-gpu": { + "files": 87, + "exact_bytes_and_modes": true + } + }, + "offline_tests": "48/48 PASS from committed Git extraction", + "new_native_builds": 0, + "new_native_runs": 0, + "budget_sha256": "dfe1897e255ca5a96b7b66b0af0728acdffdf3ddf397a3fa3c6b1011b07c9db6" +}