{ "schema": "independent-source-review-v1", "ticket": "SWAYFX_MOSAIC_STEP20C_COREC_V2_FULLSCREEN_OOM_GLES_NATIVE_CLOSURE_BATCH_V1", "reviewer": "codex-source-review-independent", "author": "codex-native-closure-implementation", "independent": true, "manifest_sha256": "36722a891c9dddf4234f64de0f7804158c52d29f42dc4158627f69df0fec5fda", "source_digest": "ac97791e6bcfee3e02a0fbe9aea20d06ea325fab3c08fe0625ea5a0fd9a215a0", "decision": "CORRECTION_REQUIRED", "gates": { "B1": "ACCEPTED", "B2": "ACCEPTED", "B3": "CORRECTION_REQUIRED", "B4": "ACCEPTED", "B5_C_publication_modes": "CORRECTION_REQUIRED" }, "findings": [ { "id": "SR-B3-1", "severity": "P2", "file": "graphics/oom_handler.py", "symbol": "run", "line": 128, "requirement": "Phase F OM-NESTED: Tester input A visible si vivant.", "evidence": "La branche A vivant qualifie uniquement count(post[0], POPUP_A)>0; ensuite les seuls clicks visent reference et peuvent fermer A par dismissal. Aucun delivery POPUP_A après injection.", "correction": "Avant le clic voisin, sélectionner un intérieur A fraîchement peint, injecter et valider paire/wire/pointer-local sur A; conserver séparément le dismissal réellement observé et ajouter un négatif absence/mauvais destinataire." }, { "id": "SR-B3-2", "severity": "P2", "file": "graphics/oom_handler.py", "symbol": "run", "line": 126, "requirement": "B3 et phase F: avant/post/final sans image de popup raté, surfaces effectivement retirées.", "evidence": "oom-post vérifie uniquement exact(baseline,post[1]); H1 autorise toute couleur du popup échoué. oom-final vérifie uniquement H2 et ne refuse aucun résidu A/B sur H1.", "correction": "Sur captures post, refuser la couleur du rôle échoué sur les deux outputs tout en permettant A survivant dans OM-NESTED; sur final après close, refuser couleurs A/B sur les deux outputs. Tests négatifs vrai validateur appelé par run." }, { "id": "SR-C-1", "severity": "P2", "file": "graphics/gate.py", "symbol": "validate_review / source_modes", "line": 103, "requirement": "Phase C kit reconstructible depuis clone Git; phase I exactitude modes; parent exige SHA/modes Git avant débit.", "evidence": "source_modes compare modes POSIX locaux au manifeste; la boucle Git lit uniquement git show et SHA des blobs, sans ls-tree/type/mode. Le manifeste fourni contient 16 fichiers en0600; Git stocke les fichiers ordinaires non exécutables en100644 et un clone ne conserve pas0600. Donc ni comparaison modeGit ni replay identique des modes gelés depuis clone.", "correction": "Normaliser les sources non exécutables au mode portable0644 avant nouveau freeze; comparer les types/modes Git canoniques attendus avec ls-tree, plus ensemble des entrées souskit et SHA, et rejouer refus d’un mode exécutable ou symlink divergent. Ne pas prétendre préserver0600 viaGit." } ], "tests": { "graphics": { "manifest_sha256": "36722a891c9dddf4234f64de0f7804158c52d29f42dc4158627f69df0fec5fda", "files": 49, "modes": "PASS", "tests": 62, "failures": 0, "historical_C7": { "workspace_id": 6, "output": "HEADLESS-2", "children": [ 8, 9, 10 ], "viewport": [ 0, 0, 800, 600 ], "minimum_width": 640, "cell_width": 640, "gap": 0, "content_width": 1920, "min_scroll": 0, "max_scroll": 1120, "scroll": 1120.0, "focused": 10, "geometry_status": "IPC_PENDING_CANDIDATE; native generation NOT_OBSERVABLE", "expected_scroll": 1120, "resize_candidate": 800.0, "mutation": "migration", "clamp": "PASS" } }, "gpu_commands": [ { "argv": [ "cc", "-std=c17", "-Wall", "-Wextra", "-Werror", "-I/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu", "/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu/test_gl.c", "-o", "/var/tmp/swayfx-mosaic-step20c-native-closure-qseaqp39/reviews/source-review/test_gl" ], "exit": 0, "log": "gpu-0.log" }, { "argv": [ "/var/tmp/swayfx-mosaic-step20c-native-closure-qseaqp39/reviews/source-review/test_gl" ], "exit": 0, "log": "gpu-1.log" }, { "argv": [ "/usr/bin/python", "/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu/test_mutations.py" ], "exit": 0, "log": "gpu-2.log" }, { "argv": [ "/usr/bin/python", "/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu/validate_source.py" ], "exit": 0, "log": "gpu-3.log" }, { "argv": [ "/usr/bin/python", "/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu/test_protocol.py" ], "exit": 0, "log": "gpu-4.log" }, { "argv": [ "/usr/bin/python", "/home/fy59/Documents/Development/swayfx-mosaic/tooling/probes/step20c-corec-v2-followup/gpu/test_begin.py" ], "exit": 0, "log": "gpu-5.log" } ] }, "artifacts": { "followup-work/source-manifest.json": { "sha256": "36722a891c9dddf4234f64de0f7804158c52d29f42dc4158627f69df0fec5fda", "mode": "0o600" }, "followup-work/offline-tests.json": { "sha256": "a264c23a82a8b0b01d0a24d27a28d0d9401afe0a112c307cbda89c6c29ba4cc9", "mode": "0o600" }, "followup-work/client-compile.json": { "sha256": "58798a2dd1ad3d9faff4e02b3413ffefc224ec81121c63eea15e192805219528", "mode": "0o600" }, "g3-source-freeze-v2.json": { "sha256": "acc575eaa4e836368b40077f8362f73bfa725187fb69c750cb55b29badc54611", "mode": "0o600" }, "g3-offline/receipt.json": { "sha256": "8578ad7ad8a1188b0e215c49684034e1acdc59702bfc85c2162451e163c3b93e", "mode": "0o644" }, "gpu-client-guard/receipt.json": { "sha256": "7dc827169937b2dfeadad9d0a802527c4e43d58b3457d07f3a25b39c56e59475", "mode": "0o644" }, "offline-core-c/result.json": { "sha256": "0a8b9b0177cd22877130903210a8a39852fa7c539f88db999ca91e9ba67af18b", "mode": "0o644" }, "offline-oom-c/result.json": { "sha256": "fa980c65859cc590ecc6a36d580ef77bfb70dcd6c42320753c577910236b5384", "mode": "0o644" }, "offline-core-mutants/mutations.json": { "sha256": "42ffcc875e9aa1639f3a9ceb40f127feff52670bd42e2c54c54de6baf5d76aa2", "mode": "0o644" } }, "g3_freeze_sha256": "acc575eaa4e836368b40077f8362f73bfa725187fb69c750cb55b29badc54611", "runtime": "NOT_RUN", "build": "NOT_RUN", "stage": "NOT_RUN", "commit_push": "NOT_RUN", "authorization": "NO_RUNTIME_AUTHORIZATION; B4 source-only supports independent private G3 build gate, subject to parent review", "notes_sha256": "a305fccd492a72265ae23e17185cf6262739050b58e4aca52a791b43dc2ada59", "review_artifacts": { "check.py": "ad38b81d5814605fb1d977f0357fbcebcc6bab98c6a1712a1d15f9725f6d9247", "graphics-tests.log": "0939b29211a441f77ba669edebef394a9138cb6a85caee7a0292c528db8a8fa2", "checks.json": "c275ac1329274ce66d71c02a76919a56120469dd4c373a4b23aeb265ec1f1342", "gpu-check.py": "53c171f40261cae5413c357f10acc7456e4c9b06a13a8a9fded20b62d314ede7", "test_gl": "689b3508d111a00bd88b22a3222a86df5e98433a10fc6134c2415ce680128784", "gpu-0.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "gpu-1.log": "6ec803c703a1a998847fa09bfa5f3924f53c589c240c84e3254044d11b5d5614", "gpu-2.log": "e14c1178c590c2c109134f4e15d3a594d98506e8eab1908936042e747c7709e1", "gpu-3.log": "8d38bb336ccc12945a1e9485bc6e8d0edccfb00370a600ff839e3cf5a7a7fa11", "gpu-4.log": "2a13d035481d175f8def601c56189df95a040b49c038fb244405cafb31981588", "gpu-5.log": "7f8ce6c940016515a9dfc2ac2871bfeb33450110fc34111e4fc443333e8d0593", "gpu-checks.json": "8ecf0b244bf1d10aa033cfd6ef85ac7722ba9ad253e227a4a4df38c816e70b99", "notes.md": "a305fccd492a72265ae23e17185cf6262739050b58e4aca52a791b43dc2ada59" } }