Files
hockey_new/STAGE2_MANIFEST.json

616 lines
27 KiB
JSON

{
"release": "2026.09.26.2",
"base_release": "2026.09.24.4",
"also_applies_to": "2026.09.26.1",
"base_archive": "hockey(9).zip",
"base_archive_sha256": "32907eb9353ed961090f03cb1637cf63ce1b06bf755c3fc2413a33c2262bccb3",
"package_type": "cumulative changed-files update; extract into existing project root",
"delete_files": [],
"excluded": [
"all user settings JSON",
"settings/local/",
"settings/backups/",
".env",
"Agent secrets and binaries",
"databases and logs"
],
"files": [
{
"path": ".gitignore",
"action": "replace",
"base_sha256": "0ae0f61680c4212bc1808ad4d63b462b2b96d653346c747e47599520e3fb9fb8",
"stage1_sha256": "0ae0f61680c4212bc1808ad4d63b462b2b96d653346c747e47599520e3fb9fb8",
"updated_sha256": "b868270ed9be2aed976c03035b07ab1a05a50160cbc6131f3e98c399c87c5c13",
"bytes": 2284
},
{
"path": "UPDATE_STAGE2_RU.md",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "5347cdd210e7b4cfe896d1a743073c646872108237ed9edc2eccf9b323840983",
"bytes": 18312
},
{
"path": "VALIDATION_STAGE2_RU.md",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "0020d6174c7470d6afe8987dfa64e685fe23431e1cd7eb691a4285a80bf0d260",
"bytes": 11454
},
{
"path": "app.py",
"action": "replace",
"base_sha256": "f3f06139e4a92eac1386616c834dd4a0965e815e9f2f284337b22ff51e81c195",
"stage1_sha256": "c9ae453b347624ade097e1023efa2a1c91a30cf44a155723a2c25e254f1504ec",
"updated_sha256": "0a7f3cc6c878ed61b0a443c9a7b02351d9590ec9c4d877edfd2a8f82fd7e1e93",
"bytes": 19902
},
{
"path": "broadcast_settings/expressions.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": "83e84e1943e763ba08db11fd885dea4147309fff87e61a205763c3bc26ed82de",
"updated_sha256": "83e84e1943e763ba08db11fd885dea4147309fff87e61a205763c3bc26ed82de",
"bytes": 9364
},
{
"path": "broadcast_settings/transform.py",
"action": "replace",
"base_sha256": "20c04429d90165946127945938be1a8822addebe5a286dba47539d140e35bc5b",
"stage1_sha256": "276abb72aa02335f566f9e041f81f60f6d8aefeb1b06ee3a271a4a264bb9a3bb",
"updated_sha256": "276abb72aa02335f566f9e041f81f60f6d8aefeb1b06ee3a271a4a264bb9a3bb",
"bytes": 84253
},
{
"path": "hockey_data/agent_bridge.py",
"action": "replace",
"base_sha256": "4daa00ed80a929bc8ab9cac50525fc983ff7bae4e5abbed5f4fa3598f5078f0f",
"stage1_sha256": "7cf3d8dd3e0af7e0f9f3c11a58d018b1c3a88060f1d89a9e6338c0f98a7cba08",
"updated_sha256": "7c4da6ba77b17cf906d37645514c80ca8289cbeb7601dbb6907bfa51b0017083",
"bytes": 278915
},
{
"path": "hockey_data/async_work.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "d491a15e5e233c3d30d623f86a46402364d4296c675a238d3df72c4a840986e0",
"bytes": 1814
},
{
"path": "hockey_data/auth_bridge.py",
"action": "replace",
"base_sha256": "312b69cd084cdafeb1900f25c340fa21d81fe2e6adb91aef44f8034ddd7e2e05",
"stage1_sha256": "312b69cd084cdafeb1900f25c340fa21d81fe2e6adb91aef44f8034ddd7e2e05",
"updated_sha256": "4f2ceba8e2f49372454dcf822f5387931739a4abd5c89bb5c9437d0db6f6e2e7",
"bytes": 14715
},
{
"path": "hockey_data/auth_router.py",
"action": "replace",
"base_sha256": "616efa9a107cde53bac5bf3304ac2d71dfdd5eb5d709ab243054b48daa772118",
"stage1_sha256": "616efa9a107cde53bac5bf3304ac2d71dfdd5eb5d709ab243054b48daa772118",
"updated_sha256": "645d8b610a37dda58ea5a70457976640264b8499e72b6e6b79aeef33b94586b9",
"bytes": 7870
},
{
"path": "hockey_data/database.py",
"action": "replace",
"base_sha256": "1c298f8bb85bc6a52b3fc6e7e58e215e48d36e94c8861edbe0392003a3bc5c25",
"stage1_sha256": "5b058cab427269ed223b99122816b19938c2338e70025fb88eec0b481ba0b1fa",
"updated_sha256": "1ca3b7ea41a85d24401d393bf51a6a7a04eb70678f8481145f71da80dd07b2fc",
"bytes": 15921
},
{
"path": "hockey_data/mapping_context.py",
"action": "replace",
"base_sha256": "6db8e9aee7164a85f6494f88ad854d2602371de1b8639a22bc670fe23ddeb161",
"stage1_sha256": "99553e31f00d65190310666bfac178616f8c37dfbb182510990d02de762ff348",
"updated_sha256": "f33d22d64a991d7a1f0ac88e1680151a769b336ee3e9fecef8755b846160b822",
"bytes": 87920
},
{
"path": "hockey_data/match_access.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": "a44f2aa8de9a347e3b452e0c9e2c173b079444dd89b9d3f40707bf55407d9011",
"updated_sha256": "9f4811b83eec2ca55e6d58099b2aedd420cbc2bbdb04dccbb2946a8b33f93068",
"bytes": 27276
},
{
"path": "hockey_data/models.py",
"action": "replace",
"base_sha256": "4ff5b2378ab972c991e16ac600b554bf67169a87808777e57ca9b79a05eadf4f",
"stage1_sha256": "bff59fc541974dc3c71458d51d5772e4f7d9cac1fc0d03c0ff4c63588aa17991",
"updated_sha256": "c77f257bd9f60fe5dfda2b3d62584b50173819468eca4662fcdcc2a9cfe391c6",
"bytes": 73138
},
{
"path": "hockey_data/router.py",
"action": "replace",
"base_sha256": "e5c2b94ab83c5a9bde48ca5c500e80e0ae737e22098d31fd392ee6277a000b29",
"stage1_sha256": "f80d296fb4e204378f79cb39cb8d5774f4cceb2d3833bb5b8d83c6c030a71ac8",
"updated_sha256": "bec255b080cf66d8f4105d965bb8c5d6ac8b0444b2dbe89833ae195484f4821c",
"bytes": 67863
},
{
"path": "hockey_data/service.py",
"action": "replace",
"base_sha256": "df1c7e19777dd3a40b1204d3e335eed05cd9586510b9a7db871d47caf4e17284",
"stage1_sha256": "37443444da11c10df6d1f29dbfe736b1b17acc007f2dc0cb1238618cad03d1b2",
"updated_sha256": "96429c4f5228b01cd115152617fde502a9febc1f685afbc5107e0b5b4a1c3c70",
"bytes": 389282
},
{
"path": "hockey_data/static/admin-directories.css",
"action": "replace",
"base_sha256": "e0897e5cf5099dadd7f48348ede5d9043eda7f3273e7ef9f21719a31cf021f4a",
"stage1_sha256": "e0897e5cf5099dadd7f48348ede5d9043eda7f3273e7ef9f21719a31cf021f4a",
"updated_sha256": "f1d6727f9b697f51c49be3e7df843a07c75a98778707d8535030862686a7ca4b",
"bytes": 112514
},
{
"path": "hockey_data/static/admin-directories.js",
"action": "replace",
"base_sha256": "5b9c5a91448c2c524afdb8e64c22fec30438b68a41e4e34445e0c62645927dd8",
"stage1_sha256": "efdb1eae5a738250084f4fd9f164f5d569088c91c1d3279daab2b625189cb876",
"updated_sha256": "e99d673531d497bdf9d48e12c8d4df4ffa1e961aa4a21df110208385ea5072e7",
"bytes": 279460
},
{
"path": "hockey_data/static/agent-devices.js",
"action": "replace",
"base_sha256": "fd1b1a833e712ade1295d872958d8e9b616c62d69659dc3e082254bd2b09652a",
"stage1_sha256": "c13fb0efd12debb06e4ac53ffb511bd94515639bfb4320e5f1dbe0abc5e379cb",
"updated_sha256": "c13fb0efd12debb06e4ac53ffb511bd94515639bfb4320e5f1dbe0abc5e379cb",
"bytes": 22668
},
{
"path": "hockey_data/static/agent-diagnostics.js",
"action": "replace",
"base_sha256": "c9e4e8b975af1b0ae01208bb181f281213a28ae7b527d1d66ed1cf28183d3c98",
"stage1_sha256": "89b2ffe30bf961090b4299ee55060697a0753142fd52b101e26d17a4eda87ae8",
"updated_sha256": "89b2ffe30bf961090b4299ee55060697a0753142fd52b101e26d17a4eda87ae8",
"bytes": 12633
},
{
"path": "hockey_data/static/match-access.css",
"action": "add",
"base_sha256": null,
"stage1_sha256": "cc858443000e8b03b460797c4c71696dd668f53d6baba9269eed3ee7a71c9568",
"updated_sha256": "013fd8a0312cbe1eabe0200cbfe55f8d85f6aaa0dbcf18e5e6cdeae2704c15b9",
"bytes": 3149
},
{
"path": "hockey_data/static/match-access.js",
"action": "add",
"base_sha256": null,
"stage1_sha256": "14ed9cbd8239dd60b8e2cc19ec2fe0452b3a0cf701e1b6829730a5592dfafc3f",
"updated_sha256": "fb8dc03d384d58a0631b81715b62acdd41ed8875a3ef56d8f4e19fd3180a4041",
"bytes": 22601
},
{
"path": "hockey_data/static/match-status-header.js",
"action": "replace",
"base_sha256": "7745dbf87b4cc091de9ea9baeda8e56d09aa83a03059a61638c5023dfc2b4b73",
"stage1_sha256": "1c615b1b388c597cde8abc5de641807a468cf6a73681333b580e2544ca5a92a6",
"updated_sha256": "1c615b1b388c597cde8abc5de641807a468cf6a73681333b580e2544ca5a92a6",
"bytes": 18217
},
{
"path": "hockey_data/static/session-activity.js",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "3c835ae5265c13fcd4686355961c2f150b4bcc5cb134a1d03c2c1b9b9d85a52d",
"bytes": 4332
},
{
"path": "hockey_data/static/tournament-menu.js",
"action": "replace",
"base_sha256": "7bc4986a216a562354306ae73d417cedd0b08d88141b9a18bede2a0a73f7c0a5",
"stage1_sha256": "4e962321212c1b23bce98c1077d26e959ae1550cdbf5b48d88d1225eeec65833",
"updated_sha256": "223fb629a785bcbea73533c994dbfde1e84bd358e63880b78f929c315fe1c246",
"bytes": 128669
},
{
"path": "hockey_data/vmix_portable.py",
"action": "replace",
"base_sha256": "f74d7eca8e0ff1c46b726857fbc530f9f29ae17b277d5ed15826ba58ffed3c74",
"stage1_sha256": "f74d7eca8e0ff1c46b726857fbc530f9f29ae17b277d5ed15826ba58ffed3c74",
"updated_sha256": "fa4e3ed13be7d621f4bd19e1b947553896727a3622d89563a874497de85d5cda",
"bytes": 24220
},
{
"path": "requirements.txt",
"action": "replace",
"base_sha256": "3fe363a0de01e463e27395cfdb08d93d02100887c9640c7f396a5e0e414c8988",
"stage1_sha256": "1407ef85d9e64bf831eb2956a66948f410125decabca0f22bf0e22d624fcb7fb",
"updated_sha256": "1407ef85d9e64bf831eb2956a66948f410125decabca0f22bf0e22d624fcb7fb",
"bytes": 227
},
{
"path": "settings/README.md",
"action": "replace",
"base_sha256": "c7a4cbbd7ddd727717ff420bb317f36289a0b8b3af688fa5e557a88ccb86c721",
"stage1_sha256": "c7a4cbbd7ddd727717ff420bb317f36289a0b8b3af688fa5e557a88ccb86c721",
"updated_sha256": "81df38a9e09702750cf09fa7ebf1d7f7021ce28d8b578852bb45a0d2b5ba464a",
"bytes": 2252
},
{
"path": "tests/stage2_penalty_countdown.cjs",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "d039f424fd2d40044726872937e76f3ea2500dcb3b003db07dcc3642ae6ea524",
"bytes": 4772
},
{
"path": "tests/stage2_session_activity.cjs",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "14b31ba72d7296b7edd8714cd106e9881423f9c73a8b380d5c34d095a590252b",
"bytes": 4702
},
{
"path": "tests/support.py",
"action": "replace",
"base_sha256": "0731ba50f0f05b267e63f8202f133c53a207b16b8385013077941e9db36bba1f",
"stage1_sha256": "61d45059086316cf356650b89dd12541a94041ca7cfe844716fa2e41bbf046b2",
"updated_sha256": "dea63976c42f9be71a8a348d657475f066bcf23f053e9358101a487523fcd29a",
"bytes": 1143
},
{
"path": "tests/test_agent_bridge.py",
"action": "replace",
"base_sha256": "41bcf1490be1111998f6e52c3eed0b7b5158d0a6ad9f16b827d605adef6f66d0",
"stage1_sha256": "41bcf1490be1111998f6e52c3eed0b7b5158d0a6ad9f16b827d605adef6f66d0",
"updated_sha256": "327cc0cb0c99815271d6733533d5ec4a2eabcaa8dcc29267bbdaaf418c3cd6ab",
"bytes": 30897
},
{
"path": "tests/test_build110_match_roster_atomic_switch.py",
"action": "replace",
"base_sha256": "dd683d9a3b9d700b8b04d1aeeb2517c3fe3b650a7f4ef84e84ae8f5e9b8db7e8",
"stage1_sha256": "dd683d9a3b9d700b8b04d1aeeb2517c3fe3b650a7f4ef84e84ae8f5e9b8db7e8",
"updated_sha256": "ea42b58398db3e87692ab1a9cb8991e8580f0eac86d093f6c32f16cd0591639c",
"bytes": 2117
},
{
"path": "tests/test_build111_agent_match_handoff.py",
"action": "replace",
"base_sha256": "2e7e7da77bf6a19930743b0c4dcabcea697adf7ddaf824ab1ad6f783cec41e76",
"stage1_sha256": "2e7e7da77bf6a19930743b0c4dcabcea697adf7ddaf824ab1ad6f783cec41e76",
"updated_sha256": "7c27dfde250d2fff0db5a387ee131083ea9114e52ad1418a456134796a2d83fc",
"bytes": 3873
},
{
"path": "tests/test_build47_team_state_scoreboard_overlays.py",
"action": "replace",
"base_sha256": "f359d352f9b3cb8190bef96b7fdd54dfc1fb0d048a7757b48852ccd93ba5911e",
"stage1_sha256": "c25c1df2670def6e1e9bb2683143d6ffacd3791214cfd551da924f31b0b5440b",
"updated_sha256": "48e2517d4a3648c34664b7819a2db189d7ceb55d667f5970b1911809935b0417",
"bytes": 2788
},
{
"path": "tests/test_build65_nonadmin_match_selection.py",
"action": "replace",
"base_sha256": "31afe69d86947181a5914fe9a997b4af841e6649ec5a000203148462b4131fc5",
"stage1_sha256": "6ac2cc2aa37dfdf229ed501a256bab4220ea6d0c27f56806382de9b753f26a61",
"updated_sha256": "6ac2cc2aa37dfdf229ed501a256bab4220ea6d0c27f56806382de9b753f26a61",
"bytes": 1108
},
{
"path": "tests/test_build84_penalty_selection_persistence_prepared_titles.py",
"action": "replace",
"base_sha256": "5fa19a0af5bcb643d4370e747791163051fca189846735b97ab845fdb8a22a1c",
"stage1_sha256": "4c3cdac2e32e022201c2418ad41acd05a5453b3db1c561dd1ef3276d926fa7ed",
"updated_sha256": "4c3cdac2e32e022201c2418ad41acd05a5453b3db1c561dd1ef3276d926fa7ed",
"bytes": 8624
},
{
"path": "tests/test_build86_penalty_context_prepared_titles.py",
"action": "replace",
"base_sha256": "591b0fe0b3327c4a6b8b42636cd08110ab7bedb376f8fcc22a9f60f1aff717ff",
"stage1_sha256": "7dcac6c12740cb08a123f155665784f4a9474294d88b12046b65396e01b1abd3",
"updated_sha256": "7dcac6c12740cb08a123f155665784f4a9474294d88b12046b65396e01b1abd3",
"bytes": 4756
},
{
"path": "tests/test_build89_single_penalty_plate_transition.py",
"action": "replace",
"base_sha256": "bfecd73b555b301a1babf4e9cae9ee4ad2797a046422812a11df474b474f4739",
"stage1_sha256": "bfecd73b555b301a1babf4e9cae9ee4ad2797a046422812a11df474b474f4739",
"updated_sha256": "d9a8255c5ad2ace83b9d688dd0f5f4615f409eb94b3ddd1740f8b07b2753be66",
"bytes": 3727
},
{
"path": "tests/test_build93_countdown_reseed_on_start.py",
"action": "replace",
"base_sha256": "293a38e71b43d496cdf9137986928d9f3ae493042b9b53791762dff2554642c2",
"stage1_sha256": "293a38e71b43d496cdf9137986928d9f3ae493042b9b53791762dff2554642c2",
"updated_sha256": "b85692e09ddc0e885575ccca43c43d380d49f8dc9707e4379a25cb052e071007",
"bytes": 1900
},
{
"path": "tests/test_build95_countdown_explicit_start_stop_sync.py",
"action": "replace",
"base_sha256": "be4b797d95387275e2ca7cb1acbc7e32adf919fe51994a93470685e04200bc62",
"stage1_sha256": "be4b797d95387275e2ca7cb1acbc7e32adf919fe51994a93470685e04200bc62",
"updated_sha256": "82058d1bb2a7d5e676307fe721d14a4a39f14e8f8e36e9918d0967b34dee70eb",
"bytes": 2596
},
{
"path": "tests/test_build98_timer_countdown_sync_fixed_pin.py",
"action": "replace",
"base_sha256": "5a1753660ee712fb083efbccbacc42d1b4578bd8c020a2739fab9972e8930982",
"stage1_sha256": "5a1753660ee712fb083efbccbacc42d1b4578bd8c020a2739fab9972e8930982",
"updated_sha256": "eeff1d148467167952060628ab9aa0775f2eb3345939ea101efe59b83dcd8d2a",
"bytes": 3105
},
{
"path": "tests/test_multi_agent_routing.py",
"action": "replace",
"base_sha256": "961a43822dfd8e957e8dfa8b6d348f72bde0a377244ef962cd08c503ae94ce59",
"stage1_sha256": "961a43822dfd8e957e8dfa8b6d348f72bde0a377244ef962cd08c503ae94ce59",
"updated_sha256": "0c5857ef6e306bba679f9ba9648afd34b89b013f4d4a1c2f799b718391d0a3dd",
"bytes": 4614
},
{
"path": "tests/test_stage1_expressions.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": "d11e26fdfd759f4aa1c62ffb08ff4762b652ccdb9ef7ab6efc796c1e32883113",
"updated_sha256": "d11e26fdfd759f4aa1c62ffb08ff4762b652ccdb9ef7ab6efc796c1e32883113",
"bytes": 2116
},
{
"path": "tests/test_stage1_match_access.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": "f998ae041bd6951f75ca403ca0af9da1c86bd02586e809aa0bdb05653c101907",
"updated_sha256": "f998ae041bd6951f75ca403ca0af9da1c86bd02586e809aa0bdb05653c101907",
"bytes": 16208
},
{
"path": "tests/test_stage2_custom_pluses.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "ebd11f142427c35c963fad151313f2ce7175a4afe2d9e870db1a2e2ff9bce836",
"bytes": 3211
},
{
"path": "tests/test_stage2_idle_session.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "dc47703fccac5db7b9e2b8aa3fd8d2c5b9f6637f7bb07e3336f729f2e2ce83b4",
"bytes": 6138
},
{
"path": "tests/test_stage2_mapping_inventory.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "752f1b07ec360b28e4823747095c6287183b65060ef6579dcf1a1b70dacbd150",
"bytes": 3602
},
{
"path": "tests/test_stage2_penalty_countdown.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "088e1de13a214c8816287e39f80934ea25b02276617bb4571f4f54f92a4e4f44",
"bytes": 589
},
{
"path": "tests/test_stage2_performance.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "d733a2bda2047ed77d6222e23ba468d5c62f02d5d566d4ecccf2fa4394d85c03",
"bytes": 11947
},
{
"path": "tests/test_stage2_ui_storage.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "5ebc4d3e60fe17449256aefa42839043a2a324ccebca934a3af84dc64f0cec1b",
"bytes": 5543
},
{
"path": "ui_builder/integration.py",
"action": "replace",
"base_sha256": "d5379c5a63003e805a5e37f6585c1271952edd87b310bc7ce716c138420a89a9",
"stage1_sha256": "024a49a82032d18acc85d51a2bcd00296ae8ce008347477e62881a8ef9a15da1",
"updated_sha256": "a3845126817966b0c02e140f6c6a5f146b621a6ee716667f4456f612c579d465",
"bytes": 5738
},
{
"path": "ui_builder/manager.py",
"action": "replace",
"base_sha256": "a13a1601debdd0b76bea3ee336907656e1fff23b26c45deb308bd5627a6c158d",
"stage1_sha256": "a13a1601debdd0b76bea3ee336907656e1fff23b26c45deb308bd5627a6c158d",
"updated_sha256": "ae930ed4de95d36eb442d2492db3e1c04726582c99fb6713429ab6a91335b469",
"bytes": 37223
},
{
"path": "ui_builder/router.py",
"action": "replace",
"base_sha256": "199922831e0329e87f9a23b99b35c7910014b5ffaed169fcbdec9f92f6c6d18e",
"stage1_sha256": "199922831e0329e87f9a23b99b35c7910014b5ffaed169fcbdec9f92f6c6d18e",
"updated_sha256": "740398f215b7061ee8d58eb47e1f31f17d4fe9a0b6707ed3ebc0159e8f327f48",
"bytes": 4517
},
{
"path": "ui_builder/static/app.js",
"action": "replace",
"base_sha256": "3baaf37c406702355c7576c92971191c7ffb576a56a0865b040046a6c741a06a",
"stage1_sha256": "83a744e90d7f8de87bfa3b697fe0b83cadf3490657509488fdac4376a7bbf636",
"updated_sha256": "7e8ccb7aefc47eb547a21f6dd06b9bd941c857b9709499e266213c5d353a86d8",
"bytes": 894534
},
{
"path": "ui_builder/static/index.html",
"action": "replace",
"base_sha256": "3bf6ec196fe469796edc97c04dd163bc13537cc771048106f0b765aaf2b047a4",
"stage1_sha256": "36cf899859d278d98283d4898f42d670c113c038b71f72b007b92c63c2abd5ae",
"updated_sha256": "36cf899859d278d98283d4898f42d670c113c038b71f72b007b92c63c2abd5ae",
"bytes": 10717
},
{
"path": "ui_builder/static/runtime.html",
"action": "replace",
"base_sha256": "3047e75e7799d4e2bcf3e54916214c0c3159461b31c3ab000fb2dd80ee8bb4f9",
"stage1_sha256": "37b8272650ccf88e7f9504b7d04f13294f59abf431c107e0603cfbd86df2580b",
"updated_sha256": "37b8272650ccf88e7f9504b7d04f13294f59abf431c107e0603cfbd86df2580b",
"bytes": 3316
},
{
"path": "ui_builder/static/styles.css",
"action": "replace",
"base_sha256": "0ec10c94650ae81e2bd9d623975d0fcd959ca66362f6df75cd2a7ceda3a62df4",
"stage1_sha256": "0ec10c94650ae81e2bd9d623975d0fcd959ca66362f6df75cd2a7ceda3a62df4",
"updated_sha256": "c4158a36896f5ff95ae070915ca4b7cfd63e9ca6097499721e7a9df5fffa3e24",
"bytes": 287204
},
{
"path": "ui_builder/storage.py",
"action": "add",
"base_sha256": null,
"stage1_sha256": null,
"updated_sha256": "67a720a4bff48fcfd2c185c4a65ec85a4574090f474fd83c556789f3cb1c5f1d",
"bytes": 3566
}
],
"validation": {
"passed": 409,
"failed": 40,
"new_failures": [],
"unchanged_failure_ids": [
"tests/test_build101_simple_timer_runtime.py::test_timer_start_stop_protocol_is_minimal",
"tests/test_build103_space_timer_fast_transport.py::test_space_edge_is_single_fire_and_local_timer_changes_before_transport",
"tests/test_build103_space_timer_fast_transport.py::test_timer_fast_contract_and_build_version",
"tests/test_build104_timer_stop_no_rollback.py::test_explicit_edit_still_can_seed_stopped_clock",
"tests/test_build104_timer_stop_no_rollback.py::test_pause_stop_sends_only_pause_only_command",
"tests/test_build104_timer_stop_no_rollback.py::test_penalty_pause_preserves_native_vmix_frozen_value",
"tests/test_build105_suspend_countdown_pause.py::test_explicit_reset_set_path_keeps_stop_then_set",
"tests/test_build105_suspend_countdown_pause.py::test_penalty_normal_pause_uses_suspend",
"tests/test_build105_suspend_countdown_pause.py::test_space_pause_uses_suspend_not_stop_reset",
"tests/test_build106_runtime_authoritative_timer.py::test_build106_version",
"tests/test_build106_runtime_authoritative_timer.py::test_countdown_start_hard_reseeds_before_start",
"tests/test_build106_runtime_authoritative_timer.py::test_pause_is_reseeded_from_runtime_not_native_clock",
"tests/test_build106_runtime_authoritative_timer.py::test_scoreboard_show_syncs_timer_before_overlay_steps",
"tests/test_build107_pause_change_countdown.py::test_runtime_version",
"tests/test_build107_pause_change_countdown.py::test_start_uses_change_then_start_without_stop_or_set_duration",
"tests/test_build108_native_pause_no_resync.py::test_explicit_time_change_seeds_even_before_first_space",
"tests/test_build108_native_pause_no_resync.py::test_game_clock_helper_only_seeds_on_set",
"tests/test_build110_match_roster_atomic_switch.py::test_first_time_match_waits_for_core_roster_before_polling",
"tests/test_build110_match_roster_atomic_switch.py::test_selected_game_cache_is_match_scoped_and_local",
"tests/test_build111_agent_match_handoff.py::test_mapping_is_refreshed_only_after_roster_enrichment",
"tests/test_build44_strength_vmix_sync.py::test_runtime_refreshes_only_changed_mapping_when_strength_changes",
"tests/test_build56_trigger_save_onair.py::test_quick_panel_on_air_tracking_has_ack_confirmed_fallback",
"tests/test_build59_toasts_and_adaptive_runtime.py::test_runtime_can_grow_in_f11_and_large_viewports",
"tests/test_build62_quick_panel_onair_reconcile.py::test_overlay_parser_accepts_legacy_function_strings",
"tests/test_build86_penalty_context_prepared_titles.py::test_prepared_titles_is_forced_to_last_runtime_tab_and_uses_hockey_api_directly",
"tests/test_build93_countdown_reseed_on_start.py::test_game_countdown_resume_is_reseeded_before_start",
"tests/test_build93_countdown_reseed_on_start.py::test_hockey_timer_shortcut_reseeds_game_and_penalty_on_resume",
"tests/test_build93_countdown_reseed_on_start.py::test_native_mode_still_has_no_per_second_countdown_transport",
"tests/test_build95_countdown_explicit_start_stop_sync.py::test_combined_shortcut_changes_web_first_then_synchronizes_vmix",
"tests/test_build95_countdown_explicit_start_stop_sync.py::test_main_countdown_start_pause_stop_all_hard_sync_web_value",
"tests/test_build97_mapping_chunked_transport.py::test_build97_runtime_version_and_mapping_diagnostics",
"tests/test_build97_mapping_chunked_transport.py::test_mapping_chunk_transport_sends_300_plus_links_in_small_batches",
"tests/test_build97_mapping_chunked_transport.py::test_mapping_transport_retries_isolated_failed_command",
"tests/test_build97_mapping_chunked_transport.py::test_mapping_transport_splits_timeout_batch_and_keeps_going",
"tests/test_build98_timer_countdown_sync_fixed_pin.py::test_countdown_start_is_simple_set_start",
"tests/test_build98_timer_countdown_sync_fixed_pin.py::test_pause_and_stop_freeze_without_reseed",
"tests/test_mapping_admin_visibility.py::test_mapping_has_series_autolink_and_visible_sql_table_grid",
"tests/test_shortcut_sequences.py::test_build90_native_countdown_avoids_per_second_transport",
"tests/test_shortcut_sequences.py::test_hockey_timer_shortcut_supports_native_countdown_and_legacy_text_mirror",
"tests/test_shortcut_sequences.py::test_overlay_group_repeat_uses_transition_out_not_all_off"
],
"new_stage2_tests_passed": 31,
"stage1_tests_passed": 64,
"python_syntax_files": 39,
"javascript_syntax_files": 10,
"python_3_11_syntax": true,
"real_postgresql_tested": false,
"real_vmix_tested": false,
"ui_checks": [
"operator spectator and explicit handoff",
"rights dialog",
"bilingual custom pluses",
"penalty native Countdown to fake Agent",
"Mapping dropdowns and offline scan deletion",
"infraction menu close"
],
"auth_checks": [
"idle expiry",
"rolling cookie",
"7h active browser simulation",
"no renewal by polling",
"multi-tab session",
"offline and timeout recovery"
],
"sql_before": {
"resolve_context": {
"SELECT": 52
},
"save_four_context_values": {
"SELECT": 224,
"INSERT": 4
},
"scoreboard_json": {
"SELECT": 9,
"UPDATE": 1
},
"100_command_ack_statuses": {
"SELECT": 100,
"UPDATE": 100
},
"100_overlay_messages": {
"SELECT": 100,
"UPDATE": 100
},
"20_scheduler_checks_no_due_sources": {
"SELECT": 20
},
"selected_game_with_100_historical_matches": {
"SELECT": 9,
"UPDATE": 3,
"queries_scanning_tournament": 1
}
},
"sql_after": {
"resolve_context": {
"SELECT": 4
},
"save_four_context_values": {
"SELECT": 5,
"INSERT": 1
},
"scoreboard_json": {
"SELECT": 9
},
"100_command_ack_statuses": {},
"100_overlay_messages": {
"SELECT": 1,
"UPDATE": 1
},
"20_scheduler_checks_no_due_sources": {
"SELECT": 1
},
"selected_game_with_100_historical_matches": {
"SELECT": 2,
"UPDATE": 1,
"queries_scanning_tournament": 0
}
}
}
}