from pathlib import Path ROOT=Path(__file__).resolve().parents[1] def test_version(): assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.15" def test_frontend_sends_multitask_trace_headers(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert 'X-Multitask-Request-ID' in js assert 'X-Multitask-Task-ID' in js assert 'parallel-child-session' in js def test_frontend_shows_wall_serial_and_speedup(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert 'data-parallel-wall' in js assert 'data-parallel-serial' in js assert '并行加速约' in js assert 'Promise.all(promises)' in js def test_backend_logs_multitask_start_end(): chat=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert '[MULTITASK] START' in chat assert '[MULTITASK] END' in chat assert 'duration=%.3fs' in chat assert '_observe_multitask_stream' in chat def test_duplicate_marine_operation_ids_removed(): ui=(ROOT/"ui_server.py").read_text(encoding="utf-8") assert 'name="marine_proxy_root"' in ui assert 'name="marine_proxy_suffix"' in ui assert 'include_in_schema=False' in ui def test_head_root_supported(): ui=(ROOT/"ui_server.py").read_text(encoding="utf-8") assert '@app.head("/",include_in_schema=False)' in ui assert 'async def home_head' in ui