revert feat(HEL-529): 按定稿100%重做三页数据中枢 + 数据修正1-5

视觉:admin/app.js 按已确认打样 hub-kimi.html 逐行重写三页 DOM 与动效
(sparkline/缓存年龄秒增/延迟变化闪烁/EVENT TAPE 预装滚动/分组接口表/
更新频率列/时钟冒号 blink/雷达 blip),CSS 补真实调用脉冲 node-ping。
数据修正:
1) pipeline._stage 批内按暂存表业务键确定性去重(保留最后一条),
   修复人气榜/龙虎榜自 09-07 起每日 UNIQUE constraint 落库失败;
2) overview.anomalies 收敛为「最新批次未成功且当日未发布」的当前异常,
   历史已恢复批次留在审计明细;
3) source_catalog 接口补真实批次分组 + 观测 join(接口名或数据集名
   双向匹配,标注 observed/observed_basis),消除「全部未配置/0/30」误报;
4) lineage 逐数据集按其服务接口过滤健康行(接口级状态),
   provisional 已配置无观测显示「已配置 · 待观测」,仅 iFinD 为未配置;
5) lineage 补 update_freq 真实频率字段。
测试:新增 tests/test_hel529_rework.py(8 项),全套 191 项通过
(1 项环境依赖失败在基线 d9358ab 上同样复现,与本改动无关)。

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-09-15 09:34:59 +08:00
co-authored by multica-agent
parent 9b2f0993d3
commit 6f99ee9d9e
8 changed files with 220 additions and 827 deletions
-17
View File
@@ -38,7 +38,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "calendar",
"tier": "official",
"update_freq": "每日 08:45 预检",
"v1_endpoint": "/v1/calendar",
"primary_source": "tushare:trade_cal",
"backup_source": None,
@@ -47,7 +46,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "stocks",
"tier": "official",
"update_freq": "每日 20:00 / 23:10",
"v1_endpoint": "/v1/stocks",
"primary_source": "tushare:stock_basic",
"backup_source": None,
@@ -56,7 +54,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "daily",
"tier": "official",
"update_freq": "盘后 15:05 · 重试至 23:30",
"v1_endpoint": "/v1/bars/daily",
"primary_source": "tushare:daily",
"backup_source": None,
@@ -65,7 +62,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "valuation",
"tier": "official",
"update_freq": "盘后 15:05 · 复核 20:00",
"v1_endpoint": "/v1/valuation",
"primary_source": "tushare:daily_basic",
"backup_source": None,
@@ -74,7 +70,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "moneyflow",
"tier": "official",
"update_freq": "盘后 15:05 · 重试至 23:30",
"v1_endpoint": "/v1/moneyflow",
"primary_source": "tushare:moneyflow",
"backup_source": None,
@@ -83,7 +78,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "auction",
"tier": "official",
"update_freq": "盘后 15:05",
"v1_endpoint": "/v1/auction",
"primary_source": "tushare:stk_auction",
"backup_source": None,
@@ -92,7 +86,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "index_daily",
"tier": "official",
"update_freq": "盘后 15:10 · 重试至 23:30",
"v1_endpoint": "/v1/indexes/bars",
"primary_source": "tushare:index_daily",
"backup_source": None,
@@ -101,7 +94,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "limit_events",
"tier": "official",
"update_freq": "盘后 16:40 · 重试至 23:30",
"v1_endpoint": "/v1/limit-events",
"primary_source": "tushare:limit_list_d",
"backup_source": None,
@@ -110,7 +102,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "popularity",
"tier": "official",
"update_freq": "盘后 22:40",
"v1_endpoint": "/v1/popularity",
"primary_source": "tushare:ths_hot+dc_hot",
"backup_source": None,
@@ -119,7 +110,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "dragon_tiger",
"tier": "official",
"update_freq": "盘后 16:45 · 重试至 23:30",
"v1_endpoint": "/v1/dragon-tiger",
"primary_source": "tushare:hm_detail",
"backup_source": None,
@@ -128,7 +118,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "sector_daily",
"tier": "official",
"update_freq": "盘后 15:20 · 重试至 23:30",
"v1_endpoint": "/v1/sectors",
"primary_source": "tushare:ths_daily+dc_index+sw_daily",
"backup_source": None,
@@ -137,7 +126,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "quotes_latest",
"tier": "provisional",
"update_freq": "盘中 · 缓存 60s",
"v1_endpoint": "/v1/quotes/latest",
"primary_source": "eastmoney:ulist/clist",
"backup_source": "tencent:qt",
@@ -146,7 +134,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "index_quotes",
"tier": "provisional",
"update_freq": "盘中 · 缓存 60s",
"v1_endpoint": "/v1/indexes/quotes",
"primary_source": "eastmoney:ulist",
"backup_source": "tencent:qt",
@@ -155,7 +142,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "sectors_quote",
"tier": "provisional",
"update_freq": "盘中 · 缓存 60s",
"v1_endpoint": "/v1/sectors/quote",
"primary_source": "eastmoney:sw",
"backup_source": None,
@@ -164,7 +150,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "limit_pool",
"tier": "provisional",
"update_freq": "盘中 · 缓存 60s",
"v1_endpoint": "/v1/limit-pool",
"primary_source": "eastmoney:zt_pool",
"backup_source": None,
@@ -173,7 +158,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "intraday_points",
"tier": "provisional",
"update_freq": "盘中 · 缓存 20s",
"v1_endpoint": "/v1/intraday/points",
"primary_source": "eastmoney:trends2",
"backup_source": None,
@@ -182,7 +166,6 @@ DATASETS: list[dict[str, Any]] = [
{
"dataset": "ifind_wencai",
"tier": "licensed",
"update_freq": "按需调用",
"v1_endpoint": "/v1/query (api_name=ifind_wencai)",
"primary_source": "ifind:smart_stock_picking",
"backup_source": None,