Preserve artifact provenance across Git text normalization

This commit is contained in:
Emil
2026-09-18 06:24:57 +03:00
parent dd02f9cae8
commit 06210aac23
4 changed files with 71 additions and 30 deletions
+5
View File
@@ -327,6 +327,11 @@ production build, 318 local Markdown links, retained Windows evidence hashes, al
validation JSON records and `git diff --check`. The engine-source diff from the
accepted commit is empty; no untested engine changes were bundled into publication.
The post-publication documentation check also verified hashes against Git blobs,
which normalize Windows JSON line endings to LF. Evidence indices now identify both
the retained repository bytes and original CRLF artifacts explicitly. This follow-up
changes only documentation metadata and preserves the first MVP tag and engine code.
Known coverage limits remain: real OS IME composition, movement between physical
monitors with different scales, native Wayland programmatic restore and additional
GPU/driver families. Widget composition/DPI, SDL text-input boundaries, XWayland and
@@ -15,4 +15,10 @@ The [toolchain](final-source/toolchain.json) and [probe](final-source/probe.json
Original detailed job logs and raw frame profiles are available in the linked CI artifact while its retention period lasts. This folder keeps the compact acceptance evidence and hashes of the original CTest/CI logs.
Git stores these JSON records with LF line endings. Each retained-file `sha256` and
`size` describes those repository bytes; where the original Windows artifact used
CRLF, `original_artifact_sha256` and `original_artifact_size` preserve that separate
byte identity. The documentation correction after the first MVP tag records this
normalization explicitly; it does not change the test outcomes or packaged games.
The earlier [checkpoint 5 record](checkpoint5/evidence.json) preserves the independently successful run of `0f34b036313c011861dbfd5828ed45c4f7940b05`. The final source run additionally covers the relocated importer metadata fix through `assets_pipeline`, followed by the complete export matrix again. [2D capture](final-source/collect-2d.png) · [3D capture](final-source/collect-3d.png).
@@ -178,13 +178,17 @@
},
{
"path": "collect-2d-run.json",
"sha256": "9dda395b5012051bfa225be27577bde0eff9d56ccc5f7e64ae8ed7dbd9748d02",
"size": 1011
"sha256": "afd99e711f732aff500fdb5ff710c4ecfc9fa7185ac376880959c457692c21ea",
"size": 993,
"original_artifact_sha256": "9dda395b5012051bfa225be27577bde0eff9d56ccc5f7e64ae8ed7dbd9748d02",
"original_artifact_size": 1011
},
{
"path": "collect-2d-validate.json",
"sha256": "1789f7b2d8de3bd55be3974d6b1e8fbc76424b5c73633e0a2052fb07482ce474",
"size": 445
"sha256": "3cc2e458a2ac3c8e0c08cb6475ebc7a8a9c9fcc3580d423dcca60f690db9afda",
"size": 433,
"original_artifact_sha256": "1789f7b2d8de3bd55be3974d6b1e8fbc76424b5c73633e0a2052fb07482ce474",
"original_artifact_size": 445
},
{
"path": "collect-2d.png",
@@ -198,13 +202,17 @@
},
{
"path": "collect-3d-run.json",
"sha256": "0fd945b0ea7d8373832db5ef017b1d57155ba8a26fd245e43d45732a0aacb5f9",
"size": 1128
"sha256": "a19ce25b92a84eb04a5f0a50907c661251f73bc25bed94687ea0a7ae03dbcc88",
"size": 1110,
"original_artifact_sha256": "0fd945b0ea7d8373832db5ef017b1d57155ba8a26fd245e43d45732a0aacb5f9",
"original_artifact_size": 1128
},
{
"path": "collect-3d-validate.json",
"sha256": "3c6f05871ac8d462505c0f4021cb18d9740060955bad22aead701a4dec8bebb0",
"size": 562
"sha256": "199938c31d5fbeda2ee94148a00ce7c6d67f7239b216fb39f171313b36e90ad4",
"size": 550,
"original_artifact_sha256": "3c6f05871ac8d462505c0f4021cb18d9740060955bad22aead701a4dec8bebb0",
"original_artifact_size": 562
},
{
"path": "collect-3d.png",
@@ -213,13 +221,17 @@
},
{
"path": "playable-report.json",
"sha256": "d754700b5bfb23e3e5f6f78cc77336daea0503d71fe82bec7c80454f194ac293",
"size": 14529
"sha256": "bfb1ee2a6632978ad95428025fddfed77ec330256acd68b0152140beb6fe8a41",
"size": 14094,
"original_artifact_sha256": "d754700b5bfb23e3e5f6f78cc77336daea0503d71fe82bec7c80454f194ac293",
"original_artifact_size": 14529
},
{
"path": "probe.json",
"sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"size": 1019
"sha256": "fbc4c5f01a5d23c901fbdab366537da331002709bfbce42e06a84b1a64a1b396",
"size": 987,
"original_artifact_sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"original_artifact_size": 1019
},
{
"path": "tests.json",
@@ -228,8 +240,11 @@
},
{
"path": "toolchain.json",
"sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"size": 937
"sha256": "daf1ce634e438ff9cd3a84a2c21313f3530279dfb27f15acf8b217833e06548d",
"size": 914,
"original_artifact_sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"original_artifact_size": 937
}
]
],
"retained_file_hash_basis": "Repository bytes with LF text line endings. Where normalization changed original Windows artifact bytes, original_artifact_sha256 and original_artifact_size preserve their original provenance."
}
@@ -178,13 +178,17 @@
},
{
"path": "collect-2d-run.json",
"sha256": "9dcc203502d2504ffcc9dcfed4ecde118bda954ee8d4604e0b6992839390b731",
"size": 1011
"sha256": "c65e56ff39059612afb9456f26c2bd0674e883057f60551216875643d6a349cd",
"size": 993,
"original_artifact_sha256": "9dcc203502d2504ffcc9dcfed4ecde118bda954ee8d4604e0b6992839390b731",
"original_artifact_size": 1011
},
{
"path": "collect-2d-validate.json",
"sha256": "ffd23bb53b1d0f7da885ec40f6ab932f3aee3cc17afc3c620abc16ec4a661d4c",
"size": 446
"sha256": "9d94363e13ac5df29f2a236356384564dcab3b73115d8e65f02b891ee655805f",
"size": 434,
"original_artifact_sha256": "ffd23bb53b1d0f7da885ec40f6ab932f3aee3cc17afc3c620abc16ec4a661d4c",
"original_artifact_size": 446
},
{
"path": "collect-2d.png",
@@ -198,13 +202,17 @@
},
{
"path": "collect-3d-run.json",
"sha256": "cd21db5286b96f4d4a9a3e381563797230d0b1d8cdd8fbfb644eb272e9b82af6",
"size": 1127
"sha256": "3dbf47e49bb1a27f68e1ffd222b2251a270469942cb20b08415f619a33b3c6c6",
"size": 1109,
"original_artifact_sha256": "cd21db5286b96f4d4a9a3e381563797230d0b1d8cdd8fbfb644eb272e9b82af6",
"original_artifact_size": 1127
},
{
"path": "collect-3d-validate.json",
"sha256": "6dedaca4e4ffa573b7991856e5f3464bf93f6e825192ad4c4d35693d731531ad",
"size": 562
"sha256": "f15afce2a5248a0e74179bc69a4b653976ecc07ad7e28cb29669b07bfe89297c",
"size": 550,
"original_artifact_sha256": "6dedaca4e4ffa573b7991856e5f3464bf93f6e825192ad4c4d35693d731531ad",
"original_artifact_size": 562
},
{
"path": "collect-3d.png",
@@ -213,13 +221,17 @@
},
{
"path": "playable-report.json",
"sha256": "3783533ba50b9b4b2fe29fa3e13cbaf7c43b96d29dce8365fa72ae014bc960f1",
"size": 14528
"sha256": "e3e6743832ce6fd216b3352609d80ce1de63ec1c2c58c58034bd361967cb7a5d",
"size": 14093,
"original_artifact_sha256": "3783533ba50b9b4b2fe29fa3e13cbaf7c43b96d29dce8365fa72ae014bc960f1",
"original_artifact_size": 14528
},
{
"path": "probe.json",
"sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"size": 1019
"sha256": "fbc4c5f01a5d23c901fbdab366537da331002709bfbce42e06a84b1a64a1b396",
"size": 987,
"original_artifact_sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"original_artifact_size": 1019
},
{
"path": "tests.json",
@@ -228,8 +240,11 @@
},
{
"path": "toolchain.json",
"sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"size": 937
"sha256": "daf1ce634e438ff9cd3a84a2c21313f3530279dfb27f15acf8b217833e06548d",
"size": 914,
"original_artifact_sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"original_artifact_size": 937
}
]
],
"retained_file_hash_basis": "Repository bytes with LF text line endings. Where normalization changed original Windows artifact bytes, original_artifact_sha256 and original_artifact_size preserve their original provenance."
}