Files
hockey_new/STAGE1_MANIFEST.json

296 lines
14 KiB
JSON

{
"release": "2026.09.26.1",
"base_release": "2026.09.24.4",
"base_archive": "hockey(9).zip",
"base_archive_sha256": "32907eb9353ed961090f03cb1637cf63ce1b06bf755c3fc2413a33c2262bccb3",
"package_type": "changed-files update; extract into existing project root",
"delete_files": [],
"files": [
{
"path": "app.py",
"action": "replace",
"base_sha256": "f3f06139e4a92eac1386616c834dd4a0965e815e9f2f284337b22ff51e81c195",
"updated_sha256": "c9ae453b347624ade097e1023efa2a1c91a30cf44a155723a2c25e254f1504ec",
"bytes": 19719
},
{
"path": "broadcast_settings/expressions.py",
"action": "add",
"base_sha256": null,
"updated_sha256": "83e84e1943e763ba08db11fd885dea4147309fff87e61a205763c3bc26ed82de",
"bytes": 9364
},
{
"path": "broadcast_settings/transform.py",
"action": "replace",
"base_sha256": "20c04429d90165946127945938be1a8822addebe5a286dba47539d140e35bc5b",
"updated_sha256": "276abb72aa02335f566f9e041f81f60f6d8aefeb1b06ee3a271a4a264bb9a3bb",
"bytes": 84253
},
{
"path": "hockey_data/agent_bridge.py",
"action": "replace",
"base_sha256": "4daa00ed80a929bc8ab9cac50525fc983ff7bae4e5abbed5f4fa3598f5078f0f",
"updated_sha256": "7cf3d8dd3e0af7e0f9f3c11a58d018b1c3a88060f1d89a9e6338c0f98a7cba08",
"bytes": 261432
},
{
"path": "hockey_data/database.py",
"action": "replace",
"base_sha256": "1c298f8bb85bc6a52b3fc6e7e58e215e48d36e94c8861edbe0392003a3bc5c25",
"updated_sha256": "5b058cab427269ed223b99122816b19938c2338e70025fb88eec0b481ba0b1fa",
"bytes": 15387
},
{
"path": "hockey_data/mapping_context.py",
"action": "replace",
"base_sha256": "6db8e9aee7164a85f6494f88ad854d2602371de1b8639a22bc670fe23ddeb161",
"updated_sha256": "99553e31f00d65190310666bfac178616f8c37dfbb182510990d02de762ff348",
"bytes": 87308
},
{
"path": "hockey_data/match_access.py",
"action": "add",
"base_sha256": null,
"updated_sha256": "a44f2aa8de9a347e3b452e0c9e2c173b079444dd89b9d3f40707bf55407d9011",
"bytes": 26835
},
{
"path": "hockey_data/models.py",
"action": "replace",
"base_sha256": "4ff5b2378ab972c991e16ac600b554bf67169a87808777e57ca9b79a05eadf4f",
"updated_sha256": "bff59fc541974dc3c71458d51d5772e4f7d9cac1fc0d03c0ff4c63588aa17991",
"bytes": 73057
},
{
"path": "hockey_data/router.py",
"action": "replace",
"base_sha256": "e5c2b94ab83c5a9bde48ca5c500e80e0ae737e22098d31fd392ee6277a000b29",
"updated_sha256": "f80d296fb4e204378f79cb39cb8d5774f4cceb2d3833bb5b8d83c6c030a71ac8",
"bytes": 66588
},
{
"path": "hockey_data/service.py",
"action": "replace",
"base_sha256": "df1c7e19777dd3a40b1204d3e335eed05cd9586510b9a7db871d47caf4e17284",
"updated_sha256": "37443444da11c10df6d1f29dbfe736b1b17acc007f2dc0cb1238618cad03d1b2",
"bytes": 383219
},
{
"path": "hockey_data/static/admin-directories.js",
"action": "replace",
"base_sha256": "5b9c5a91448c2c524afdb8e64c22fec30438b68a41e4e34445e0c62645927dd8",
"updated_sha256": "efdb1eae5a738250084f4fd9f164f5d569088c91c1d3279daab2b625189cb876",
"bytes": 276359
},
{
"path": "hockey_data/static/agent-devices.js",
"action": "replace",
"base_sha256": "fd1b1a833e712ade1295d872958d8e9b616c62d69659dc3e082254bd2b09652a",
"updated_sha256": "c13fb0efd12debb06e4ac53ffb511bd94515639bfb4320e5f1dbe0abc5e379cb",
"bytes": 22668
},
{
"path": "hockey_data/static/agent-diagnostics.js",
"action": "replace",
"base_sha256": "c9e4e8b975af1b0ae01208bb181f281213a28ae7b527d1d66ed1cf28183d3c98",
"updated_sha256": "89b2ffe30bf961090b4299ee55060697a0753142fd52b101e26d17a4eda87ae8",
"bytes": 12633
},
{
"path": "hockey_data/static/match-access.css",
"action": "add",
"base_sha256": null,
"updated_sha256": "cc858443000e8b03b460797c4c71696dd668f53d6baba9269eed3ee7a71c9568",
"bytes": 1163
},
{
"path": "hockey_data/static/match-access.js",
"action": "add",
"base_sha256": null,
"updated_sha256": "14ed9cbd8239dd60b8e2cc19ec2fe0452b3a0cf701e1b6829730a5592dfafc3f",
"bytes": 19175
},
{
"path": "hockey_data/static/match-status-header.js",
"action": "replace",
"base_sha256": "7745dbf87b4cc091de9ea9baeda8e56d09aa83a03059a61638c5023dfc2b4b73",
"updated_sha256": "1c615b1b388c597cde8abc5de641807a468cf6a73681333b580e2544ca5a92a6",
"bytes": 18217
},
{
"path": "hockey_data/static/tournament-menu.js",
"action": "replace",
"base_sha256": "7bc4986a216a562354306ae73d417cedd0b08d88141b9a18bede2a0a73f7c0a5",
"updated_sha256": "4e962321212c1b23bce98c1077d26e959ae1550cdbf5b48d88d1225eeec65833",
"bytes": 128426
},
{
"path": "requirements.txt",
"action": "replace",
"base_sha256": "3fe363a0de01e463e27395cfdb08d93d02100887c9640c7f396a5e0e414c8988",
"updated_sha256": "1407ef85d9e64bf831eb2956a66948f410125decabca0f22bf0e22d624fcb7fb",
"bytes": 227
},
{
"path": "tests/support.py",
"action": "replace",
"base_sha256": "0731ba50f0f05b267e63f8202f133c53a207b16b8385013077941e9db36bba1f",
"updated_sha256": "61d45059086316cf356650b89dd12541a94041ca7cfe844716fa2e41bbf046b2",
"bytes": 1086
},
{
"path": "tests/test_build47_team_state_scoreboard_overlays.py",
"action": "replace",
"base_sha256": "f359d352f9b3cb8190bef96b7fdd54dfc1fb0d048a7757b48852ccd93ba5911e",
"updated_sha256": "c25c1df2670def6e1e9bb2683143d6ffacd3791214cfd551da924f31b0b5440b",
"bytes": 2677
},
{
"path": "tests/test_build65_nonadmin_match_selection.py",
"action": "replace",
"base_sha256": "31afe69d86947181a5914fe9a997b4af841e6649ec5a000203148462b4131fc5",
"updated_sha256": "6ac2cc2aa37dfdf229ed501a256bab4220ea6d0c27f56806382de9b753f26a61",
"bytes": 1108
},
{
"path": "tests/test_build84_penalty_selection_persistence_prepared_titles.py",
"action": "replace",
"base_sha256": "5fa19a0af5bcb643d4370e747791163051fca189846735b97ab845fdb8a22a1c",
"updated_sha256": "4c3cdac2e32e022201c2418ad41acd05a5453b3db1c561dd1ef3276d926fa7ed",
"bytes": 8624
},
{
"path": "tests/test_build86_penalty_context_prepared_titles.py",
"action": "replace",
"base_sha256": "591b0fe0b3327c4a6b8b42636cd08110ab7bedb376f8fcc22a9f60f1aff717ff",
"updated_sha256": "7dcac6c12740cb08a123f155665784f4a9474294d88b12046b65396e01b1abd3",
"bytes": 4756
},
{
"path": "tests/test_stage1_expressions.py",
"action": "add",
"base_sha256": null,
"updated_sha256": "d11e26fdfd759f4aa1c62ffb08ff4762b652ccdb9ef7ab6efc796c1e32883113",
"bytes": 2116
},
{
"path": "tests/test_stage1_match_access.py",
"action": "add",
"base_sha256": null,
"updated_sha256": "f998ae041bd6951f75ca403ca0af9da1c86bd02586e809aa0bdb05653c101907",
"bytes": 16208
},
{
"path": "ui_builder/integration.py",
"action": "replace",
"base_sha256": "d5379c5a63003e805a5e37f6585c1271952edd87b310bc7ce716c138420a89a9",
"updated_sha256": "024a49a82032d18acc85d51a2bcd00296ae8ce008347477e62881a8ef9a15da1",
"bytes": 6043
},
{
"path": "ui_builder/static/app.js",
"action": "replace",
"base_sha256": "3baaf37c406702355c7576c92971191c7ffb576a56a0865b040046a6c741a06a",
"updated_sha256": "83a744e90d7f8de87bfa3b697fe0b83cadf3490657509488fdac4376a7bbf636",
"bytes": 892684
},
{
"path": "ui_builder/static/index.html",
"action": "replace",
"base_sha256": "3bf6ec196fe469796edc97c04dd163bc13537cc771048106f0b765aaf2b047a4",
"updated_sha256": "36cf899859d278d98283d4898f42d670c113c038b71f72b007b92c63c2abd5ae",
"bytes": 10717
},
{
"path": "ui_builder/static/runtime.html",
"action": "replace",
"base_sha256": "3047e75e7799d4e2bcf3e54916214c0c3159461b31c3ab000fb2dd80ee8bb4f9",
"updated_sha256": "37b8272650ccf88e7f9504b7d04f13294f59abf431c107e0603cfbd86df2580b",
"bytes": 3316
},
{
"path": "UPDATE_STAGE1_RU.md",
"action": "add",
"base_sha256": null,
"updated_sha256": "12dbc2e8419fb81dc93788d806f1257c6804263b71731abaa2dddda6c3201218",
"bytes": 14856
}
],
"validation": {
"stage1_tests_passed": 64,
"full_suite_passed": 381,
"full_suite_failed": 40,
"new_failures_vs_base": [],
"remaining_baseline_failures": [
"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"
],
"javascript_dom": [
"default viewer",
"explicit claim",
"native web timer start",
"viewer controls disabled",
"no viewer mutation requests",
"viewer unload",
"viewer reload",
"explicit handoff",
"old owner fenced",
"new owner pause persisted",
"controller period selector enabled",
"removed Agent not restored from legacy storage",
"initialization without crypto.randomUUID"
],
"javascript_runtime_errors": [],
"changed_python_syntax_checked": 18,
"changed_javascript_syntax_checked": 7,
"native_countdown_helpers_byte_identical": true,
"native_countdown_transition_cases": 6,
"postgresql_ddl_compilation": "passed; no PostgreSQL connection",
"not_executed": [
"real PostgreSQL integration",
"real Windows browser and Agent.exe",
"end-to-end vMix",
"production load test"
]
}
}