diff --git a/data/hd/hd.json b/data/hd/hd.json index f40b2977..22de5024 100644 --- a/data/hd/hd.json +++ b/data/hd/hd.json @@ -111132,6 +111132,1014 @@ } ], "name": "Source-first muted-brown standalone2039a" + }, + { + "base_asset": 263221, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "1d5ab223b35e2fb960c026fd46da5ade7495e0e92d87380cfa8fe0be838978be" + } + ], + "name": "canonical-40435" + }, + { + "base_asset": 263222, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "68f3e4677271de68a69dd1b1a99f8e972d258453255306745a5bca5b2beb6aba" + } + ], + "name": "canonical-40436" + }, + { + "base_asset": 263223, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "f14da7e583df369d05dcedf8bae84b87ce95fa26d027da51d065af008351652b" + } + ], + "name": "canonical-40437" + }, + { + "base_asset": 263224, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "3e114bf9ebefb28c4e389371db5050bd6b7407952dcc5a600b8a7d3d31a69131" + } + ], + "name": "canonical-40438" + }, + { + "base_asset": 263225, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "84bd43abe1776470d0918d7334b1158dd4c9cd8886f02627392aae1a519bf283" + } + ], + "name": "canonical-40439" + }, + { + "base_asset": 263226, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "f0ad3d82a90d7188dd768ea70015a6f24a334b7a2306f77471408183f4a275ac" + } + ], + "name": "canonical-4043a" + }, + { + "base_asset": 263227, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "0238c6f3f638606ac36e1a58cb7cd65288d721060c100f7b07d440bfaff650bd" + } + ], + "name": "canonical-4043b" + }, + { + "base_asset": 263228, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "01294d1dcc12899e310715abcef847bc06e1f573e07dd320c85781751458624a" + } + ], + "name": "canonical-4043c" + }, + { + "base_asset": 263229, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "25bb3a41e7db3b887e3286356a5c3525033c31def0d5abb16f593e622cf63aac" + } + ], + "name": "canonical-4043d" + }, + { + "base_asset": 263230, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "01cb0d00b39f6dfc5085c7bec8e3fdc393ada5a54c86462a53f1ee7d2438fa14" + } + ], + "name": "canonical-4043e" + }, + { + "base_asset": 263231, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "a83588688b582c84504721d158f9f23e1b7b70d4a91d769c88524bc0b373310f" + } + ], + "name": "canonical-4043f" + }, + { + "base_asset": 263232, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "cada73d67a3853f7edffc65210b691fe15e2fa9618bf9573dc0307bccc1ee2e4" + } + ], + "name": "canonical-40440" + }, + { + "base_asset": 263233, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "6f18c5f997a688959d28a2379d49f98a754f2f87c413361091fc457d812a1378" + } + ], + "name": "canonical-40441" + }, + { + "base_asset": 263234, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "28a93cdacf601653207dd78d48657b06bc0ea655c533b4138dfb59c7de941331" + } + ], + "name": "canonical-40442" + }, + { + "base_asset": 263235, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "2b0c5a2a51972572819629b8690950f688170fdaf1d0a6360cf97cc9a844be83" + } + ], + "name": "canonical-40443" + }, + { + "base_asset": 263236, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 21, + 1 + ], + [ + 21, + 3 + ], + [ + 21, + 21 + ], + [ + 21, + 23 + ], + [ + 21, + 25 + ], + [ + 21, + 27 + ], + [ + 22, + 2 + ], + [ + 22, + 22 + ], + [ + 22, + 24 + ], + [ + 22, + 26 + ] + ], + "source_sha256": "b2635bd174979b6a4078eb59ee6de2a3dfbc5f4c23b6773201daa578132488be" + } + ], + "name": "canonical-40444" + }, + { + "name": "Terrain 20391 Source-first muted brown singleton", + "base_asset": 131985, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "ca0c6444be4f0d60e8dc1dfd86d706423f980da860991b9f7b0123a355460ac6" + } + ] + }, + { + "name": "Terrain 20392 Source-first muted brown singleton", + "base_asset": 131986, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "63aa24ff5317e5f79234c0815d7c5a02a30c16a445398947d03f8fe162f21563" + } + ] + }, + { + "name": "Terrain 20393 Source-first muted brown singleton", + "base_asset": 131987, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "8974df709eeb792f3494e85d8180eeb7d5839366ac177f093e691a7f8b208cd2" + } + ] + }, + { + "name": "Terrain 20394 Source-first muted brown singleton", + "base_asset": 131988, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "23678e19a8a1ecb576df516e31a99813856a8510dae2acb3f456334c11d93b54" + } + ] + }, + { + "name": "Terrain2057d exact native complete1 from held inventory", + "base_asset": 132477, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "bdf6237dbaab2339ba6952da5a860ea74fb0a5200b73ebbbe15d41cf1c312a94", + "crop": [ + 0, + 0, + 313, + 313 + ], + "original_detail_cells": [ + [ + 5, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 30 + ], + [ + 7, + 31 + ], + [ + 8, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 30 + ], + [ + 10, + 31 + ], + [ + 11, + 30 + ], + [ + 11, + 31 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 13, + 30 + ], + [ + 13, + 31 + ], + [ + 14, + 30 + ], + [ + 14, + 31 + ], + [ + 15, + 30 + ], + [ + 15, + 31 + ], + [ + 16, + 30 + ], + [ + 16, + 31 + ], + [ + 17, + 30 + ], + [ + 17, + 31 + ], + [ + 18, + 30 + ], + [ + 18, + 31 + ], + [ + 19, + 30 + ], + [ + 19, + 31 + ], + [ + 20, + 30 + ], + [ + 20, + 31 + ], + [ + 21, + 30 + ], + [ + 21, + 31 + ], + [ + 22, + 30 + ], + [ + 22, + 31 + ], + [ + 23, + 30 + ], + [ + 23, + 31 + ], + [ + 24, + 30 + ], + [ + 24, + 31 + ], + [ + 25, + 30 + ], + [ + 25, + 31 + ], + [ + 26, + 30 + ], + [ + 26, + 31 + ] + ] + } + ] + }, + { + "name": "Terrain20585 exact native complete1 from held inventory", + "base_asset": 132485, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "36503b7fd4169666d6746c5a09a95724493d2f48d4cf91dfa9c416d1bc76d511", + "crop": [ + 0, + 627, + 313, + 313 + ], + "original_detail_cells": [ + [ + 0, + 31 + ], + [ + 1, + 31 + ], + [ + 2, + 31 + ], + [ + 3, + 31 + ], + [ + 4, + 31 + ], + [ + 5, + 31 + ], + [ + 6, + 31 + ], + [ + 7, + 31 + ], + [ + 8, + 31 + ], + [ + 9, + 31 + ], + [ + 10, + 31 + ], + [ + 11, + 31 + ], + [ + 12, + 31 + ], + [ + 13, + 31 + ], + [ + 14, + 31 + ], + [ + 15, + 31 + ], + [ + 16, + 31 + ], + [ + 17, + 31 + ], + [ + 18, + 31 + ], + [ + 19, + 31 + ], + [ + 20, + 31 + ], + [ + 21, + 31 + ], + [ + 22, + 31 + ], + [ + 23, + 31 + ], + [ + 24, + 31 + ], + [ + 25, + 31 + ], + [ + 26, + 31 + ], + [ + 27, + 31 + ], + [ + 28, + 31 + ], + [ + 29, + 31 + ], + [ + 30, + 31 + ], + [ + 31, + 31 + ] + ] + } + ] + }, + { + "name": "Terrain20586 exact native complete1 from held inventory", + "base_asset": 132486, + "frame_count": 1, + "frames": [ + { + "frame": 0, + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "46ef4c08c6ec5e0eb162aead85dd1cfaf6f39c9792bb386d36d82da77a7852d7", + "crop": [ + 314, + 627, + 313, + 313 + ], + "original_detail_cells": [ + [ + 0, + 31 + ], + [ + 1, + 31 + ], + [ + 2, + 31 + ], + [ + 3, + 31 + ], + [ + 4, + 31 + ], + [ + 5, + 31 + ], + [ + 6, + 31 + ], + [ + 7, + 31 + ], + [ + 8, + 31 + ], + [ + 9, + 31 + ], + [ + 10, + 31 + ], + [ + 11, + 31 + ], + [ + 12, + 31 + ], + [ + 13, + 31 + ], + [ + 14, + 31 + ], + [ + 15, + 31 + ], + [ + 16, + 31 + ], + [ + 17, + 31 + ], + [ + 18, + 31 + ], + [ + 19, + 31 + ], + [ + 20, + 31 + ], + [ + 21, + 31 + ], + [ + 22, + 31 + ], + [ + 23, + 31 + ], + [ + 24, + 31 + ], + [ + 25, + 31 + ], + [ + 26, + 31 + ], + [ + 27, + 31 + ], + [ + 28, + 31 + ], + [ + 29, + 31 + ], + [ + 30, + 31 + ], + [ + 31, + 31 + ] + ] + } + ] } ] } diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png new file mode 100644 index 00000000..c9ba37ad Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png new file mode 100644 index 00000000..14375060 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png new file mode 100644 index 00000000..d83974e8 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png new file mode 100644 index 00000000..bf5fc4d5 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png new file mode 100644 index 00000000..29a835e9 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png new file mode 100644 index 00000000..142f78e4 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png new file mode 100644 index 00000000..777d0d08 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png new file mode 100644 index 00000000..11fee93c Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png new file mode 100644 index 00000000..cedd9a35 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png new file mode 100644 index 00000000..ba9fd682 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png new file mode 100644 index 00000000..b616d237 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png new file mode 100644 index 00000000..a0565669 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png new file mode 100644 index 00000000..ccfebb04 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png new file mode 100644 index 00000000..0e751fd4 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png new file mode 100644 index 00000000..f4180e28 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png differ diff --git a/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png new file mode 100644 index 00000000..3fa35d59 Binary files /dev/null and b/data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png differ diff --git a/data/hd/jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png b/data/hd/jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png new file mode 100644 index 00000000..477c7961 Binary files /dev/null and b/data/hd/jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png differ diff --git a/data/hd/jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png b/data/hd/jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png new file mode 100644 index 00000000..69cfce18 Binary files /dev/null and b/data/hd/jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png differ diff --git a/data/hd/jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png b/data/hd/jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png new file mode 100644 index 00000000..1620979c Binary files /dev/null and b/data/hd/jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png differ diff --git a/data/hd/jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png b/data/hd/jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png new file mode 100644 index 00000000..a471778e Binary files /dev/null and b/data/hd/jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png differ diff --git a/data/hd/jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png b/data/hd/jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png new file mode 100644 index 00000000..3efdbf6d Binary files /dev/null and b/data/hd/jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png differ diff --git a/data/hd/provenance.json b/data/hd/provenance.json index a5f6b76d..002386f8 100644 --- a/data/hd/provenance.json +++ b/data/hd/provenance.json @@ -1,7 +1,7 @@ { "generator": "built-in image_gen tool (imagegen skill)", "generated_on": "2026-10-10", - "status": "5384 reviewed original picture frames registered as complete families or explicit standalone Terrain selections. Whole-catalog queues remain active; HD stays optional. Render reachability is recorded separately.", + "status": "5407 reviewed original picture frames registered as complete families or explicit standalone Terrain selections. Whole-catalog queues remain active; HD stays optional. Render reachability is recorded separately.", "rejected_variants": [ { "file": "light-player-bank-0-hd-v1.png", @@ -20946,6 +20946,370 @@ "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-remaining-2039a-source-first-currentB-independent-whole-material-peer-20261017/INDEPENDENT-COMPLETE1-2039A-SOURCE-FIRST-CURRENTB-WHOLE-MATERIAL-REVIEW.json", "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-remaining-2039a-source-first-currentB-independent-whole-material-peer-20261017/INDEPENDENT-COMPLETE1-2039A-SOURCE-FIRST-CURRENTB-WHOLE-MATERIAL-REVIEW.json", "frame_bindings_sha256": "7b2760050a64936d9e7b9997892b5983e61fb0f525ecbb5f2af81287067ca09f" + }, + { + "job_id": "coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1", + "assets": [ + "40435", + "40436", + "40437", + "40438", + "40439", + "4043a", + "4043b", + "4043c", + "4043d", + "4043e", + "4043f", + "40440", + "40441", + "40442", + "40443", + "40444" + ], + "frames": 16, + "metadata": "hd.json", + "detail": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/candidate.json", + "coordinator_review": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/coordinator-review.json", + "runtime_qa": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/runtime-qa.json", + "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-enemies40435-40444-complete16-independent-hybrid-material-review-20261017/CLOSED-DIFFERENT-COMPLETE16-40435-40444-SOURCE-MATERIAL-AND-40444-EXACT10-HYBRID-REVIEW.json", + "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-enemies40435-40444-currentC128-independent-physical-context-review-20261017/CLOSED-DIFFERENT-COMPLETE16-CURRENTC128-CONTEXT17-ORDERED-AND16-COMPONENT-PHYSICAL-REVIEW.json", + "frame_bindings_sha256": "15171ccff99fed30f702b367a2b6f85cc7a84b86eb8ccf875619ff5477f28d86" + }, + { + "job_id": "terrain-20391-source-first-complete1-currentC-final-20261017", + "assets": [ + "20391" + ], + "frames": 1, + "metadata": "hd.json", + "detail": "jobs/terrain-20391-source-first-complete1-currentC-final-20261017/candidate.json", + "coordinator_review": "jobs/terrain-20391-source-first-complete1-currentC-final-20261017/coordinator-review.json", + "runtime_qa": "jobs/terrain-20391-source-first-complete1-currentC-final-20261017/runtime-qa.json", + "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-independent-source-material-peer-20261017-v1/INDEPENDENT-FOUR-SOURCE-FIRST-ROAD-SINGLETON-CURRENT-C-WHOLE-MATERIAL-REVIEW.json", + "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-three-genuine-context-independent-peer-20261017-v1/INDEPENDENT-FOUR-ROAD-SINGLETONS-THREE-GENUINE-CURRENT-C-ALLSCALE-CONTEXT-REVIEW.json", + "frame_bindings_sha256": "216d08abcb27d2e3b8bd2a40bab5a38b3b0fc4d96c0a75b5ee25551799edc729" + }, + { + "job_id": "terrain-20392-source-first-complete1-currentC-final-20261017", + "assets": [ + "20392" + ], + "frames": 1, + "metadata": "hd.json", + "detail": "jobs/terrain-20392-source-first-complete1-currentC-final-20261017/candidate.json", + "coordinator_review": "jobs/terrain-20392-source-first-complete1-currentC-final-20261017/coordinator-review.json", + "runtime_qa": "jobs/terrain-20392-source-first-complete1-currentC-final-20261017/runtime-qa.json", + "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-independent-source-material-peer-20261017-v1/INDEPENDENT-FOUR-SOURCE-FIRST-ROAD-SINGLETON-CURRENT-C-WHOLE-MATERIAL-REVIEW.json", + "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-three-genuine-context-independent-peer-20261017-v1/INDEPENDENT-FOUR-ROAD-SINGLETONS-THREE-GENUINE-CURRENT-C-ALLSCALE-CONTEXT-REVIEW.json", + "frame_bindings_sha256": "587b85ea896eda1fa79c73e152ce34c8dfb6ff25c3e89d8bf8966ca7020bfb7b" + }, + { + "job_id": "terrain-20393-source-first-complete1-currentC-final-20261017", + "assets": [ + "20393" + ], + "frames": 1, + "metadata": "hd.json", + "detail": "jobs/terrain-20393-source-first-complete1-currentC-final-20261017/candidate.json", + "coordinator_review": "jobs/terrain-20393-source-first-complete1-currentC-final-20261017/coordinator-review.json", + "runtime_qa": "jobs/terrain-20393-source-first-complete1-currentC-final-20261017/runtime-qa.json", + "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-independent-source-material-peer-20261017-v1/INDEPENDENT-FOUR-SOURCE-FIRST-ROAD-SINGLETON-CURRENT-C-WHOLE-MATERIAL-REVIEW.json", + "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-three-genuine-context-independent-peer-20261017-v1/INDEPENDENT-FOUR-ROAD-SINGLETONS-THREE-GENUINE-CURRENT-C-ALLSCALE-CONTEXT-REVIEW.json", + "frame_bindings_sha256": "3ec4ceb12af1a152021265d90b50b786536b6aa551ef409c4079f04b8d25c367" + }, + { + "job_id": "terrain-20394-source-first-complete1-currentC-final-20261017", + "assets": [ + "20394" + ], + "frames": 1, + "metadata": "hd.json", + "detail": "jobs/terrain-20394-source-first-complete1-currentC-final-20261017/candidate.json", + "coordinator_review": "jobs/terrain-20394-source-first-complete1-currentC-final-20261017/coordinator-review.json", + "runtime_qa": "jobs/terrain-20394-source-first-complete1-currentC-final-20261017/runtime-qa.json", + "review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-independent-source-material-peer-20261017-v1/INDEPENDENT-FOUR-SOURCE-FIRST-ROAD-SINGLETON-CURRENT-C-WHOLE-MATERIAL-REVIEW.json", + "independent_review": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-iron5-road20391-20394-currentC-three-genuine-context-independent-peer-20261017-v1/INDEPENDENT-FOUR-ROAD-SINGLETONS-THREE-GENUINE-CURRENT-C-ALLSCALE-CONTEXT-REVIEW.json", + "frame_bindings_sha256": "9b70892aec1e11110461987f41ef996d83e99df6d63614e309b45840d8e2ea54" + }, + { + "job_id": "terrain-2057d-2058c-final3-retained-original-actualC-20261017", + "assets": [ + "2057d", + "20585", + "20586" + ], + "frames": 3, + "metadata": "hd.json", + "detail": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/provenance.json", + "coordinator_review": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/coordinator-review.json", + "runtime_qa": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/runtime-qa.json", + "review": true, + "independent_review": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-full-hardware3-actualC-ten-saved-context-independent-physical-review-20261017/QUALIFIED-DIFFERENT-ACTUALC-2057D-20585-20586-TEN-SAVED-CONTEXT-PHYSICAL-REVIEW.json", + "sha256": "06c0c8c62f3d65e5721d17f8bc4563e61b2b68cbee5661959a00165d94e2d357", + "size": 14874, + "mtime_ns": 1792225700308240634, + "mode": 33188 + }, + "frame_bindings_sha256": "e656385c0ed2bc4b52d69715b1df9b2491237b99d306b135e734060fff661ffd", + "approval_scope": "complete_standalone_terrain_selection_with_unchanged_registered_siblings", + "original_fallback_assets": [ + "2057f", + "20581", + "20582", + "20588", + "2058b", + "2058c" + ], + "full_inventory": [ + "2057d", + "2057e", + "2057f", + "20580", + "20581", + "20582", + "20583", + "20584", + "20585", + "20586", + "20587", + "20588", + "20589", + "2058a", + "2058b", + "2058c" + ], + "carried_registered_assets": [ + "2057e", + "20580", + "20583", + "20584", + "20587", + "20589", + "2058a" + ], + "carried_registered_identity": { + "contract_version": "standalone-terrain-carried-identity-v2", + "baseline": { + "path": "hd.json", + "sha256": "b434f54258c9c82a20766d3801a5ba7e01e412975a9d4c3aa78e8ebc6607630b", + "size": 2760091, + "mtime_ns": 1792223783432469977, + "mode": 33152 + }, + "provenance": { + "path": "provenance.json", + "sha256": "7dbaa5c1977bf0d28289bdf9a7807d1c3cb4d5ef74f18544512a928dfff564f0", + "size": 1738909, + "mtime_ns": 1792223783338472130, + "mode": 33152 + }, + "frame_bindings_sha256": "294f58940636314df7f1ac979ff4bc70dc68a8d9440cd28326d778288b6e4be8", + "frames": { + "2057e": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/atlas-v2.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "1c27014c2180767ae2e14cd5a334bcc526028f5ea0194185caf378b311d79e96", + "crop": [ + 314, + 0, + 313, + 313 + ] + }, + "source_sha256": "1c27014c2180767ae2e14cd5a334bcc526028f5ea0194185caf378b311d79e96", + "raw_sha256": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", + "registration_record_index": 554 + }, + "20580": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/atlas-v2.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "5d3eb9ac333f80c61bdd68751529637ebe8fc7a81125e571464766bc80fe1903", + "crop": [ + 941, + 0, + 313, + 313 + ] + }, + "source_sha256": "5d3eb9ac333f80c61bdd68751529637ebe8fc7a81125e571464766bc80fe1903", + "raw_sha256": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", + "registration_record_index": 554 + }, + "20583": { + "frame_binding": { + "crop": [ + 627, + 314, + 313, + 313 + ], + "file": "jobs/coordinator-20583-exact2-Original-native-post5341-B-compatible-20261017-v1/generated/9ce70352d1e2104b829b5a65355eb44b359ca1fa39cf017601b23a5cbb2d65ae.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 15, + 31 + ], + [ + 16, + 31 + ] + ], + "source_sha256": "52fa550065cef6c119236ed2ecacb38c8099424781e8c37334c82b93491ceda9" + }, + "source_sha256": "52fa550065cef6c119236ed2ecacb38c8099424781e8c37334c82b93491ceda9", + "raw_sha256": "9ce70352d1e2104b829b5a65355eb44b359ca1fa39cf017601b23a5cbb2d65ae", + "registration_record_index": 953 + }, + "20584": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/atlas-v2.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "6fbea005ac71bb4264fc920cc190fd82121edadda68b3c57017bd95ca1fce7a7", + "crop": [ + 941, + 314, + 313, + 313 + ] + }, + "source_sha256": "6fbea005ac71bb4264fc920cc190fd82121edadda68b3c57017bd95ca1fce7a7", + "raw_sha256": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", + "registration_record_index": 554 + }, + "20587": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/20587-v3.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "61179d1618871356a9d6ebfc150138c6bb7982f83bb1837e29a6e355744ea993", + "crop": [ + 0, + 0, + 1254, + 1254 + ] + }, + "source_sha256": "61179d1618871356a9d6ebfc150138c6bb7982f83bb1837e29a6e355744ea993", + "raw_sha256": "5cc80f6f3f8076ec8206995904dd84c0f2c115de6dd15040f44b0e8d68f77908", + "registration_record_index": 554 + }, + "20589": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/atlas-v2.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "1e3e7e618e143d4d0c40b24c18449b07f03161a90cd74f0f679c8fc1655fec77", + "crop": [ + 0, + 941, + 313, + 313 + ] + }, + "source_sha256": "1e3e7e618e143d4d0c40b24c18449b07f03161a90cd74f0f679c8fc1655fec77", + "raw_sha256": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", + "registration_record_index": 554 + }, + "2058a": { + "frame_binding": { + "frame": 0, + "file": "jobs/terrain-2057d-2058c/generated/atlas-v2.png", + "logical_width": 32, + "logical_height": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "84ca76d7d521946f6a7ce750f79f073a2235f891a13f9ef5739be37f13359520", + "crop": [ + 314, + 941, + 313, + 313 + ] + }, + "source_sha256": "84ca76d7d521946f6a7ce750f79f073a2235f891a13f9ef5739be37f13359520", + "raw_sha256": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", + "registration_record_index": 554 + } + }, + "registration_records": [ + { + "registration_record_index": 554, + "registration_record_sha256": "fb6ecef752a571f9cb24749faaf3a3a30dc88db58516f4d755f73e3ab76797df", + "assets": [ + "2057e", + "20580", + "20584", + "20587", + "20589", + "2058a" + ], + "frame_bindings_sha256": "8bd827ab7a96f3cf76e9c0fb41328094554199a53b94800f7c53b0c649fd534c", + "accepted_runtime_qa": { + "path": "/home/quintine/Projects/RaptorReplica/data/hd/registered-class-review/batch-4742-final-successor-metadata/terrain-2057d-2058c/runtime-qa-current7b-exact-component-alias.json", + "sha256": "1b4bc5cd27775b22dd8e78845a359c8ad234c5852b6515ef9a0d410996aeba31", + "size": 54271, + "mtime_ns": 1791794081386833658, + "mode": 33188 + } + }, + { + "registration_record_index": 953, + "registration_record_sha256": "fb7099fb85d62a61f7d93f6a0908dc9e92e1123f905c8ed41ba601c73ce5b989", + "assets": [ + "20583" + ], + "frame_bindings_sha256": "03671620fffda52806cb8a682a10ea2883ae4d1ad12e0ee45267d554396ed9e6", + "accepted_runtime_qa": { + "path": "jobs/coordinator-20583-exact2-Original-native-post5341-B-compatible-20261017-v1/runtime-qa.json", + "sha256": "a4048d84d5f1325e8dc77ae04f14d577fdc1ce24a8869e54bfffcd80d3020362", + "size": 5490, + "mtime_ns": 1792222012721045108, + "mode": 33188 + } + } + ] + } } ], "jobs": [ @@ -21045,8 +21409,8 @@ "coverage_added": 0 } }, - "registered_frame_count": 5384, - "registration_updated_at_utc": "2026-10-17T07:56:23.323195+00:00", + "registered_frame_count": 5407, + "registration_updated_at_utc": "2026-10-17T08:57:20.037753+00:00", "runtime_validation": { "registered_snapshot_frames": 4978, "frames": 4978, diff --git a/docs/hd-backlog.md b/docs/hd-backlog.md index 4f56d7eb..8ae9bd02 100644 --- a/docs/hd-backlog.md +++ b/docs/hd-backlog.md @@ -1,6 +1,10 @@ # Original artwork HD backlog -The external and assembled shared runtime pack contains **5,384 reviewed original picture frames / 3,551 complete sequences**, including **4,275 Terrain pictures**. **369 of 5,753 original pictures remain**: 260 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. This six-frame append adds Boss 200ba, Terrain 2039a and the complete four-frame TANK03G3 family 3007c–3007f in three native sequences / three unchanged raw PNGs. Five hybrid frames explicitly retain 207 Original logical cells: 11 in 200ba and 50/48/49/49 across Tank phases; those cells are not generated HD. All previous 5,378 bindings and the full 3,548-header prefix remain exact, including canvas, origin, crop and optional-field presence. The assembled data contains **9,335 files / 8,179,315,857 bytes**. Actual CLI validates all 5,384 frames with zero rejects and 45 mods/one override (`2f3ab585`). Source18 and both binaries remain unchanged at API-B; future Source-C work is not the current runtime. Different reviews cover one genuine 200ba pose, all four naturally observed Tank phases and exactly two 2039a contexts; no all-placement or seamless-road claim follows. Visible 2039a edge and texture steps remain qualified, and the other 14 road tiles remain held. Previous 5,378 publication is remote-confirmed at `9ba0a5c7`. Native Windows 5,341 passed 360 tests with zero failures and 26 ignored; the separate campaign c4a4 run's old-test failure is preserved, while the 58723547 correction's native Windows workflow is still packaging. Publication and native Windows execution for 5,384 remain pending. Neither Windows result is relabeled as 5,378/5,384 execution; full HD completion remains open. +Current artwork/runtime checkpoint — 17 October 2026: the registered and assembled pack contains **5,407 frames / 3,574 complete sequences**, including **4,298 Terrain pictures**. **346 originals remain**: 237 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. Remaining means not approved for HD registration, including held drafts and actual refusals, rather than never generated. The 23 Terrain additions are complete native singletons 40435–40444, 20391–20394, 2057d, 20585 and 20586 across six jobs. Their 21 raw routes comprise 20 copied new payloads and one exact alias of existing 9ce; four hybrid frames retain 118 declared Original logical cells, which are not generated HD. All prior 5,384 bindings and 3,551 full headers remain exact. Actual data contains **9,356 files / 8,245,392,052 bytes**; Root's CLI validates 5,407 frames with zero rejects and 45 mods/one override (`8c9f3893`). Source18 and both executables remain Source C+D from published `a073f73f`, distinct from API-B. Saved context reviews cover 128 current-C cases for 40435–40444 plus 17 ordered pairs, three road contexts and seven hardware contexts (three carried/four changed); 40440 is unused/gallery-only. All six directed cross-group Source intersections are empty within those saved 128/3/7 inputs. This does not establish seamlessness, all placements or full-HD completion. Three actual 5,407 SDL controls at 1080p/HD4x match frozen C5,384 exactly across 6,220,800 RGB/alpha pixels; these controls contain none of the new 23 frames. Source-C native Windows at `a073f73f` passed 379 tests with 26 ignored and zero failures; prior API-B 5,384 evidence (361 passed/26 ignored/zero failed) is separate. The 5,407 Git publication and native Windows execution remain pending. The following 5,384 source-update and older art observations remain dated history. + +Preserved 17 October 2026 Source-update checkpoint at 5,384 (historical coverage): Current Source C+D runtime — 17 October 2026, published `a073f73f`: HD coverage remains **5,384 frames / 3,551 sequences**, with **369 originals remaining** (260 Terrain, 75 enemies/ground objects, 33 UI/other, one boss). Both executables are rebuilt; 90 Rust / 78 Python tests, HD validation and three exact 1080p regression controls pass. Five old Rust checks remain ignored. Source C+D native Windows CI is pending; the prior `58723547` result (361 passed / 26 ignored / zero failed) is a different epoch. Earlier material, context and QA records below remain historical; this source update adds no art approval. + +Preserved pre-Source-C document-freeze observation: The external and assembled shared runtime pack contains **5,384 reviewed original picture frames / 3,551 complete sequences**, including **4,275 Terrain pictures**. **369 of 5,753 original pictures remain**: 260 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. This six-frame append adds Boss 200ba, Terrain 2039a and the complete four-frame TANK03G3 family 3007c–3007f in three native sequences / three unchanged raw PNGs. Five hybrid frames explicitly retain 207 Original logical cells: 11 in 200ba and 50/48/49/49 across Tank phases; those cells are not generated HD. All previous 5,378 bindings and the full 3,548-header prefix remain exact, including canvas, origin, crop and optional-field presence. The assembled data contains **9,335 files / 8,179,315,857 bytes**. Actual CLI validates all 5,384 frames with zero rejects and 45 mods/one override (`2f3ab585`). Source18 and both binaries remain unchanged at API-B; future Source-C work is not the current runtime. Different reviews cover one genuine 200ba pose, all four naturally observed Tank phases and exactly two 2039a contexts; no all-placement or seamless-road claim follows. Visible 2039a edge and texture steps remain qualified, and the other 14 road tiles remain held. Previous 5,378 publication is remote-confirmed at `9ba0a5c7`. Native Windows 5,341 passed 360 tests with zero failures and 26 ignored; the separate campaign c4a4 run's old-test failure is preserved, while the 58723547 correction's native Windows workflow is still packaging. Publication and native Windows execution for 5,384 remain pending. Neither Windows result is relabeled as 5,378/5,384 execution; full HD completion remains open. Preserved earlier 17 October 2026 document-freeze observation: The external and assembled shared runtime pack contains **5,378 reviewed original picture frames / 3,548 complete sequences**, including **4,274 Terrain pictures**. **375 of 5,753 original pictures remain**: 261 Terrain, 79 enemies/ground objects, 33 UI/other and two bosses. The 37 additions comprise 30 selected Terrain pictures, Terrain 20583, UI/other 3009f and 300a4, and the complete four-frame DSHP21G3 family 300a8–300ab. Seven hybrid frames explicitly retain 37 Original logical cells; those cells are not generated HD. All previous 5,341 bindings and the full 3,514-header prefix remain exact, as do native canvases, origins, crops and optional-field presence. The assembled data contains **9,332 files / 8,171,723,875 bytes**. Actual CLI validation passes all 5,378 frames with zero rejects and 45 mods/one override (`e1cb3b4a`). Source18 and both bundled binaries remain unchanged at API-B. Historical386e artwork/context measurements retain their own epoch. The 15 road tiles remain held; pending 200ba, further Tank work and the new 2039a context are outside this append. Git publication and native Windows execution for 5,378 remain pending; the 5,341 Windows workflow is still packaging at this freeze. No complete-HD claim is made. @@ -48,7 +52,7 @@ The published 3,592-frame admission adds **427 source/material-qualified origina | Player and enemy projectiles | 51 | 51 | 0 | 18 | | Explosions and effects | 281 | 281 | 0 | 25 | | Equipment and pickups | 47 | 47 | 0 | 23 | -| Terrain | 4,535 | 4,275 | 260 | 4 | +| Terrain | 4,535 | 4,298 | 237 | 4 | | Menus, portraits, HUD and other pictures | 150 | 117 | 33 | mixed static / animated | The completion ledger retains `format_version: 1` with `ledger_schema: family_review_refs_v1`. Each approved asset uses a stable `coordinator_review_ref`; `family_reviews` stores the candidate/binding identities and exact full immutable external receipt once. The original 2,132 normalization reduced 53,594,880 bytes to 8,406,611 (84.31%) without changing approval or artwork. New registrations update only their own status/evidence; native preservation has a separate closed record. diff --git a/docs/hd-completion.json b/docs/hd-completion.json index 24e37c5c..3fd659d2 100644 --- a/docs/hd-completion.json +++ b/docs/hd-completion.json @@ -19,10 +19,10 @@ ], "stage_contract": "Every generated candidate stays distinct from review, registration and render reachability. Original-only fallback is temporary for every required picture. Native cinematics/fonts have explicit preservation exceptions, not HD claims.", "picture_status_counts": { - "registered": 5364, - "inprogress": 125, + "registered": 5387, + "inprogress": 122, "renderreachable": 20, - "candidate": 242, + "candidate": 222, "missing": 2 }, "assets": { @@ -83013,7 +83013,7 @@ "canonical_source_asset": "20391", "family_id": "terrain-2038d-2039c", "job_id": "terrain-2038d-2039c", - "status": "candidate", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -83029,7 +83029,8 @@ "manifest": "jobs/terrain-2038d-2039c/candidate.json", "sha256": "aaf2344557b1d146478f0dcd9c1ffd5392a08fad6e90bc3114e6ca4ca788ce24", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20392": { "kind": "picture", @@ -83050,7 +83051,7 @@ "canonical_source_asset": "20392", "family_id": "terrain-2038d-2039c", "job_id": "terrain-2038d-2039c", - "status": "candidate", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -83066,7 +83067,8 @@ "manifest": "jobs/terrain-2038d-2039c/candidate.json", "sha256": "aaf2344557b1d146478f0dcd9c1ffd5392a08fad6e90bc3114e6ca4ca788ce24", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20393": { "kind": "picture", @@ -83087,7 +83089,7 @@ "canonical_source_asset": "20393", "family_id": "terrain-2038d-2039c", "job_id": "terrain-2038d-2039c", - "status": "candidate", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -83103,7 +83105,8 @@ "manifest": "jobs/terrain-2038d-2039c/candidate.json", "sha256": "aaf2344557b1d146478f0dcd9c1ffd5392a08fad6e90bc3114e6ca4ca788ce24", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20394": { "kind": "picture", @@ -83124,7 +83127,7 @@ "canonical_source_asset": "20394", "family_id": "terrain-2038d-2039c", "job_id": "terrain-2038d-2039c", - "status": "candidate", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -83140,7 +83143,8 @@ "manifest": "jobs/terrain-2038d-2039c/candidate.json", "sha256": "aaf2344557b1d146478f0dcd9c1ffd5392a08fad6e90bc3114e6ca4ca788ce24", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20395": { "kind": "picture", @@ -101416,7 +101420,7 @@ "canonical_source_asset": "2057d", "family_id": "terrain-2057d-2058c", "job_id": "terrain-2057d-2058c", - "status": "inprogress", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -101427,7 +101431,8 @@ "RustRaptor/tests/hd_terrain.rs", ".reference/terrain-hd/shoreline-draft-context-proof.png" ] - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "2057e": { "kind": "picture", @@ -101688,7 +101693,7 @@ "canonical_source_asset": "20585", "family_id": "terrain-2057d-2058c", "job_id": "terrain-2057d-2058c", - "status": "inprogress", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -101699,7 +101704,8 @@ "RustRaptor/tests/hd_terrain.rs", ".reference/terrain-hd/shoreline-draft-context-proof.png" ] - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20586": { "kind": "picture", @@ -101720,7 +101726,7 @@ "canonical_source_asset": "20586", "family_id": "terrain-2057d-2058c", "job_id": "terrain-2057d-2058c", - "status": "inprogress", + "status": "registered", "owner": "/root/hd_terrain_set_2", "remaster_required": true, "registry_or_layout_referenced": true, @@ -101731,7 +101737,8 @@ "RustRaptor/tests/hd_terrain.rs", ".reference/terrain-hd/shoreline-draft-context-proof.png" ] - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "20587": { "kind": "picture", @@ -200117,7 +200124,7 @@ "canonical_source_asset": "40435", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200133,7 +200140,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40436": { "kind": "picture", @@ -200154,7 +200162,7 @@ "canonical_source_asset": "40436", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200170,7 +200178,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40437": { "kind": "picture", @@ -200191,7 +200200,7 @@ "canonical_source_asset": "40437", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200207,7 +200216,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40438": { "kind": "picture", @@ -200228,7 +200238,7 @@ "canonical_source_asset": "40438", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200244,7 +200254,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40439": { "kind": "picture", @@ -200265,7 +200276,7 @@ "canonical_source_asset": "40439", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200281,7 +200292,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043a": { "kind": "picture", @@ -200302,7 +200314,7 @@ "canonical_source_asset": "4043a", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200318,7 +200330,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043b": { "kind": "picture", @@ -200339,7 +200352,7 @@ "canonical_source_asset": "4043b", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200355,7 +200368,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043c": { "kind": "picture", @@ -200376,7 +200390,7 @@ "canonical_source_asset": "4043c", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200392,7 +200406,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043d": { "kind": "picture", @@ -200413,7 +200428,7 @@ "canonical_source_asset": "4043d", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200429,7 +200444,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043e": { "kind": "picture", @@ -200450,7 +200466,7 @@ "canonical_source_asset": "4043e", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200466,7 +200482,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "4043f": { "kind": "picture", @@ -200487,7 +200504,7 @@ "canonical_source_asset": "4043f", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200503,7 +200520,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40440": { "kind": "picture", @@ -200524,7 +200542,7 @@ "canonical_source_asset": "40440", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": false, @@ -200540,7 +200558,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40441": { "kind": "picture", @@ -200561,7 +200580,7 @@ "canonical_source_asset": "40441", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200577,7 +200596,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40442": { "kind": "picture", @@ -200598,7 +200618,7 @@ "canonical_source_asset": "40442", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200614,7 +200634,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40443": { "kind": "picture", @@ -200635,7 +200656,7 @@ "canonical_source_asset": "40443", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200651,7 +200672,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40444": { "kind": "picture", @@ -200672,7 +200694,7 @@ "canonical_source_asset": "40444", "family_id": "terrain-40435-40444", "job_id": "terrain-40435-40444", - "status": "candidate", + "status": "registered", "owner": "/root/campaign_release_review", "remaster_required": true, "registry_or_layout_referenced": true, @@ -200688,7 +200710,8 @@ "manifest": "jobs/terrain-40435-40444/candidate.json", "sha256": "c4460d78abc6784d9fc3f7465bffa0a4febdcc47d70b9fa8d6a85e6c4f56be0e", "validation_scope": "source-bound metadata, target ownership and artwork file presence; artistic/PNG/runtime review is separate" - } + }, + "coordinator_review_ref": "qualified23-native5407" }, "40445": { "kind": "picture", @@ -234632,6 +234655,1074 @@ "Earlier plain/road cohort holds preserved. All six metadata frames are distinct from previous37. No new artwork, pixels, kernel, QA, renderer, compiler, World, registrar main, canonical or Git operation." ], "earlier_plain_and_other14_road_HOLDs_preserved": true + }, + "qualified23-native5407": { + "status": "REGISTERED_ACTUAL_CURRENTC_QUALIFIED23_NATIVE_APPEND", + "selected_assets": [ + "20391", + "20392", + "20393", + "20394", + "2057d", + "20585", + "20586", + "40435", + "40436", + "40437", + "40438", + "40439", + "4043a", + "4043b", + "4043c", + "4043d", + "4043e", + "4043f", + "40440", + "40441", + "40442", + "40443", + "40444" + ], + "registration": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/closed-actual23-canonical-native5407-registration-proof.json", + "sha256": "f49cbba6849ed7a75f4debabe985caa19804b327a0e4782f0a28fbcf30e304d5", + "bytes": 80130 + }, + "full23_native_sequence_headers": [ + { + "base_asset": 263221, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "1d5ab223b35e2fb960c026fd46da5ade7495e0e92d87380cfa8fe0be838978be" + } + ], + "name": "canonical-40435" + }, + { + "base_asset": 263222, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "68f3e4677271de68a69dd1b1a99f8e972d258453255306745a5bca5b2beb6aba" + } + ], + "name": "canonical-40436" + }, + { + "base_asset": 263223, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "f14da7e583df369d05dcedf8bae84b87ce95fa26d027da51d065af008351652b" + } + ], + "name": "canonical-40437" + }, + { + "base_asset": 263224, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "3e114bf9ebefb28c4e389371db5050bd6b7407952dcc5a600b8a7d3d31a69131" + } + ], + "name": "canonical-40438" + }, + { + "base_asset": 263225, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "84bd43abe1776470d0918d7334b1158dd4c9cd8886f02627392aae1a519bf283" + } + ], + "name": "canonical-40439" + }, + { + "base_asset": 263226, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "f0ad3d82a90d7188dd768ea70015a6f24a334b7a2306f77471408183f4a275ac" + } + ], + "name": "canonical-4043a" + }, + { + "base_asset": 263227, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "0238c6f3f638606ac36e1a58cb7cd65288d721060c100f7b07d440bfaff650bd" + } + ], + "name": "canonical-4043b" + }, + { + "base_asset": 263228, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "01294d1dcc12899e310715abcef847bc06e1f573e07dd320c85781751458624a" + } + ], + "name": "canonical-4043c" + }, + { + "base_asset": 263229, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "25bb3a41e7db3b887e3286356a5c3525033c31def0d5abb16f593e622cf63aac" + } + ], + "name": "canonical-4043d" + }, + { + "base_asset": 263230, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "01cb0d00b39f6dfc5085c7bec8e3fdc393ada5a54c86462a53f1ee7d2438fa14" + } + ], + "name": "canonical-4043e" + }, + { + "base_asset": 263231, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "a83588688b582c84504721d158f9f23e1b7b70d4a91d769c88524bc0b373310f" + } + ], + "name": "canonical-4043f" + }, + { + "base_asset": 263232, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "cada73d67a3853f7edffc65210b691fe15e2fa9618bf9573dc0307bccc1ee2e4" + } + ], + "name": "canonical-40440" + }, + { + "base_asset": 263233, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "6f18c5f997a688959d28a2379d49f98a754f2f87c413361091fc457d812a1378" + } + ], + "name": "canonical-40441" + }, + { + "base_asset": 263234, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "28a93cdacf601653207dd78d48657b06bc0ea655c533b4138dfb59c7de941331" + } + ], + "name": "canonical-40442" + }, + { + "base_asset": 263235, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "2b0c5a2a51972572819629b8690950f688170fdaf1d0a6360cf97cc9a844be83" + } + ], + "name": "canonical-40443" + }, + { + "base_asset": 263236, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 1254, + 1254 + ], + "file": "jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 21, + 1 + ], + [ + 21, + 3 + ], + [ + 21, + 21 + ], + [ + 21, + 23 + ], + [ + 21, + 25 + ], + [ + 21, + 27 + ], + [ + 22, + 2 + ], + [ + 22, + 22 + ], + [ + 22, + 24 + ], + [ + 22, + 26 + ] + ], + "source_sha256": "b2635bd174979b6a4078eb59ee6de2a3dfbc5f4c23b6773201daa578132488be" + } + ], + "name": "canonical-40444" + }, + { + "base_asset": 131985, + "frame_count": 1, + "frames": [ + { + "file": "jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "ca0c6444be4f0d60e8dc1dfd86d706423f980da860991b9f7b0123a355460ac6" + } + ], + "name": "Terrain 20391 Source-first muted brown singleton" + }, + { + "base_asset": 131986, + "frame_count": 1, + "frames": [ + { + "file": "jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "63aa24ff5317e5f79234c0815d7c5a02a30c16a445398947d03f8fe162f21563" + } + ], + "name": "Terrain 20392 Source-first muted brown singleton" + }, + { + "base_asset": 131987, + "frame_count": 1, + "frames": [ + { + "file": "jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "8974df709eeb792f3494e85d8180eeb7d5839366ac177f093e691a7f8b208cd2" + } + ], + "name": "Terrain 20393 Source-first muted brown singleton" + }, + { + "base_asset": 131988, + "frame_count": 1, + "frames": [ + { + "file": "jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "source_sha256": "23678e19a8a1ecb576df516e31a99813856a8510dae2acb3f456334c11d93b54" + } + ], + "name": "Terrain 20394 Source-first muted brown singleton" + }, + { + "base_asset": 132477, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 0, + 313, + 313 + ], + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 5, + 30 + ], + [ + 5, + 31 + ], + [ + 6, + 30 + ], + [ + 6, + 31 + ], + [ + 7, + 30 + ], + [ + 7, + 31 + ], + [ + 8, + 30 + ], + [ + 8, + 31 + ], + [ + 9, + 30 + ], + [ + 9, + 31 + ], + [ + 10, + 30 + ], + [ + 10, + 31 + ], + [ + 11, + 30 + ], + [ + 11, + 31 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 13, + 30 + ], + [ + 13, + 31 + ], + [ + 14, + 30 + ], + [ + 14, + 31 + ], + [ + 15, + 30 + ], + [ + 15, + 31 + ], + [ + 16, + 30 + ], + [ + 16, + 31 + ], + [ + 17, + 30 + ], + [ + 17, + 31 + ], + [ + 18, + 30 + ], + [ + 18, + 31 + ], + [ + 19, + 30 + ], + [ + 19, + 31 + ], + [ + 20, + 30 + ], + [ + 20, + 31 + ], + [ + 21, + 30 + ], + [ + 21, + 31 + ], + [ + 22, + 30 + ], + [ + 22, + 31 + ], + [ + 23, + 30 + ], + [ + 23, + 31 + ], + [ + 24, + 30 + ], + [ + 24, + 31 + ], + [ + 25, + 30 + ], + [ + 25, + 31 + ], + [ + 26, + 30 + ], + [ + 26, + 31 + ] + ], + "source_sha256": "bdf6237dbaab2339ba6952da5a860ea74fb0a5200b73ebbbe15d41cf1c312a94" + } + ], + "name": "Terrain2057d exact native complete1 from held inventory" + }, + { + "base_asset": 132485, + "frame_count": 1, + "frames": [ + { + "crop": [ + 0, + 627, + 313, + 313 + ], + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 0, + 31 + ], + [ + 1, + 31 + ], + [ + 2, + 31 + ], + [ + 3, + 31 + ], + [ + 4, + 31 + ], + [ + 5, + 31 + ], + [ + 6, + 31 + ], + [ + 7, + 31 + ], + [ + 8, + 31 + ], + [ + 9, + 31 + ], + [ + 10, + 31 + ], + [ + 11, + 31 + ], + [ + 12, + 31 + ], + [ + 13, + 31 + ], + [ + 14, + 31 + ], + [ + 15, + 31 + ], + [ + 16, + 31 + ], + [ + 17, + 31 + ], + [ + 18, + 31 + ], + [ + 19, + 31 + ], + [ + 20, + 31 + ], + [ + 21, + 31 + ], + [ + 22, + 31 + ], + [ + 23, + 31 + ], + [ + 24, + 31 + ], + [ + 25, + 31 + ], + [ + 26, + 31 + ], + [ + 27, + 31 + ], + [ + 28, + 31 + ], + [ + 29, + 31 + ], + [ + 30, + 31 + ], + [ + 31, + 31 + ] + ], + "source_sha256": "36503b7fd4169666d6746c5a09a95724493d2f48d4cf91dfa9c416d1bc76d511" + } + ], + "name": "Terrain20585 exact native complete1 from held inventory" + }, + { + "base_asset": 132486, + "frame_count": 1, + "frames": [ + { + "crop": [ + 314, + 627, + 313, + 313 + ], + "file": "jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png", + "frame": 0, + "logical_height": 32, + "logical_width": 32, + "origin": [ + 0, + 0 + ], + "original_detail_cells": [ + [ + 0, + 31 + ], + [ + 1, + 31 + ], + [ + 2, + 31 + ], + [ + 3, + 31 + ], + [ + 4, + 31 + ], + [ + 5, + 31 + ], + [ + 6, + 31 + ], + [ + 7, + 31 + ], + [ + 8, + 31 + ], + [ + 9, + 31 + ], + [ + 10, + 31 + ], + [ + 11, + 31 + ], + [ + 12, + 31 + ], + [ + 13, + 31 + ], + [ + 14, + 31 + ], + [ + 15, + 31 + ], + [ + 16, + 31 + ], + [ + 17, + 31 + ], + [ + 18, + 31 + ], + [ + 19, + 31 + ], + [ + 20, + 31 + ], + [ + 21, + 31 + ], + [ + 22, + 31 + ], + [ + 23, + 31 + ], + [ + 24, + 31 + ], + [ + 25, + 31 + ], + [ + 26, + 31 + ], + [ + 27, + 31 + ], + [ + 28, + 31 + ], + [ + 29, + 31 + ], + [ + 30, + 31 + ], + [ + 31, + 31 + ] + ], + "source_sha256": "46ef4c08c6ec5e0eb162aead85dd1cfaf6f39c9792bb386d36d82da77a7852d7" + } + ], + "name": "Terrain20586 exact native complete1 from held inventory" + } + ], + "four_hybrid_Original_cells_not_generated_HD": true, + "retained_Original_cell_counts": { + "2057d": 44, + "20585": 32, + "20586": 32, + "40444": 10 + }, + "finite_context_noninterference": { + "device": 55, + "inode": 5458478, + "mode": 33188, + "mtime_ns": 1792227438305595635, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/CLOSED-ACTUAL-FINITE23-CROSSGROUP-SOURCE-NATIVE-NONINTERFERENCE-PROOF.json", + "sha256": "0b007ef6cce7d1f91745530edefb76b317cc14163e7532d9a08c019a22eabea0", + "size": 182713 + }, + "six_jobs": [ + "coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1", + "terrain-20391-source-first-complete1-currentC-final-20261017", + "terrain-20392-source-first-complete1-currentC-final-20261017", + "terrain-20393-source-first-complete1-currentC-final-20261017", + "terrain-20394-source-first-complete1-currentC-final-20261017", + "terrain-2057d-2058c-final3-retained-original-actualC-20261017" + ], + "scope": "Saved current-C128/3/7 Source/context groups only;17ordered404pairs, gallery-only40440. No all-placement/seamless/artwork or fullHD reapproval." } }, "native_preservation_reviews": { @@ -242036,6 +243127,334 @@ "remote5384_publication_claimed": false, "native_Windows5384_execution_claimed": false, "Source_C_future_not_current": true + }, + "current_source_runtime": { + "checkpoint_utc": "2026-10-17T08:23:19.688796+00:00", + "status": "PUBLISHED_SOURCE_C_PLUS_D_HD5384_NATIVE_WINDOWS_CI_PENDING", + "remote_confirmed_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "coverage_unchanged": { + "registered_frames": 5384, + "complete_sequences": 3551, + "terrain_frames": 4275, + "remaining_original_pictures": 369, + "remaining_by_category": { + "terrain": 260, + "enemies_ground_objects": 75, + "UI_other": 33, + "bosses": 1 + }, + "bundled_data_files": 9335, + "bundled_data_bytes": 8179315857 + }, + "source_sha256": { + "src/hd.rs": "620775bed25983250b843bafcdd4ffdfd1ef2ec8f0c8b934606c830de38328c2", + "src/terrain_hd.rs": "1b0d9722dff556b701185dcc0bb725482f5426db2aef2d2b256fd94831b8a92d" + }, + "other16_source_files_equal_API_B": true, + "binary_sha256": { + "Linux": "499d450e94c1a3d62d94e4002afbc76fcc4fcfd33ec6b84ca99946f58de078d3", + "Windows": "449ef2ac6d6a117092bdac276776798d238fa6eea8428668c31098e63a476bc7" + }, + "compiled_library_sha256": "72415dcee8598261ed13ce6c9f1931d06317c532fa0ce4aa9f2926508f4cd60e", + "compiled_epoch": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/compiled-epoch.json", + "sha256": "9f5e46c928062016bef26bda8d48160bed91d02f0d3089d9c62b3b20365bf7ed" + }, + "validation": { + "Rust_passed": 90, + "Rust_failed": 0, + "Rust_preexisting_ignored": 5, + "Python_passed": 78, + "HD_registered": 5384, + "HD_validated": 5384, + "HD_rejected": 0, + "original_catalog_entries": 6449, + "mods_validated": 45, + "mod_overrides": 1, + "three_actual_SDL_controls": { + "presentation_dimensions": [ + 1920, + 1080 + ], + "cases": [ + "main-menu", + "original-S1W7-HD", + "original-S3W9-HD" + ], + "compared_pixels": 6220800, + "changed_RGB_pixels": 0, + "changed_alpha_pixels": 0, + "PNG_bytes_equal": true, + "scope": "Three deterministic fresh API-B versus Source C+D controls; not all maps, artwork, actors or hybrid contexts." + } + }, + "native_Windows": { + "current_Source_C_D_CI_status": "pending", + "current_Source_C_D_native_success_claimed": false, + "Windows_executable_cross_compiled_and_PE_checked": true, + "prior_58723547_result": { + "commit_prefix": "58723547", + "passed": 361, + "ignored": 26, + "failed": 0, + "scope": "Prior source epoch only; not relabeled Source C+D execution." + } + }, + "evidence": { + "remote_confirmation": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/root-source-publication-remote-confirmation.json", + "sha256": "7b7e48a0d5de71b3d3531c2fa9a79b72e48ea590817d7f781df6dbf0cfb4e0b2" + }, + "Root_review": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/root-reviewed-source-publication.json", + "sha256": "d98f2a72f2aa9b129a48d7def2716bc6299748361c889885789e17a0a28cab52" + }, + "Linux_and_focused_tests": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/FINAL-ACTUAL-SOURCE-C-LINUX-AND-FOCUSED-VALIDATION-RESULTS.json", + "sha256": "fcedea1de5b45afd26a33d30058d723a3592c14da7e27b2a8371e0cdf273e23d" + }, + "SDL_comparison": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5384-sourceC-SDL-three-controls-20261017-v2-unmanaged-X11/CLOSED-ACTUAL5384-SOURCE-C-PLUS-D-THREE-1080-SDL-REGRESSION-COMPARISON.json", + "sha256": "e6d3cc2ef39861f9116b070772954635945e021b1802488a7d0f13b335f781e0" + } + }, + "limits": [ + "No new HD artwork or hybrid admission; count and native headers are unchanged.", + "Old 8ada,386e and API-B material/context/QA records retain their literal source epochs; historical nested records are unchanged.", + "Full HD completion remains open." + ] + }, + "external5407": { + "status": "CLOSED_ACTUAL_EXACT23_CANONICAL5407_NATIVE_APPEND_RUNTIME_PUBLICATION_PENDING", + "frames": 5407, + "sequences": 3574, + "selected_assets": [ + "20391", + "20392", + "20393", + "20394", + "2057d", + "20585", + "20586", + "40435", + "40436", + "40437", + "40438", + "40439", + "4043a", + "4043b", + "4043c", + "4043d", + "4043e", + "4043f", + "40440", + "40441", + "40442", + "40443", + "40444" + ], + "new_frames": 23, + "registration": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/closed-actual23-canonical-native5407-registration-proof.json", + "sha256": "f49cbba6849ed7a75f4debabe985caa19804b327a0e4782f0a28fbcf30e304d5", + "bytes": 80130 + }, + "immutable_handoff": { + "path": "/home/quintine/Projects/RaptorReplica/data/hd/registered-class-review/handoff-5407-20261017/handoff-manifest.json", + "sha256": "72fd3d2fb42d9af44d143a2ca68eb1c408f649e63133c5835f8f12130da4720d", + "bytes": 3903198 + }, + "old3551_full_header_prefix_and5384_bindings_exact": true, + "manifest": { + "device": 55, + "inode": 5458537, + "mode": 33152, + "mtime_ns": 1792227440145329340, + "path": "/home/quintine/Projects/RaptorReplica/data/hd/hd.json", + "sha256": "3467602938e915048aa0457f711bc45223edfc29f09ca2e2269937013fedc59d", + "size": 2782712 + }, + "provenance": { + "device": 55, + "inode": 5458536, + "mode": 33152, + "mtime_ns": 1792227440053331608, + "path": "/home/quintine/Projects/RaptorReplica/data/hd/provenance.json", + "sha256": "52fecba6b26492d697fc1bc7a92f9e04c8c4021a490a98892d78c3523c1e4166", + "size": 1754916 + }, + "native_header_and_review_ref": "qualified23-native5407", + "actual_SourceC_epoch": { + "device": 55, + "inode": 5452246, + "mode": 33188, + "mtime_ns": 1792224981500481642, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/compiled-epoch.json", + "sha256": "9f5e46c928062016bef26bda8d48160bed91d02f0d3089d9c62b3b20365bf7ed", + "size": 7390 + }, + "finite_context_noninterference": { + "device": 55, + "inode": 5458478, + "mode": 33188, + "mtime_ns": 1792227438305595635, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/CLOSED-ACTUAL-FINITE23-CROSSGROUP-SOURCE-NATIVE-NONINTERFERENCE-PROOF.json", + "sha256": "0b007ef6cce7d1f91745530edefb76b317cc14163e7532d9a08c019a22eabea0", + "size": 182713 + }, + "category_registered": { + "Menus, portraits, HUD and other pictures": 117, + "Bosses": 248, + "Enemies and ground objects": 344, + "Player banking": 21, + "Terrain": 4298, + "Explosions and effects": 281, + "Player and enemy projectiles": 51, + "Equipment and pickups": 47 + } + }, + "latest_artwork_runtime": { + "checkpoint_utc": "2026-10-17T09:05:19.806820+00:00", + "status": "ACTUAL_SOURCEC_ARTWORK5407_ASSEMBLY_AND_CLI_PASS_PUBLICATION_NATIVE_WINDOWS_PENDING", + "registered_frames": 5407, + "complete_sequences": 3574, + "terrain_frames": 4298, + "remaining_original_pictures": 346, + "remaining_by_category": { + "terrain": 237, + "enemies_ground_objects": 75, + "UI_other": 33, + "bosses": 1 + }, + "bundled_data_files": 9356, + "bundled_data_bytes": 8245392052, + "new_frames": 23, + "new_native_sequences": 23, + "jobs": 6, + "new_raw_routes": 21, + "new_payload_copies": 20, + "borrowed_existing_payload_aliases": 1, + "hybrid_frames": 4, + "explicit_retained_Original_cells": 118, + "Original_cells_not_generated_HD": true, + "source_runtime_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "source_epoch": { + "device": 55, + "inode": 5452246, + "mode": 33188, + "mtime_ns": 1792224981500481642, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/compiled-epoch.json", + "sha256": "9f5e46c928062016bef26bda8d48160bed91d02f0d3089d9c62b3b20365bf7ed", + "size": 7390 + }, + "Source18_and_both_binaries_equal_published_C_D": true, + "binary_sha256": { + "Linux": "499d450e94c1a3d62d94e4002afbc76fcc4fcfd33ec6b84ca99946f58de078d3", + "Windows": "449ef2ac6d6a117092bdac276776798d238fa6eea8428668c31098e63a476bc7" + }, + "old5384_bindings_and3551_header_prefix_exact": true, + "source_update_checkpoint5384_is_historical_coverage_not_latest_artwork": true, + "evidence": { + "registration": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/closed-actual23-canonical-native5407-registration-proof.json", + "sha256": "f49cbba6849ed7a75f4debabe985caa19804b327a0e4782f0a28fbcf30e304d5", + "bytes": 80130 + }, + "immutable_handoff": { + "path": "/home/quintine/Projects/RaptorReplica/data/hd/registered-class-review/handoff-5407-20261017/handoff-manifest.json", + "sha256": "72fd3d2fb42d9af44d143a2ca68eb1c408f649e63133c5835f8f12130da4720d", + "bytes": 3903198 + }, + "assembly": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/assembly-receipt.json", + "sha256": "3dad6576687ef1dafd743974ea3176f771ee701d307b58cd4156ea81402e2bc1", + "bytes": 858 + }, + "actual_CLI": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/cli-validation.json", + "sha256": "8c9f38935d026fe8cf3eb949ff54e38b6460ff52925728cecdb9d67341ee7843", + "bytes": 1625 + }, + "finite_noninterference": { + "device": 55, + "inode": 5458478, + "mode": 33188, + "mtime_ns": 1792227438305595635, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/CLOSED-ACTUAL-FINITE23-CROSSGROUP-SOURCE-NATIVE-NONINTERFERENCE-PROOF.json", + "sha256": "0b007ef6cce7d1f91745530edefb76b317cc14163e7532d9a08c019a22eabea0", + "size": 182713 + } + }, + "validation": { + "HD_validated": 5407, + "HD_rejected": 0, + "mods": 45, + "overrides": 1 + }, + "SDL_regression_controls": { + "report": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5407-currentC-three-SDL-controls-20261017-v1/CLOSED-ACTUAL5407-CURRENTC-THREE-SDL-REGRESSION-VERSUS-FROZEN-C5384.json", + "sha256": "15531ccfe2abfa2fcdf649eba27b5a6256c20904f5d46223d621b3edd5b84613", + "bytes": 10036 + }, + "strict": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5407-currentC-three-SDL-controls-20261017-v1-strict-three-actual-SDL-controls-closure.json", + "sha256": "db78c76a25a05f28779582f856da3b369dde7ea3b3743ab7f56622b7ee41f18c", + "bytes": 20159 + }, + "Root_personal_whole_view": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/root-physical-5407-three-SDL-review.json", + "sha256": "6d880836031ecf84eb749e4dd920a9bfcd713e2c12150ee9031ba45541255b74", + "bytes": 1510 + }, + "controls": 3, + "dimensions": [ + 1920, + 1080 + ], + "HD_scale": 4, + "pixels_compared": 6220800, + "RGB_and_alpha_changed_pixels": 0, + "new23_present_in_these_controls": false + }, + "native_Windows": { + "current_Source_C_D_status_at_freeze": "actual native success379passed/26ignored/zero failed at a073 source-update commit", + "Source_C_D_tests_passed": 379, + "Source_C_D_tests_ignored": 26, + "Source_C_D_tests_failed": 0, + "Source_C_D_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "Source_C_D_run": 39017118548, + "Source_C_D_report": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-sourcea073-native-Windows-CI-observation-20261017/ACTUAL-EXACT5384-SOURCEA073-NATIVE-WINDOWS-CI-OBSERVATION-FINAL.json", + "sha256": "5879127f3948a7dcfe03dbdcfd26ba231cdf425a317fe227322abde7f8216cc4", + "bytes": 19811 + }, + "Source_C_D_strict": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-sourcea073-native-Windows-CI-observation-20261017-strict-actual-native-Windows-CI-observation-FINAL-closure.json", + "sha256": "73ece2182213630eca081063200cb8b57dd9faff33a021d5e0da7e0936e02c9c", + "bytes": 50517 + }, + "prior_API_B5384_observation": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-native-Windows-CI-observation-20261017/ACTUAL-EXACT5384-NATIVE-WINDOWS-CI-OBSERVATION-FINAL.json", + "sha256": "c7f4955124174383418b271d9ab086a5d5748d5f23ceb8a070eb9040d3c1b916", + "size": 19549, + "mtime_ns": 1792226312738030932, + "mode": 33188 + }, + "prior_API_B5384": { + "passed": 361, + "ignored": 26, + "failed": 0, + "scope": "PriorAPI-B epoch only; not SourceC or5407 execution." + }, + "native_5407_execution_claimed": false + }, + "limits": [ + "Saved currentC404128cases/17orderedpairs, road3contexts and hardware7contexts(3carried/4changed); six directed finite crossgroup intersections empty.", + "40440 unused/gallery-only. No all-placement/seamless/fullHD claim.", + "Historical Source/material/context reviews and all other HOLDs remain distinct.", + "No new QA/renderer/World/image/compiler/Source edits performed for this doc update." + ] } } } diff --git a/docs/hd-coordinator-checkpoint.md b/docs/hd-coordinator-checkpoint.md index 503ed688..3809949a 100644 --- a/docs/hd-coordinator-checkpoint.md +++ b/docs/hd-coordinator-checkpoint.md @@ -1,6 +1,10 @@ # HD coordinator checkpoint — 17 October 2026 -The external and assembled shared runtime pack contains **5,384 reviewed original picture frames / 3,551 complete sequences**, including **4,275 Terrain pictures**. **369 of 5,753 original pictures remain**: 260 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. This six-frame append adds Boss 200ba, Terrain 2039a and the complete four-frame TANK03G3 family 3007c–3007f in three native sequences / three unchanged raw PNGs. Five hybrid frames explicitly retain 207 Original logical cells: 11 in 200ba and 50/48/49/49 across Tank phases; those cells are not generated HD. All previous 5,378 bindings and the full 3,548-header prefix remain exact, including canvas, origin, crop and optional-field presence. The assembled data contains **9,335 files / 8,179,315,857 bytes**. Actual CLI validates all 5,384 frames with zero rejects and 45 mods/one override (`2f3ab585`). Source18 and both binaries remain unchanged at API-B; future Source-C work is not the current runtime. Different reviews cover one genuine 200ba pose, all four naturally observed Tank phases and exactly two 2039a contexts; no all-placement or seamless-road claim follows. Visible 2039a edge and texture steps remain qualified, and the other 14 road tiles remain held. Previous 5,378 publication is remote-confirmed at `9ba0a5c7`. Native Windows 5,341 passed 360 tests with zero failures and 26 ignored; the separate campaign c4a4 run's old-test failure is preserved, while the 58723547 correction's native Windows workflow is still packaging. Publication and native Windows execution for 5,384 remain pending. Neither Windows result is relabeled as 5,378/5,384 execution; full HD completion remains open. +Current artwork/runtime checkpoint — 17 October 2026: the registered and assembled pack contains **5,407 frames / 3,574 complete sequences**, including **4,298 Terrain pictures**. **346 originals remain**: 237 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. Remaining means not approved for HD registration, including held drafts and actual refusals, rather than never generated. The 23 Terrain additions are complete native singletons 40435–40444, 20391–20394, 2057d, 20585 and 20586 across six jobs. Their 21 raw routes comprise 20 copied new payloads and one exact alias of existing 9ce; four hybrid frames retain 118 declared Original logical cells, which are not generated HD. All prior 5,384 bindings and 3,551 full headers remain exact. Actual data contains **9,356 files / 8,245,392,052 bytes**; Root's CLI validates 5,407 frames with zero rejects and 45 mods/one override (`8c9f3893`). Source18 and both executables remain Source C+D from published `a073f73f`, distinct from API-B. Saved context reviews cover 128 current-C cases for 40435–40444 plus 17 ordered pairs, three road contexts and seven hardware contexts (three carried/four changed); 40440 is unused/gallery-only. All six directed cross-group Source intersections are empty within those saved 128/3/7 inputs. This does not establish seamlessness, all placements or full-HD completion. Three actual 5,407 SDL controls at 1080p/HD4x match frozen C5,384 exactly across 6,220,800 RGB/alpha pixels; these controls contain none of the new 23 frames. Source-C native Windows at `a073f73f` passed 379 tests with 26 ignored and zero failures; prior API-B 5,384 evidence (361 passed/26 ignored/zero failed) is separate. The 5,407 Git publication and native Windows execution remain pending. The following 5,384 source-update and older art observations remain dated history. + +Preserved 17 October 2026 Source-update checkpoint at 5,384 (historical coverage): Current Source C+D checkpoint — 17 October 2026: remote-confirmed commit `a073f73f` installs the rational atlas sampler, protected terrain joins and bounded retained-Original policy. Coverage is unchanged at **5,384 frames / 3,551 sequences**, with **369 originals remaining** (260 Terrain, 75 enemies/ground objects, 33 UI/other, one boss); data remains **9,335 files / 8,179,315,857 bytes**. Both bundled executables were rebuilt. Validation passes 90 Rust and 78 Python tests (five pre-existing Rust checks ignored), all 5,384 HD frames with zero rejects, the 6,449-entry catalog and 45 mods/one override. Three fresh 1080p API-B/C+D controls match exactly across 6,220,800 pixels. Source C+D native Windows CI remains pending; `58723547` separately passed 361 tests, with 26 ignored and zero failed. No new artwork approval or full-HD completion follows. The following pre-C records retain their original epochs. + +Preserved pre-Source-C document-freeze observation: The external and assembled shared runtime pack contains **5,384 reviewed original picture frames / 3,551 complete sequences**, including **4,275 Terrain pictures**. **369 of 5,753 original pictures remain**: 260 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. This six-frame append adds Boss 200ba, Terrain 2039a and the complete four-frame TANK03G3 family 3007c–3007f in three native sequences / three unchanged raw PNGs. Five hybrid frames explicitly retain 207 Original logical cells: 11 in 200ba and 50/48/49/49 across Tank phases; those cells are not generated HD. All previous 5,378 bindings and the full 3,548-header prefix remain exact, including canvas, origin, crop and optional-field presence. The assembled data contains **9,335 files / 8,179,315,857 bytes**. Actual CLI validates all 5,384 frames with zero rejects and 45 mods/one override (`2f3ab585`). Source18 and both binaries remain unchanged at API-B; future Source-C work is not the current runtime. Different reviews cover one genuine 200ba pose, all four naturally observed Tank phases and exactly two 2039a contexts; no all-placement or seamless-road claim follows. Visible 2039a edge and texture steps remain qualified, and the other 14 road tiles remain held. Previous 5,378 publication is remote-confirmed at `9ba0a5c7`. Native Windows 5,341 passed 360 tests with zero failures and 26 ignored; the separate campaign c4a4 run's old-test failure is preserved, while the 58723547 correction's native Windows workflow is still packaging. Publication and native Windows execution for 5,384 remain pending. Neither Windows result is relabeled as 5,378/5,384 execution; full HD completion remains open. Preserved earlier 17 October 2026 document-freeze observation: The external and assembled shared runtime pack contains **5,378 reviewed original picture frames / 3,548 complete sequences**, including **4,274 Terrain pictures**. **375 of 5,753 original pictures remain**: 261 Terrain, 79 enemies/ground objects, 33 UI/other and two bosses. The 37 additions comprise 30 selected Terrain pictures, Terrain 20583, UI/other 3009f and 300a4, and the complete four-frame DSHP21G3 family 300a8–300ab. Seven hybrid frames explicitly retain 37 Original logical cells; those cells are not generated HD. All previous 5,341 bindings and the full 3,514-header prefix remain exact, as do native canvases, origins, crops and optional-field presence. The assembled data contains **9,332 files / 8,171,723,875 bytes**. Actual CLI validation passes all 5,378 frames with zero rejects and 45 mods/one override (`e1cb3b4a`). Source18 and both bundled binaries remain unchanged at API-B. Historical386e artwork/context measurements retain their own epoch. The 15 road tiles remain held; pending 200ba, further Tank work and the new 2039a context are outside this append. Git publication and native Windows execution for 5,378 remain pending; the 5,341 Windows workflow is still packaging at this freeze. No complete-HD claim is made. @@ -48,11 +52,11 @@ Published runtime history: The assembled bundled Linux/Windows data contains **3 | Player and enemy projectiles | 51 / 51 | | Explosions and effects | 281 / 281 | | Equipment and pickups | 47 / 47 | -| Terrain | 4,275 / 4,535 | +| Terrain | 4,298 / 4,535 | | Menus, portraits, HUD and other pictures | 117 / 150 | -| Total | 5,384 / 5,753 | +| Total | 5,407 / 5,753 | -All 6,449 catalog entries and 5,753 pictures were audited with zero HD source/hash/canvas/ID errors. **369 pictures await registration**. Picture ledger counts are {'registered': 5364, 'inprogress': 125, 'renderreachable': 20, 'candidate': 242, 'missing': 2}; candidate status is not art approval or live occurrence. All 307 native AGX/font records remain separately `native_preserved`, with no generated HD coverage. Unused/destroyed pictures remain required. +All 6,449 catalog entries and 5,753 pictures were audited with zero HD source/hash/canvas/ID errors. **346 pictures await registration**. Picture ledger counts are {'registered': 5387, 'inprogress': 122, 'renderreachable': 20, 'candidate': 222, 'missing': 2}; candidate status is not art approval or live occurrence. All 307 native AGX/font records remain separately `native_preserved`, with no generated HD coverage. Unused/destroyed pictures remain required. ## Historical Stage2 API 1,148 output proof diff --git a/docs/hd-full-review.md b/docs/hd-full-review.md index aa914f36..3a0dca83 100644 --- a/docs/hd-full-review.md +++ b/docs/hd-full-review.md @@ -1,5 +1,9 @@ # Complete-original HD review +Current artwork/runtime checkpoint — 17 October 2026: the registered and assembled pack contains **5,407 frames / 3,574 complete sequences**, including **4,298 Terrain pictures**. **346 originals remain**: 237 Terrain, 75 enemies/ground objects, 33 UI/other and one boss. Remaining means not approved for HD registration, including held drafts and actual refusals, rather than never generated. The 23 Terrain additions are complete native singletons 40435–40444, 20391–20394, 2057d, 20585 and 20586 across six jobs. Their 21 raw routes comprise 20 copied new payloads and one exact alias of existing 9ce; four hybrid frames retain 118 declared Original logical cells, which are not generated HD. All prior 5,384 bindings and 3,551 full headers remain exact. Actual data contains **9,356 files / 8,245,392,052 bytes**; Root's CLI validates 5,407 frames with zero rejects and 45 mods/one override (`8c9f3893`). Source18 and both executables remain Source C+D from published `a073f73f`, distinct from API-B. Saved context reviews cover 128 current-C cases for 40435–40444 plus 17 ordered pairs, three road contexts and seven hardware contexts (three carried/four changed); 40440 is unused/gallery-only. All six directed cross-group Source intersections are empty within those saved 128/3/7 inputs. This does not establish seamlessness, all placements or full-HD completion. Three actual 5,407 SDL controls at 1080p/HD4x match frozen C5,384 exactly across 6,220,800 RGB/alpha pixels; these controls contain none of the new 23 frames. Source-C native Windows at `a073f73f` passed 379 tests with 26 ignored and zero failures; prior API-B 5,384 evidence (361 passed/26 ignored/zero failed) is separate. The 5,407 Git publication and native Windows execution remain pending. The following 5,384 source-update and older art observations remain dated history. + +Preserved 17 October 2026 Source-update checkpoint at 5,384 (historical coverage): Current runtime checkpoint — 17 October 2026: Source C+D is remote-confirmed at `a073f73f`, with **5,384 HD frames / 3,551 sequences** and 369 originals still outstanding. Both executables are rebuilt; 90 Rust / 78 Python tests and three fresh 1080p controls pass, with zero pixel differences from API-B. Source C+D native Windows CI remains pending. Historical 8ada, 386e and API-B material/context/QA evidence below retains its recorded epoch; these bounded runtime checks add no artwork or hybrid approval. See [the coordinator checkpoint](hd-coordinator-checkpoint.md) for current validation and Windows attribution. + Independent review started **2026-10-10**, extended **2026-10-11**. This is an ongoing acceptance record, separate from the generation jobs and registration coordinator. Full completion requires all **5,753 standalone source picture IDs** to have reviewed, registered remasters and their retained rendering paths to work. Candidate images, queue entries, original fallback and a successful PNG decode do not establish completion. ## Inventory checked independently diff --git a/docs/hd-generation-workflow.md b/docs/hd-generation-workflow.md index 512fe339..1bbddcc8 100644 --- a/docs/hd-generation-workflow.md +++ b/docs/hd-generation-workflow.md @@ -92,3 +92,21 @@ Run the tool regression checks with registration of separately approved selections and rejection of incomplete animations, held material, inconsistent inventory, stale artifacts and incorrect context bindings. + +Existing Terrain siblings may be carried through a new selection with the opt-in +`standalone-terrain-carried-identity-v2` contract. The selected, carried and +Original-fallback sets must partition the full original job inventory. Carried +definitions must already be complete one-frame Terrain entries in the current +canonical manifest; their complete fields, optional policies, raw bytes and +authenticated prior registration/runtime receipts must match exactly. Multiple +prior registration records are supported. Carrying never approves, inserts or +overwrites those definitions, and grants no approval to newly selected artwork. +New selections still need their own current all-scale, material and context +evidence. The older Master74 contract remains supported unchanged. + +A genuinely new single-picture generation job can instead declare its actual +complete one-picture inventory. It must not claim that an earlier multi-picture +generation had a smaller inventory or use this route to split an animation. + +The portable carried-identity and frame-policy checks also run with +`python3 -m unittest discover -s tests -p 'test_hd_*.py'`. diff --git a/docs/hd-runtime-release.json b/docs/hd-runtime-release.json index 78cb018f..03e15e98 100644 --- a/docs/hd-runtime-release.json +++ b/docs/hd-runtime-release.json @@ -539,5 +539,249 @@ "new_source_native_1_to_4_equalities": 2905, "native_Windows_CI": "pending publication and run", "new_archive_execution": "not performed; exact passed2240 ZIPs remain historical snapshots" + }, + "current_source_runtime": { + "checkpoint_utc": "2026-10-17T08:23:19.688796+00:00", + "status": "PUBLISHED_SOURCE_C_PLUS_D_HD5384_NATIVE_WINDOWS_CI_PENDING", + "remote_confirmed_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "coverage_unchanged": { + "registered_frames": 5384, + "complete_sequences": 3551, + "terrain_frames": 4275, + "remaining_original_pictures": 369, + "remaining_by_category": { + "terrain": 260, + "enemies_ground_objects": 75, + "UI_other": 33, + "bosses": 1 + }, + "bundled_data_files": 9335, + "bundled_data_bytes": 8179315857 + }, + "source_sha256": { + "src/hd.rs": "620775bed25983250b843bafcdd4ffdfd1ef2ec8f0c8b934606c830de38328c2", + "src/terrain_hd.rs": "1b0d9722dff556b701185dcc0bb725482f5426db2aef2d2b256fd94831b8a92d" + }, + "other16_source_files_equal_API_B": true, + "binary_sha256": { + "Linux": "499d450e94c1a3d62d94e4002afbc76fcc4fcfd33ec6b84ca99946f58de078d3", + "Windows": "449ef2ac6d6a117092bdac276776798d238fa6eea8428668c31098e63a476bc7" + }, + "compiled_library_sha256": "72415dcee8598261ed13ce6c9f1931d06317c532fa0ce4aa9f2926508f4cd60e", + "compiled_epoch": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/compiled-epoch.json", + "sha256": "9f5e46c928062016bef26bda8d48160bed91d02f0d3089d9c62b3b20365bf7ed" + }, + "validation": { + "Rust_passed": 90, + "Rust_failed": 0, + "Rust_preexisting_ignored": 5, + "Python_passed": 78, + "HD_registered": 5384, + "HD_validated": 5384, + "HD_rejected": 0, + "original_catalog_entries": 6449, + "mods_validated": 45, + "mod_overrides": 1, + "three_actual_SDL_controls": { + "presentation_dimensions": [ + 1920, + 1080 + ], + "cases": [ + "main-menu", + "original-S1W7-HD", + "original-S3W9-HD" + ], + "compared_pixels": 6220800, + "changed_RGB_pixels": 0, + "changed_alpha_pixels": 0, + "PNG_bytes_equal": true, + "scope": "Three deterministic fresh API-B versus Source C+D controls; not all maps, artwork, actors or hybrid contexts." + } + }, + "native_Windows": { + "current_Source_C_D_CI_status": "pending", + "current_Source_C_D_native_success_claimed": false, + "Windows_executable_cross_compiled_and_PE_checked": true, + "prior_58723547_result": { + "commit_prefix": "58723547", + "passed": 361, + "ignored": 26, + "failed": 0, + "scope": "Prior source epoch only; not relabeled Source C+D execution." + } + }, + "evidence": { + "remote_confirmation": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/root-source-publication-remote-confirmation.json", + "sha256": "7b7e48a0d5de71b3d3531c2fa9a79b72e48ea590817d7f781df6dbf0cfb4e0b2" + }, + "Root_review": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/root-reviewed-source-publication.json", + "sha256": "d98f2a72f2aa9b129a48d7def2716bc6299748361c889885789e17a0a28cab52" + }, + "Linux_and_focused_tests": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/FINAL-ACTUAL-SOURCE-C-LINUX-AND-FOCUSED-VALIDATION-RESULTS.json", + "sha256": "fcedea1de5b45afd26a33d30058d723a3592c14da7e27b2a8371e0cdf273e23d" + }, + "SDL_comparison": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5384-sourceC-SDL-three-controls-20261017-v2-unmanaged-X11/CLOSED-ACTUAL5384-SOURCE-C-PLUS-D-THREE-1080-SDL-REGRESSION-COMPARISON.json", + "sha256": "e6d3cc2ef39861f9116b070772954635945e021b1802488a7d0f13b335f781e0" + } + }, + "limits": [ + "No new HD artwork or hybrid admission; count and native headers are unchanged.", + "Old 8ada,386e and API-B material/context/QA records retain their literal source epochs; historical nested records are unchanged.", + "Full HD completion remains open." + ] + }, + "latest_artwork_runtime": { + "checkpoint_utc": "2026-10-17T09:05:19.806820+00:00", + "status": "ACTUAL_SOURCEC_ARTWORK5407_ASSEMBLY_AND_CLI_PASS_PUBLICATION_NATIVE_WINDOWS_PENDING", + "registered_frames": 5407, + "complete_sequences": 3574, + "terrain_frames": 4298, + "remaining_original_pictures": 346, + "remaining_by_category": { + "terrain": 237, + "enemies_ground_objects": 75, + "UI_other": 33, + "bosses": 1 + }, + "bundled_data_files": 9356, + "bundled_data_bytes": 8245392052, + "new_frames": 23, + "new_native_sequences": 23, + "jobs": 6, + "new_raw_routes": 21, + "new_payload_copies": 20, + "borrowed_existing_payload_aliases": 1, + "hybrid_frames": 4, + "explicit_retained_Original_cells": 118, + "Original_cells_not_generated_HD": true, + "source_runtime_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "source_epoch": { + "device": 55, + "inode": 5452246, + "mode": 33188, + "mtime_ns": 1792224981500481642, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-SourceC-integrated-atlas-joins-bounds-20261017/linux-and-focused/portable-fixes/compiled-epoch.json", + "sha256": "9f5e46c928062016bef26bda8d48160bed91d02f0d3089d9c62b3b20365bf7ed", + "size": 7390 + }, + "Source18_and_both_binaries_equal_published_C_D": true, + "binary_sha256": { + "Linux": "499d450e94c1a3d62d94e4002afbc76fcc4fcfd33ec6b84ca99946f58de078d3", + "Windows": "449ef2ac6d6a117092bdac276776798d238fa6eea8428668c31098e63a476bc7" + }, + "old5384_bindings_and3551_header_prefix_exact": true, + "source_update_checkpoint5384_is_historical_coverage_not_latest_artwork": true, + "evidence": { + "registration": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/closed-actual23-canonical-native5407-registration-proof.json", + "sha256": "f49cbba6849ed7a75f4debabe985caa19804b327a0e4782f0a28fbcf30e304d5", + "bytes": 80130 + }, + "immutable_handoff": { + "path": "/home/quintine/Projects/RaptorReplica/data/hd/registered-class-review/handoff-5407-20261017/handoff-manifest.json", + "sha256": "72fd3d2fb42d9af44d143a2ca68eb1c408f649e63133c5835f8f12130da4720d", + "bytes": 3903198 + }, + "assembly": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/assembly-receipt.json", + "sha256": "3dad6576687ef1dafd743974ea3176f771ee701d307b58cd4156ea81402e2bc1", + "bytes": 858 + }, + "actual_CLI": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/cli-validation.json", + "sha256": "8c9f38935d026fe8cf3eb949ff54e38b6460ff52925728cecdb9d67341ee7843", + "bytes": 1625 + }, + "finite_noninterference": { + "device": 55, + "inode": 5458478, + "mode": 33188, + "mtime_ns": 1792227438305595635, + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-coordinator-qualified23-canonical5407-and-seal-20261017/CLOSED-ACTUAL-FINITE23-CROSSGROUP-SOURCE-NATIVE-NONINTERFERENCE-PROOF.json", + "sha256": "0b007ef6cce7d1f91745530edefb76b317cc14163e7532d9a08c019a22eabea0", + "size": 182713 + } + }, + "validation": { + "HD_validated": 5407, + "HD_rejected": 0, + "mods": 45, + "overrides": 1 + }, + "SDL_regression_controls": { + "report": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5407-currentC-three-SDL-controls-20261017-v1/CLOSED-ACTUAL5407-CURRENTC-THREE-SDL-REGRESSION-VERSUS-FROZEN-C5384.json", + "sha256": "15531ccfe2abfa2fcdf649eba27b5a6256c20904f5d46223d621b3edd5b84613", + "bytes": 10036 + }, + "strict": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-campaign-actual5407-currentC-three-SDL-controls-20261017-v1-strict-three-actual-SDL-controls-closure.json", + "sha256": "db78c76a25a05f28779582f856da3b369dde7ea3b3743ab7f56622b7ee41f18c", + "bytes": 20159 + }, + "Root_personal_whole_view": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-root-next-publication-after5384-currentC-20261017/root-physical-5407-three-SDL-review.json", + "sha256": "6d880836031ecf84eb749e4dd920a9bfcd713e2c12150ee9031ba45541255b74", + "bytes": 1510 + }, + "controls": 3, + "dimensions": [ + 1920, + 1080 + ], + "HD_scale": 4, + "pixels_compared": 6220800, + "RGB_and_alpha_changed_pixels": 0, + "new23_present_in_these_controls": false + }, + "native_Windows": { + "current_Source_C_D_status_at_freeze": "actual native success379passed/26ignored/zero failed at a073 source-update commit", + "Source_C_D_tests_passed": 379, + "Source_C_D_tests_ignored": 26, + "Source_C_D_tests_failed": 0, + "Source_C_D_commit": "a073f73f3afa0ec5217bb756b521dc75aea15a3b", + "Source_C_D_run": 39017118548, + "Source_C_D_report": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-sourcea073-native-Windows-CI-observation-20261017/ACTUAL-EXACT5384-SOURCEA073-NATIVE-WINDOWS-CI-OBSERVATION-FINAL.json", + "sha256": "5879127f3948a7dcfe03dbdcfd26ba231cdf425a317fe227322abde7f8216cc4", + "bytes": 19811 + }, + "Source_C_D_strict": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-sourcea073-native-Windows-CI-observation-20261017-strict-actual-native-Windows-CI-observation-FINAL-closure.json", + "sha256": "73ece2182213630eca081063200cb8b57dd9faff33a021d5e0da7e0936e02c9c", + "bytes": 50517 + }, + "prior_API_B5384_observation": { + "path": "/home/quintine/Projects/RaptorReplica/RustRaptor/.reference/hd-fixture-exact5384-native-Windows-CI-observation-20261017/ACTUAL-EXACT5384-NATIVE-WINDOWS-CI-OBSERVATION-FINAL.json", + "sha256": "c7f4955124174383418b271d9ab086a5d5748d5f23ceb8a070eb9040d3c1b916", + "size": 19549, + "mtime_ns": 1792226312738030932, + "mode": 33188 + }, + "prior_API_B5384": { + "passed": 361, + "ignored": 26, + "failed": 0, + "scope": "PriorAPI-B epoch only; not SourceC or5407 execution." + }, + "native_5407_execution_claimed": false + }, + "limits": [ + "Saved currentC404128cases/17orderedpairs, road3contexts and hardware7contexts(3carried/4changed); six directed finite crossgroup intersections empty.", + "40440 unused/gallery-only. No all-placement/seamless/fullHD claim.", + "Historical Source/material/context reviews and all other HOLDs remain distinct.", + "No new QA/renderer/World/image/compiler/Source edits performed for this doc update." + ] + }, + "record_roles": { + "current_source_runtime": "Dated published SourceC+D update checkpoint at5384/3551. Retained unchanged as historical source-update evidence, not latest artwork coverage.", + "latest_artwork_runtime": "Current5407/3574 assembled artwork registry; see this field for latest counts and data hashes.", + "older_top_level_release_fields": "Historical2935 release and predecessor evidence, not current5407 runtime facts." } } diff --git a/runtime-manifest.json b/runtime-manifest.json index 493bdbd8..535e60d8 100644 --- a/runtime-manifest.json +++ b/runtime-manifest.json @@ -2,10 +2,10 @@ "format_version": 1, "platform": "Linux x86_64", "catalog_entries": 6449, - "approved_hd_frames": 5384, + "approved_hd_frames": 5407, "binary_sha256": "499d450e94c1a3d62d94e4002afbc76fcc4fcfd33ec6b84ca99946f58de078d3", - "data_files": 9335, - "data_bytes": 8179315857, + "data_files": 9356, + "data_bytes": 8245392052, "files": { "data/INDEX": "4ce78e5e638b6603114dd233ceaa41f386c0963ba4aa02ecf88ce0215b096681", "data/demos/DEMO1G1_REC": "3f1458e078c4ad10823d8bf5f9918732b87f4b66cf66dd4ea1d95c535b2a87c8", @@ -46,7 +46,7 @@ "data/hd/equipment/forward-guns-hd-v1.png": "8f0734681b93c4ea06520353a3f8517537ed94c0a4e9fe5eb6929ad0582fe25d", "data/hd/equipment/plasma-guns-0-hd-v1.png": "317ddc9bdd02371399e5edd7cf420882029484023ac2d4920b9a5d95f9727b10", "data/hd/equipment/plasma-guns-1-hd-v1.png": "08c3c26d00d9ba1a208dd8f9b14d6552f6087f8446f686d295165516a9149b6a", - "data/hd/hd.json": "b434f54258c9c82a20766d3801a5ba7e01e412975a9d4c3aa78e8ebc6607630b", + "data/hd/hd.json": "3467602938e915048aa0457f711bc45223edfc29f09ca2e2269937013fedc59d", "data/hd/jobs/bosses-10307-10307/generated/remaster-v1.png": "98a66b5b3aaed496f7080869b57f4332cbf0eed514007943af25a578656724c7", "data/hd/jobs/bosses-10308-10308/generated/remaster-v1.png": "b0fdffa4f72fcdee7f39fdd7d0df4bbce8304fbba38eda66a88c8c3670e5f122", "data/hd/jobs/bosses-1030e-1030e/generated/remaster-v1.png": "2caa5bb832fc17541d92ac3adbf2314f4b1778808b6b062b62d973f4a9a0f9d7", @@ -136,6 +136,22 @@ "data/hd/jobs/coordinator-terrain30-qualified-excluding-road15-post5341-currentB-20261017-v1/generated/2fef42dd49b714bf5d442d534ff2e33285e13cdd018628c3677f81799628941a.png": "2fef42dd49b714bf5d442d534ff2e33285e13cdd018628c3677f81799628941a", "data/hd/jobs/coordinator-terrain30-qualified-excluding-road15-post5341-currentB-20261017-v1/generated/72e2f3645b5b97a8d8531e2cab59f83598deb56609270c3d6254ae3944a05fff.png": "72e2f3645b5b97a8d8531e2cab59f83598deb56609270c3d6254ae3944a05fff", "data/hd/jobs/coordinator-terrain30-qualified-excluding-road15-post5341-currentB-20261017-v1/generated/b4c93137f2f7118e214ba167b617b898708a722efcc6eaf6f3a034cf94bd897b.png": "b4c93137f2f7118e214ba167b617b898708a722efcc6eaf6f3a034cf94bd897b", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6.png": "08431450c883554da2013dc5b9290e9b071bd3a73ec008768e050f34f11160e6", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c.png": "115f88881924d6d746c127ee988b03bc118846613893df772508b8afc21f427c", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5.png": "1c15638b9733b125f0e8eb5b3e4b14ad5ecd2362959f3327b5431352465320f5", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f.png": "2742f6187a5b849480b190587c69d1d22eb136f80a5be9b210b683cddcd2473f", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2.png": "2a22de23f82fdeb7177bf101b18f47459c1be5c01e657dbd6c7230acfa0398e2", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca.png": "2b7b5aaa34a525c604e23c2877a18b86104a5886e1fc6369f5f986497f0ebaca", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222.png": "4c06fa5f24d5632e4e38b72b3846b4d017d46b6b59b7340469333e2c9d63f222", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a.png": "55a0fabf24827dc63b6e7c8561b686071d2cddabeab256e146037eac15c6e35a", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63.png": "751366f8fd5f8be514df4c264473ab688580084f53564e0ad0c84b5feb06bf63", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b.png": "78332086e5753f1691ebbe2850b4b6b0492e8ccf9a129522844a7214363bf59b", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f.png": "83be61842a878e7d483fa86f8c82f6db99d924cea0aee24ac87c9c4e32ed503f", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9.png": "92d084c096fd17fa8aa00295f4e971fb81d2e302ee068c0eac70c568ee2d34f9", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86.png": "b507399caa9ddcf6b0cc7876ae5eaea3c9451cc8d26c04f7e6bb9ef789191b86", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f.png": "d2cc586d69dcfde18b057cbc392d99319a9ac4b1ea6998efecf8c2df173b679f", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0.png": "ea2ab3c948f0f5136ddbb07d24b823e47134e362d3d5c1ee3c978ca2a3610fc0", + "data/hd/jobs/coordinator-terrain40435-40444-complete16-retained44410-post5384-currentC-20261017-v1/generated/f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c.png": "f3277a9f7e565a9666034e984c32303e0f4625aff297dd54701f8c751325861c", "data/hd/jobs/effects-10164-1018d/correction-v12/10166-generated.png": "f26e44cd8a87da0ba3bed3f21db68109f9fa1ad869c178ee7fea032fd181e384", "data/hd/jobs/effects-10164-1018d/correction-v14-matte-method/1016c-generated.png": "cd914745f90b1582b039579912123738788c19ec3a921fa9c7d861d02de6fdd0", "data/hd/jobs/effects-10164-1018d/correction-v14-matte-method/1016d-generated.png": "f43b73e7ec821e19113de4964a2951ebde5c3717147abb7724202a63bf8cbbba", @@ -1017,6 +1033,10 @@ "data/hd/jobs/terrain-2034d-2035c/generated/atlas-v1.png": "94795f2df9161e3626e265847a167ce9e956977a46a1528bc6c13645749e8b0c", "data/hd/jobs/terrain-2036d-2037c/generated/atlas-v1.png": "f1316d235d4d4bf8966fae0b2fa6b3746ab7fc3017a292cc65571827b2076be4", "data/hd/jobs/terrain-2037d-2038c/generated/atlas-v1.png": "d1abc452e1b62a9828a86920db5e10babb357480e987adf646fff771b67ada30", + "data/hd/jobs/terrain-20391-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png": "3264e82a68b28b880c2c8604312158e4b8a8360166ce803b1d1018c06d06fb6e", + "data/hd/jobs/terrain-20392-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png": "6be0cdfb112a4c93d39cb91d7b46f6f648f34fb6b81e62b823f3154e6e1b30e8", + "data/hd/jobs/terrain-20393-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png": "ed0569646e32fc3a4ce22c9ac384be37dab55344dc75cd8480fc6bcc45987b8d", + "data/hd/jobs/terrain-20394-source-first-complete1-currentC-final-20261017/untouched-source-first-square.png": "486da72bfa419195ed3fe397eeb0853fa608a7a3a7eae1730e897efbe0afe7ff", "data/hd/jobs/terrain-2039d-203ac/generated/atlas-v2.png": "1c8f99fe2ec22d3b7756a5e4b969cf03abec9621153d6a1157f1bc8a85b433a0", "data/hd/jobs/terrain-203ad-203bc/generated/atlas-v1.png": "939d74a58ad236b5f40066308db99c2501599ff49ae41f41bd78276a36b02ceb", "data/hd/jobs/terrain-203bd-203cc/generated/atlas-v1.png": "0e609b7eaf83cb9091fd833a768eb09e81087fc9b9afc01675179105deaf07fc", @@ -1053,6 +1073,7 @@ "data/hd/jobs/terrain-2055d-2056c/generated/group-3-v1.png": "da909054ee8c9458e616bfb651e696c67df678b2b46c2119e3d5ea80e80b9299", "data/hd/jobs/terrain-2055d-2056c/generated/group-4-v1.png": "c353f054864af3cd7047df856dd3e3abf73b979cd4fe98ae03831da0ada71570", "data/hd/jobs/terrain-2056d-2057c/generated/atlas-v1.png": "e874e23028da937dd89e87f72dd96adea05c43a56419609c6ba67efe05af2392", + "data/hd/jobs/terrain-2057d-2058c-final3-retained-original-actualC-20261017/raw-unchanged-held-atlas.png": "9ce70352d1e2104b829b5a65355eb44b359ca1fa39cf017601b23a5cbb2d65ae", "data/hd/jobs/terrain-2057d-2058c/generated/20587-v3.png": "5cc80f6f3f8076ec8206995904dd84c0f2c115de6dd15040f44b0e8d68f77908", "data/hd/jobs/terrain-2057d-2058c/generated/atlas-v2.png": "09eafd298c28176faa71b4856b174147b6b50f9e7be106d3ac6813ea58c5e87b", "data/hd/jobs/terrain-2058d-2059c/generated/atlas-v2.png": "d9f4c37c577d95406567346e7766b58d60d0658085bd3b568ae09127e499b97f", @@ -2606,7 +2627,7 @@ "data/hd/player-light/frame-4-hd-v1.png": "608714ceaa8dac0c690fd7be288e4f8ec2bf948a75913858792e8a7e26ad4a96", "data/hd/player-light/frame-5-hd-v1.png": "867d463f3904336d8d85a88ae63e537474f2b9ad128ff1239fd6b5a747d3efd1", "data/hd/player-light/frame-6-hd-v1.png": "22621d7f68f9e89b2b62b0e165da339d51b407ad826324b0a24502e0c0559f89", - "data/hd/provenance.json": "7dbaa5c1977bf0d28289bdf9a7807d1c3cb4d5ef74f18544512a928dfff564f0", + "data/hd/provenance.json": "52fecba6b26492d697fc1bc7a92f9e04c8c4021a490a98892d78c3523c1e4166", "data/hd/selected17/10375/generated-original-only-v1.png": "87a7476a06ebb210304c54e65d132cf2003ba43e4670459ca2155ed9bece945e", "data/hd/selected17/10380/jobs/terrain-10380-first-original-standalone-root-20261012-v1/generated/tile-10380-v1.png": "ca530c57b3b66c32665ad52612e664281fcd34290da90ad0b08eae7f501ca215", "data/hd/selected17/10381/jobs/terrain-10381-first-original-standalone-root-20261012-v1/generated/tile-10381-v1.png": "08adbe169700ab56a4b2494ba39b2d8770cb1bbb0033f44781232c27d868f364", diff --git a/runtime-windows-manifest.json b/runtime-windows-manifest.json index 971350b7..acdb7670 100644 --- a/runtime-windows-manifest.json +++ b/runtime-windows-manifest.json @@ -3,7 +3,7 @@ "platform": "Windows x86_64", "target": "x86_64-pc-windows-gnu", "catalog_entries": 6449, - "approved_hd_frames": 5384, + "approved_hd_frames": 5407, "shared_data_manifest": "runtime-manifest.json", "dependencies": { "raptor-rust.exe": [ diff --git a/tests/test_hd_carried_identity.py b/tests/test_hd_carried_identity.py new file mode 100644 index 00000000..296862a1 --- /dev/null +++ b/tests/test_hd_carried_identity.py @@ -0,0 +1,330 @@ +"""Portable synthetic identity tests; no engine, image generation or registration.""" +import copy +import hashlib +import json +import os +from pathlib import Path +import struct +import sys +import tempfile +import unittest +from unittest.mock import patch + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "tools")) +import hd_register_reviewed as reg + + +def sha(data): + return hashlib.sha256(data).hexdigest() + + +class CarriedFixture: + def __init__(self, directory, legacy=False): + self.base = Path(directory) + self.root = self.base / "data/hd" + self.project = self.base / "project" + self.root.mkdir(parents=True) + (self.project / "src").mkdir(parents=True) + (self.project / "target").mkdir() + for name in ["assets.rs", "hd.rs"]: + p = self.project / "src" / name + p.write_text("// synthetic fixture, never compiled\n") + os.utime(p, ns=(1000000000, 1000000000)) + self.library = self.project / "target/test.rlib" + self.library.write_bytes(b"synthetic QA identity, not an engine library") + self.legacy = legacy + self.ids = [f"{x:05x}" for x in range(0x2059d, 0x205ad)] if legacy else [f"{x:05x}" for x in range(0x17400, 0x17406)] + self.selected = ["205a3", "205a4"] if legacy else self.ids[:2] + self.carried = [a for a in self.ids if a not in self.selected] if legacy else self.ids[2:4] + self.fallback = [] if legacy else self.ids[4:] + self.job_id = f"terrain-{self.ids[0]}-{self.ids[-1]}" + self.payload = struct.pack("<5i", 1, 0, 0, 32, 32) + bytes([31]) * 1024 + palette = bytes([1]) * 768 + self.targets, self.frames = {}, {} + lines = ["10000 0 misc/STARTG1TILES", "20000 0 misc/ENDG1TILES", + "20000 0 misc/STARTG2TILES", "30000 0 misc/ENDG2TILES"] + # One non-overlapping actual Terrain marker pair suffices per fixture. + lines = lines[2:] if legacy else lines[:2] + (self.base / "data/misc").mkdir() + (self.base / "data/misc/PALETTE_DAT").write_bytes(palette) + (self.base / "data/sprites").mkdir() + for asset in self.ids: + rel = f"sprites/tile-{asset}" + (self.base / "data" / rel).write_bytes(self.payload) + lines.append(f"{asset} {len(self.payload)} {rel}") + self.targets[asset] = dict(asset=asset, source_path=rel, source_sha256=sha(self.payload), + logical_canvas=[32, 32], origin=[0, 0], source_palette="PALETTE_DAT", + source_palette_sha256=sha(palette)) + raw = f"raw-{asset}.bin" + (self.root / raw).write_bytes(f"synthetic untouched raw {asset}".encode()) + self.frames[asset] = dict(frame=0, file=raw, logical_width=32, logical_height=32, + origin=[0, 0], source_sha256=sha(self.payload)) + (self.base / "data/INDEX").write_text("\n".join(lines) + "\n") + if not legacy: + self.frames[self.carried[0]].update(crop=None, preserve_reserved_coverage=False, + original_detail_cells=[[0, 0]]) + self.frames[self.carried[1]].update(native_nearest_cues=[]) + self.job = dict(job_id=self.job_id, category="Terrain", kind="contextual_terrain_shard", + targets=list(self.targets.values())) + self.active = {a: copy.deepcopy(self.frames[a]) for a in self.carried} + self.manifest = self.pack(self.active) + groups = [self.carried] if legacy else [[self.carried[0]], [self.carried[1]]] + self.additions = [] + self.accepted = [] + for index, group in enumerate(groups): + bindings = {a: self.active[a] for a in group} + qa = self.qa(bindings) + path = f"accepted-{index}.json" + self.write(path, qa) + self.accepted.append(qa) + self.additions.append(dict(job_id=self.job_id if legacy else f"different-prior-job-{index}", + assets=group, frames=len(group), runtime_qa=path, + frame_bindings_sha256=reg.binding_digest(bindings))) + self.provenance = dict(reviewed_sequence_additions=self.additions) + self.write("hd.json", self.manifest) + self.write("provenance.json", self.provenance) + identity = dict(baseline=self.receipt("hd.json"), provenance=self.receipt("provenance.json"), + frames={}, frame_bindings_sha256=reg.binding_digest(self.active)) + for index, group in enumerate(groups): + for asset in group: + identity["frames"][asset] = dict(frame_binding=copy.deepcopy(self.active[asset]), + source_sha256=sha(self.payload), raw_sha256=sha((self.root / self.active[asset]["file"]).read_bytes())) + if not legacy: + identity["frames"][asset]["registration_record_index"] = index + if legacy: + identity.update(registration_record_index=0, accepted_runtime_qa=self.receipt("accepted-0.json")) + else: + identity.update(contract_version=reg.CARRIED_TERRAIN_V2, registration_records=[dict( + registration_record_index=i, registration_record_sha256=reg.binding_digest(r), + assets=r["assets"], frame_bindings_sha256=r["frame_bindings_sha256"], + accepted_runtime_qa=self.receipt(r["runtime_qa"])) for i, r in enumerate(self.additions)]) + self.candidate = dict(job_id=self.job_id, category="Terrain", kind="contextual_terrain_shard", + complete_family=False, complete_standalone_selection=True, full_inventory=self.ids, + selected_assets=self.selected, original_fallback_assets=self.fallback, + carried_registered_assets=self.carried, carried_registered_identity=identity, + sequences=self.pack({a:self.frames[a] for a in self.selected})["sequences"]) + self.rows = reg.proposal_frames(self.candidate) + self.review = {"standalone_selection": dict(reg.standalone_selection(self.candidate, self.job, self.rows), + carried_registered_identity=copy.deepcopy(identity))} + + @staticmethod + def pack(rows): + return dict(format_version=1, sequences=[dict(name=f"tile-{a}", base_asset=int(a,16), + frame_count=1, frames=[copy.deepcopy(f)]) for a,f in rows.items()]) + + def write(self, name, value): + p=self.root/name;p.parent.mkdir(parents=True,exist_ok=True);p.write_text(json.dumps(value)+"\n") + + def receipt(self, name): + return dict(path=name, sha256=sha((self.root/name).read_bytes())) + + def qa(self, rows): + return dict(frame_bindings_sha256=reg.binding_digest(rows), diagnostics=[], frames=[dict( + asset=a, source_sha256=f["source_sha256"], logical_canvas=[32,32], + source_mask=dict(palette_indices_240_to_255_counts=[0]*16), + hd_masks=[dict(scale=s,mask=dict(palette_indices_240_to_255_counts=[0]*16)) for s in [1,2,3,4]]) + for a,f in rows.items()], artwork_sha256={f["file"]:sha((self.root/f["file"]).read_bytes()) for f in rows.values()}) + + def sync_identity(self): + self.review["standalone_selection"]["carried_registered_identity"] = copy.deepcopy(self.candidate["carried_registered_identity"]) + + def validate(self): + return reg.validate_carried_registered_identity(self.root,self.candidate,self.job,self.rows,self.review) + + def approved_setup(self): + directory=f"jobs/{self.job_id}" + self.write(f"{directory}/candidate.json",self.candidate) + qa=self.qa(self.rows) + qa.update(candidate_sha256=self.receipt(f"{directory}/candidate.json")["sha256"], + source_newer_than_library=False,any_game_source_newer_than_library=False, + library="target/test.rlib",library_sha256=sha(self.library.read_bytes()), + library_modified_ns=self.library.stat().st_mtime_ns) + self.write(f"{directory}/runtime-qa.json",qa) + approvals={} + for asset,frame in self.rows.items(): + peer=dict(reviewer="synthetic-different-peer",author="synthetic-artist",records=[dict( + asset=asset,standalone_verdict="QUALIFIED_APPROVE",selected_frame_binding=frame, + source_payload_sha256=frame["source_sha256"],full_untouched_raw_sha256=qa["artwork_sha256"][frame["file"]],actual_scales=[1,2,3,4])]) + path=f"peer-{asset}.json";self.write(path,peer) + approvals[asset]=dict(status="approved",frame_bindings_sha256=reg.binding_digest({asset:frame}), + source_sha256=frame["source_sha256"],raw_sha256=qa["artwork_sha256"][frame["file"]],independent_review=self.receipt(path),record_index=0) + self.write("context-candidate.json",self.pack(self.rows)) + future=copy.deepcopy(self.manifest);future["sequences"].extend(self.pack(self.rows)["sequences"]) + self.write("future.json",future);self.write("changed-proof.json",dict(synthetic=True)) + authority=dict(candidate=self.receipt("context-candidate.json"),selected_assets=list(self.rows), + frame_bindings_sha256=reg.binding_digest(self.rows),technical_verdict="QUALIFIED_CONTEXT_INTEGRATION", + baseline=self.receipt("hd.json"),future_projection=self.receipt("future.json")) + closure=dict(status="CLOSED_QUALIFIED_CONTEXT",candidate_sha256=authority["candidate"]["sha256"], + frame_bindings_sha256=authority["frame_bindings_sha256"],baseline_sha256=authority["baseline"]["sha256"], + future_projection_sha256=authority["future_projection"]["sha256"],changed_case_proof=self.receipt("changed-proof.json")) + self.write("closure.json",closure);authority["changed_case_closure"]=self.receipt("closure.json") + self.write("context-peer.json",dict(reviewer="synthetic-context-peer",author="synthetic-producer",standalone_selection_context=authority)) + self.review.update(status="approved",frame_bindings_sha256=reg.binding_digest(self.rows), + candidate_sha256=qa["candidate_sha256"],source_and_all_scale_visual_review="synthetic review fixture, not real approval", + independent_review="synthetic material/context fixture",runtime_qa=f"{directory}/runtime-qa.json") + self.review["standalone_selection"].update(material_approvals=approvals,contextual_approval=dict( + selected_assets=list(self.rows),selected_frame_bindings_sha256=reg.binding_digest(self.rows),receipt=self.receipt("context-peer.json"))) + self.write(f"{directory}/coordinator-review.json",self.review);self.write(f"{directory}/job.json",self.job) + + +class CarriedIdentityTests(unittest.TestCase): + def setUp(self): + self.temp=tempfile.TemporaryDirectory();self.addCleanup(self.temp.cleanup) + self.f=CarriedFixture(self.temp.name) + self.process_trap=patch('subprocess.run',side_effect=AssertionError('external process forbidden')) + self.process_trap.start();self.addCleanup(self.process_trap.stop) + + def test_new_multi_record_partition_and_optional_policies(self): + before={p:p.read_bytes()for p in self.f.root.rglob('*')if p.is_file()} + self.f.validate() + self.assertEqual(before,{p:p.read_bytes()for p in self.f.root.rglob('*')if p.is_file()}) + + def test_legacy_master74_roundtrip(self): + with tempfile.TemporaryDirectory() as d: + f=CarriedFixture(d,legacy=True);before=copy.deepcopy(f.candidate) + f.validate();self.assertEqual(before,f.candidate) + self.assertNotIn('contract_version',f.candidate['carried_registered_identity']) + + def test_legacy_full_approved_job_readonly_roundtrip(self): + with tempfile.TemporaryDirectory() as d: + f=CarriedFixture(d,legacy=True);f.approved_setup() + before={p:p.read_bytes()for p in f.root.rglob('*')if p.is_file()} + with patch.object(reg,'atomic_json',side_effect=AssertionError('writer forbidden')),patch.object(reg,'main',side_effect=AssertionError('main forbidden')),patch.object(reg,'validate_hd_frame',return_value=None) as decoder: + _,_,rows=reg.approved_job(f.root,f.job_id,f.project) + self.assertEqual(set(rows),set(f.selected));self.assertEqual(decoder.call_count,2) + self.assertEqual(before,{p:p.read_bytes()for p in f.root.rglob('*')if p.is_file()}) + + def test_partial_carried_subset_authenticates_whole_prior_record(self): + extra='17ff0';frame=copy.deepcopy(self.f.active[self.f.carried[0]]) + frame['file']='unrelated-prior-raw.bin';(self.f.root/frame['file']).write_bytes(b'unchanged unrelated prior raw') + self.f.active[extra]=frame;self.f.manifest=self.f.pack(self.f.active) + record=self.f.additions[0];record['assets'].append(extra);record['frames']=2 + bindings={a:self.f.active[a]for a in record['assets']};record['frame_bindings_sha256']=reg.binding_digest(bindings) + self.f.write('accepted-0.json',self.f.qa(bindings));self.f.write('hd.json',self.f.manifest);self.f.write('provenance.json',self.f.provenance) + identity=self.f.candidate['carried_registered_identity'];identity['baseline']=self.f.receipt('hd.json');identity['provenance']=self.f.receipt('provenance.json') + descriptor=identity['registration_records'][0];descriptor.update(registration_record_sha256=reg.binding_digest(record),assets=record['assets'],frame_bindings_sha256=record['frame_bindings_sha256'],accepted_runtime_qa=self.f.receipt('accepted-0.json')) + self.f.sync_identity();self.f.validate() + descriptor['assets']=[self.f.carried[0]];self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'asset set'):self.f.validate() + + def test_unversioned_generic_scope_is_still_rejected(self): + self.f.candidate['carried_registered_identity'].pop('contract_version') + with self.assertRaisesRegex(ValueError,'master74'):reg.standalone_selection(self.f.candidate,self.f.job,self.f.rows) + + def test_unknown_version_rejected(self): + self.f.candidate['carried_registered_identity']['contract_version']='future' + with self.assertRaisesRegex(ValueError,'unknown'):reg.standalone_selection(self.f.candidate,self.f.job,self.f.rows) + + def test_optional_absent_is_not_null(self): + self.f.candidate['carried_registered_identity']['frames'][self.f.carried[0]]['frame_binding'].pop('crop') + self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'binding/policy'):self.f.validate() + + def test_optional_false_is_not_absent(self): + self.f.candidate['carried_registered_identity']['frames'][self.f.carried[0]]['frame_binding'].pop('preserve_reserved_coverage') + self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'binding/policy'):self.f.validate() + + def test_changed_raw_bytes(self): + (self.f.root/self.f.active[self.f.carried[0]]['file']).write_bytes(b'changed') + with self.assertRaisesRegex(ValueError,'raw artwork'):self.f.validate() + + def test_forged_registration_record_hash(self): + self.f.candidate['carried_registered_identity']['registration_records'][0]['registration_record_sha256']='0'*64 + self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'record changed'):self.f.validate() + + def test_wrong_registration_assignment(self): + self.f.candidate['carried_registered_identity']['frames'][self.f.carried[0]]['registration_record_index']=1 + self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'foreign registration'):self.f.validate() + + def test_duplicate_record_index_bool_and_wrong_asset_set(self): + for field,value in [('registration_record_index',True),('assets',[self.f.carried[1]])]: + with self.subTest(field=field): + old=copy.deepcopy(self.f.candidate['carried_registered_identity']) + self.f.candidate['carried_registered_identity']['registration_records'][0][field]=value;self.f.sync_identity() + with self.assertRaises(ValueError):self.f.validate() + self.f.candidate['carried_registered_identity']=old;self.f.sync_identity() + + def test_bad_partition_overlap_or_omission(self): + for fallback in [[self.f.carried[0]],self.f.fallback[:-1]]: + with self.subTest(fallback=fallback): + self.f.candidate['original_fallback_assets']=fallback + with self.assertRaisesRegex(ValueError,'partition'):self.f.validate() + + def test_selected_already_registered(self): + self.f.manifest['sequences']+=self.f.pack({self.f.selected[0]:self.f.frames[self.f.selected[0]]})['sequences'] + self.f.write('hd.json',self.f.manifest) + self.f.candidate['carried_registered_identity']['baseline']=self.f.receipt('hd.json');self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'partition'):self.f.validate() + + def test_fallback_already_registered(self): + self.f.manifest['sequences']+=self.f.pack({self.f.fallback[0]:self.f.frames[self.f.fallback[0]]})['sequences'] + self.f.write('hd.json',self.f.manifest) + self.f.candidate['carried_registered_identity']['baseline']=self.f.receipt('hd.json');self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'partition'):self.f.validate() + + def test_carried_animation_or_partial_sequence(self): + self.f.manifest['sequences'][0]['frame_count']=2 + self.f.write('hd.json',self.f.manifest) + self.f.candidate['carried_registered_identity']['baseline']=self.f.receipt('hd.json');self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'animation'):self.f.validate() + + def test_source_payload_and_palette_mutations(self): + for path in [self.f.base/'data'/self.f.targets[self.f.carried[0]]['source_path'],self.f.base/'data/misc/PALETTE_DAT']: + with self.subTest(path=str(path)): + old=path.read_bytes();path.write_bytes(old+b'x') + with self.assertRaisesRegex(ValueError,'source differs|palette changed'):self.f.validate() + path.write_bytes(old) + + def test_false_terrain_source_inventory(self): + index=self.f.base/'data/INDEX';index.write_text(index.read_text().replace('20000 0 misc/ENDG1TILES','173ff 0 misc/ENDG1TILES')) + with self.assertRaisesRegex(ValueError,'not catalog Terrain'):self.f.validate() + + def test_source_origin_and_native_canvas_are_literal(self): + for key,value in [('origin',[False,0]),('logical_canvas',[31,32])]: + with self.subTest(key=key): + target=next(t for t in self.f.job['targets']if t['asset']==self.f.carried[0]);old=target[key];target[key]=value + with self.assertRaises(ValueError):self.f.validate() + target[key]=old + + def test_selected_animation_is_rejected(self): + self.f.candidate['sequences'][0]['frame_count']=2 + with self.assertRaisesRegex(ValueError,'animation'):self.f.validate() + + def test_independent_review_cannot_omit_or_change_identity(self): + self.f.review['standalone_selection']['carried_registered_identity']['frame_bindings_sha256']='0'*64 + with self.assertRaisesRegex(ValueError,'independent review'):self.f.validate() + + def test_receipt_hash_and_current_pair_are_mandatory(self): + self.f.candidate['carried_registered_identity']['provenance']['path']='other.json';self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'canonical pair'):self.f.validate() + + def test_accepted_allscale_qa_and_raw_mapping_are_not_invented(self): + qa=self.f.accepted[0];qa['frames'][0]['hd_masks'][3]['scale']=3 + self.f.write('accepted-0.json',qa) + self.f.candidate['carried_registered_identity']['registration_records'][0]['accepted_runtime_qa']=self.f.receipt('accepted-0.json');self.f.sync_identity() + with self.assertRaisesRegex(ValueError,'Source/scales'):self.f.validate() + + def test_complete_approved_job_reaches_all_existing_selected_gates(self): + self.f.approved_setup();seen=[] + with patch.object(reg,'atomic_json',side_effect=AssertionError('writer forbidden')),patch.object(reg,'main',side_effect=AssertionError('main forbidden')),patch.object(reg,'validate_hd_frame',side_effect=lambda root,frame,payload,picture:seen.append((payload,picture.size))): + result=reg.approved_job(self.f.root,self.f.job_id,self.f.project) + self.assertEqual(set(result[2]),set(self.f.selected));self.assertEqual(seen,[(self.f.payload,(32,32))]*2) + self.assertEqual(set(reg.proposal_frames(json.loads((self.f.root/'hd.json').read_text()))),set(self.f.carried)) + + def test_selected_freshness_and_material_context_remain_required(self): + self.f.approved_setup();directory=f'jobs/{self.f.job_id}';qa=json.loads((self.f.root/f'{directory}/runtime-qa.json').read_text()) + qa['any_game_source_newer_than_library']=True;self.f.write(f'{directory}/runtime-qa.json',qa) + with self.assertRaisesRegex(ValueError,'freshness'):reg.approved_job(self.f.root,self.f.job_id,self.f.project) + qa['any_game_source_newer_than_library']=False;self.f.write(f'{directory}/runtime-qa.json',qa) + review=copy.deepcopy(self.f.review);review['standalone_selection']['material_approvals']={};self.f.write(f'{directory}/coordinator-review.json',review) + with patch.object(reg,'validate_hd_frame',return_value=None),self.assertRaisesRegex(ValueError,'material map'): + reg.approved_job(self.f.root,self.f.job_id,self.f.project) + review=copy.deepcopy(self.f.review);review['standalone_selection'].pop('contextual_approval');self.f.write(f'{directory}/coordinator-review.json',review) + with patch.object(reg,'validate_hd_frame',return_value=None),self.assertRaises(ValueError):reg.approved_job(self.f.root,self.f.job_id,self.f.project) + + +if __name__=='__main__': + unittest.main() diff --git a/tools/hd_register_reviewed.py b/tools/hd_register_reviewed.py index a9b70693..94418503 100644 --- a/tools/hd_register_reviewed.py +++ b/tools/hd_register_reviewed.py @@ -20,6 +20,9 @@ from hd_art_source import decode from hd_frame_policy import validate_frame_policy, retained_review_version_ok +CARRIED_TERRAIN_V2 = "standalone-terrain-carried-identity-v2" + + def asset_list(value, label): if not isinstance(value, list) or any(not isinstance(asset, str) or re.fullmatch(r"[0-9a-f]{5}", asset) is None for asset in value): @@ -51,12 +54,16 @@ def standalone_selection(candidate, job, rows): selected | fallback | carried != full): raise ValueError("standalone selected/fallback partition differs from complete job inventory") if carried: - # This is the reviewed additive contract for one original sixteen-tile - # inventory, not a general permission to slice other content families. - if (job.get("job_id") != "terrain-2059d-205ac" or + # The unversioned route remains the exact legacy Master74 contract. + # Other shards must opt into the separately checked v2 identity. + identity = candidate.get("carried_registered_identity") + if isinstance(identity, dict) and "contract_version" in identity: + if identity["contract_version"] != CARRIED_TERRAIN_V2: + raise ValueError("unknown carried Terrain identity contract") + elif (job.get("job_id") != "terrain-2059d-205ac" or selected != {"205a3", "205a4"} or len(full) != 16 or len(carried) != 14 or fallback or - not isinstance(candidate.get("carried_registered_identity"), dict)): + not isinstance(identity, dict)): raise ValueError("carried selection differs from the reviewed master74 two-new/fourteen-carried scope") elif candidate.get("carried_registered_identity"): raise ValueError("carried identity has no registered siblings") @@ -104,6 +111,8 @@ def validate_carried_registered_identity(root, candidate, job, rows, review): if not carried: return identity = candidate["carried_registered_identity"] + if isinstance(identity, dict) and identity.get("contract_version") == CARRIED_TERRAIN_V2: + return validate_carried_registered_identity_v2(root, candidate, job, rows, review) evidence = review.get("standalone_selection", {}) if not same_json(identity, evidence.get("carried_registered_identity")): raise ValueError("review carried identity differs from candidate") @@ -173,6 +182,107 @@ def validate_carried_registered_identity(root, candidate, job, rows, review): raise ValueError("carried complete frame digest differs") +def validate_carried_registered_identity_v2(root, candidate, job, rows, review): + """Opt-in multi-record identity, not a new approval of registered artwork. + + Record hashes use canonical JSON (sorted keys, compact separators), as does + binding_digest. Each descriptor names a WHOLE prior registration, even when + only some of its assets are carried by this shard. Optional-field presence, + raw routes and policies are part of each exact current frame binding. + """ + selection = standalone_selection(candidate, job, rows) + identity = candidate["carried_registered_identity"] + if (selection is None or identity.get("contract_version") != CARRIED_TERRAIN_V2 or + set(identity) != {"contract_version", "baseline", "provenance", "frames", + "frame_bindings_sha256", "registration_records"} or + not same_json(identity, review.get("standalone_selection", {}).get("carried_registered_identity"))): + raise ValueError("versioned carried identity or independent review differs") + carried = set(selection["carried_registered_assets"]) + if identity.get("baseline", {}).get("path") != "hd.json" or identity.get("provenance", {}).get("path") != "provenance.json": + raise ValueError("carried v2 requires the exact current canonical pair") + manifest = receipt_json(root, identity["baseline"]) + active = proposal_frames(manifest) + require_standalone_membership(manifest, carried) + if (set(rows) & set(active) or set(selection["original_fallback_assets"]) & set(active) + or not carried <= set(active)): + raise ValueError("carried v2 selected/fallback/current registration partition differs") + records = identity["frames"] + if not isinstance(records, dict) or set(records) != carried: + raise ValueError("carried v2 frame membership differs") + # Authenticate the full original shard, including fallback. A current HD + # sequence declaration alone cannot turn a non-Terrain animation into one. + pictures, payloads = authentic_terrain_inventory(root, job) + targets = {target["asset"]: target for target in job["targets"]} + additions = receipt_json(root, identity["provenance"]).get("reviewed_sequence_additions", []) + descriptors = identity["registration_records"] + if not isinstance(additions, list) or not isinstance(descriptors, list) or not descriptors: + raise ValueError("carried v2 needs actual prior registration records") + accepted_by_index = {} + for descriptor in descriptors: + if (not isinstance(descriptor, dict) or set(descriptor) != { + "registration_record_index", "registration_record_sha256", "assets", + "frame_bindings_sha256", "accepted_runtime_qa"}): + raise ValueError("invalid carried v2 registration descriptor") + index = descriptor["registration_record_index"] + if type(index) is not int or not 0 <= index < len(additions) or index in accepted_by_index: + raise ValueError("unsafe or duplicate carried v2 registration index") + registered = additions[index] + if not isinstance(registered, dict) or descriptor["registration_record_sha256"] != binding_digest(registered): + raise ValueError("carried v2 prior registration record changed") + assets = asset_list(registered.get("assets"), "prior registered assets") + if (not assets or asset_list(descriptor["assets"], "carried v2 record assets") != assets or + type(registered.get("frames")) is not int or registered["frames"] != len(assets) or + not assets <= set(active) or not assets & carried): + raise ValueError("carried v2 prior registration asset set differs") + receipt = descriptor["accepted_runtime_qa"] + if not isinstance(receipt, dict) or receipt.get("path") != registered.get("runtime_qa"): + raise ValueError("carried v2 receipt is not the actual registered runtime QA") + accepted = receipt_json(root, receipt) + measurements = accepted.get("frames", []) + if not isinstance(measurements, list) or any(not isinstance(m, dict) for m in measurements): + raise ValueError("invalid prior carried v2 runtime frames") + measured = {m.get("asset"): m for m in measurements} + digest = binding_digest({asset: active[asset] for asset in assets}) + if (accepted.get("diagnostics") != [] or len(measured) != len(measurements) or set(measured) != assets or + any(value != digest for value in [registered.get("frame_bindings_sha256"), + descriptor["frame_bindings_sha256"], accepted.get("frame_bindings_sha256")])): + raise ValueError("carried v2 full registered frame map/runtime QA differs") + accepted_by_index[index] = (assets, accepted, measured) + used, bindings = set(), {} + for asset in sorted(carried): + record, frame, target = records[asset], active[asset], targets[asset] + if (not isinstance(record, dict) or set(record) != {"frame_binding", "source_sha256", "raw_sha256", "registration_record_index"} + or not same_json(record["frame_binding"], frame)): + raise ValueError(f"carried v2 exact native binding/policy differs: {asset}") + index = record["registration_record_index"] + if type(index) is not int or index not in accepted_by_index or asset not in accepted_by_index[index][0]: + raise ValueError(f"carried v2 frame names a foreign registration: {asset}") + used.add(index) + if (type(frame.get("frame")) is not int or frame["frame"] != 0 or + type(frame.get("logical_width")) is not int or type(frame.get("logical_height")) is not int or + not same_json([frame["logical_width"], frame["logical_height"]], target["logical_canvas"]) or + not same_json(list(pictures[asset].size), target["logical_canvas"]) or + not same_json(frame.get("origin"), [0, 0]) or not same_json(target.get("origin"), [0, 0]) or + frame.get("source_sha256") != target["source_sha256"] or record["source_sha256"] != target["source_sha256"]): + raise ValueError(f"carried v2 authentic native Source differs: {asset}") + validate_frame_policy(frame, payloads[asset]) + accepted, measurement = accepted_by_index[index][1], accepted_by_index[index][2][asset] + masks = measurement.get("hd_masks", []) + if (measurement.get("source_sha256") != frame["source_sha256"] or + not same_json(measurement.get("logical_canvas"), target["logical_canvas"]) or + not isinstance(masks, list) or len(masks) != 4 or + any(not isinstance(m, dict) or type(m.get("scale")) is not int for m in masks) or + {m["scale"] for m in masks} != {1, 2, 3, 4}): + raise ValueError(f"carried v2 accepted Source/scales differ: {asset}") + accepted_raw = accepted.get("artwork_sha256", {}).get(frame["file"]) + if (re.fullmatch(r"[0-9a-f]{64}", str(accepted_raw)) is None or record["raw_sha256"] != accepted_raw or + hashlib.sha256(contained(root, frame["file"]).read_bytes()).hexdigest() != accepted_raw): + raise ValueError(f"carried v2 raw artwork changed: {asset}") + bindings[asset] = frame + if used != set(accepted_by_index) or identity["frame_bindings_sha256"] != binding_digest(bindings): + raise ValueError("carried v2 unused record or complete carried digest differs") + + def receipt_json(root, receipt): if (not isinstance(receipt, dict) or not isinstance(receipt.get("path"), str) or re.fullmatch(r"[0-9a-f]{64}", str(receipt.get("sha256", ""))) is None):