- Job kind=selection:executor 分支用 SelectionService(spec=SelectionQuery),结果 落 result_json、自动归档 Experiment(summary:as_of + 选出 N);/api/jobs 与 /api/experiments 的 result 解码支持 SelectionResult - POST /api/selections/jobs:提交 SelectionQuery 为异步 Job(BackgroundTasks/subprocess) - Web 选股页新增「异步(全市场)」按钮:提交 Job → waitJob 轮询结果(解决同步 60s+) - tests/test_selection_job.py:executor 执行归档(SelectionResult/Experiment kind)、 API 提交→轮询→结果与实验列表;全量 pytest + tsc 通过
frontend/web
React / Next.js 前端(Phase 3 初始化,当前为占位目录)。
按 docs/ARCHITECTURE.md §12-§14:前端只面对业务 Domain API(/api/stocks、/api/factors、 /api/backtests ...),消费标准化 BacktestResult,禁止接触 Qlib 内部配置 / SQL / ORM 对象。