主站行情管理并入数据中枢
- 数据中枢数据源配置页新增「主站行情任务」卡:交易时段后台刷新开关、
手动后台刷新、历史区间回补(任务提交 + 轮询主站 job 记录亮灯),
数据与调度仍归主站,控制台只经桥接代操作
- 新增桥接端点 /api/hub-admin/market/{refresh,backfill};回补改为
market.backfill 后台任务(jobs.config.json 注册,锁独立,超时 30 分钟),
桥接调用秒回,不再阻塞
- 主站桌面端删除顶栏「行情管理」按钮与整个行情管理对话框,清理随之
失效的 CSS;移动端删除 system/admin 页与入口,管理员专区只留数据中枢
- Tushare Token / iFinD 凭证编辑沿用数据源页既有凭证区,无功能缺失
模型池收起修复
- 拉出模型清单后按钮切换为「收起列表」,收起只留一行摘要;再次点击
重新拉取并展开;勾选添加完成后清单自动收起(原逻辑保留)
- 交互全部沿用 HEL-558 已确认样式的既有按钮与提示组件,未新增视觉
自测
- verify_baseline 通过;pytest 492 项通过;数据中枢 240 项通过
- verify_datahub_console 新增 [11b] 行情任务桥接端到端段;UI 自测新增
行情任务卡开关往返、模型清单展开/收起/再展开/添加自动收起,日夜主题
与 1030 窄屏复验通过
- Playwright e2e 102/103:唯一失败项在基线提交上同样失败(本机字体度量
导致的头部溢出,与本卡无关)
Co-authored-by: multica-agent <github@multica.ai>
Maintenance tools
Run these commands from the application root. This directory contains only active startup, registry, and verification tools.
Normal maintenance
powershell -ExecutionPolicy Bypass -File tools/start_local.ps1 [-Port 8797]: start the local application in a hidden process and keep logs, the PID, and Python cache underruntime/instead of the source root.python tools/verify_baseline.py: all unit tests, registry checks, every frontend JavaScript syntax check, Git whitespace check, and read-only SQLite integrity check.python tools/verify_baseline.py --e2e: the same checks plus Playwright. The verifier owns the local static-server lifecycle so the command exits cleanly on Windows.python tools/build_api_registry.py [--check]: generate or verifyconfig/api.config.jsonfrombackend/http/dispatch.pyand the registeredbackend/features/*/routes.pyowners.python tools/build_architecture_inventory.py [--check]: generate or verifyconfig/architecture-inventory.jsonfrom the current source tree.python tools/verify_datahub_console.py: end-to-end self-test for the Data Hub console bridge — invite-code single use, admin-only gate, credential masking, model pool and membership round-trips, service-token checks. Starts both services on temporary ports with temporary data directories and restores the repository state on exit.python tools/verify_datahub_console_ui.py [--shots <dir>]: the browser pass over the same sandbox (gate, credential editor, vendor model pool, members and invite codes, day/night themes, 1030px narrow layout). Requires Playwright and a local Chromium.python tools/backfill_recent_snapshots.py --account <admin> [--lookback 60] [--dry-run]: auditable recent trading-day dashboard snapshot backfill. Seedocs/maintenance/行情历史补档.md.tools/update_from_main.sh(deployed to the server as~/xiaobai-build/update-from-main.sh): the server-side update-and-build entry for the managed local worktree at/opt/1panel/docker/compose/xiaobaifupan. Fetches Giteamain, enforces branch/clean/fast-forward checks, builds amain-<shortsha>tagged image with the revision label, and verifies the label after the build.tools/xiaobai-gitis the matching git wrapper for that worktree (status/log/diff).bash tools/build_image.sh <commit> <tag>: agent-grade entry that streamsgit archive <commit>to the deploy host over SSH (defaultmoxiaobai@192.168.200.11), refuses tags that do not end with the commit short SHA, verifies the revision label after the build, and appends a record to~/xiaobai-build/BUILD_LOG.tsvon the host. Before building, it runstools/check_deploy_baseline.shso the candidate commit must contain the currently running container's Git revision as an ancestor.bash tools/check_deploy_baseline.sh <commit> [--live-revision <sha>]: deployment ancestor gate. Reads the liveorg.opencontainers.image.revisionfrom the runningxiaobai-reviewcontainer (or--live-revisionin tests), prints the live SHA, candidate SHA, file diff, and commits the candidate would drop, then exits if the live revision is not an ancestor of the candidate.
verify_baseline.py does not inspect a parent checkout or skip tests according to files outside
this application. Historical comparison scripts were retired after final standalone acceptance;
their results remain under docs/migration/evidence/ and their source remains recoverable from
Git history.