chore: deploy pipeline auto-sync

This commit is contained in:
知微
2026-07-20 20:27:15 +08:00
parent e69109fde9
commit 9f7198dc9c
2 changed files with 154 additions and 142 deletions
@@ -10,4 +10,7 @@ for f in "$SRC"/*.py; do
ln -f "$f" "$DST/$name"
count=$((count+1))
done
echo "synced $count scripts (hardlink)"
ln -f "$SRC/sync_profile_scripts.sh" "$DST/sync_profile_scripts.sh" 2>/dev/null || true
echo "synced $count scripts (hardlink)"
mkdir -p /home/hmo/MoFin/gateway/logs
echo "$(date '+%F %T') synced $count scripts" >> /home/hmo/MoFin/gateway/logs/link_sync.log
+150 -141
View File
@@ -1,5 +1,5 @@
{
"generated_at": "2026-07-20 19:38:45",
"generated_at": "2026-07-20 20:18:37",
"feature_tree": {
"label": "MoFin 系统",
"status": "ok",
@@ -536,8 +536,8 @@
"name": "健康监控数据采集-每15分",
"script": "mofin_health.py",
"schedule": "*/15 9-16,20-22 * * 1-5",
"status": "error",
"last_run": "2026-07-20T16:45",
"status": "ok",
"last_run": "2026-07-20T20:15",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -624,7 +624,7 @@
"script": "self_todo_executor.py",
"schedule": "*/10 8-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-20T19:30",
"last_run": "2026-07-20T20:10",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -711,7 +711,7 @@
"script": "strategy_review.py",
"schedule": "0 20 * * 1-5",
"status": "ok",
"last_run": "2026-07-17T20:00",
"last_run": "2026-07-20T20:00",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -878,14 +878,14 @@
{
"label": "Gateway看门狗-知微 (fix_gateway_port.py)",
"desc": "",
"status": "error",
"status": "ok",
"pipes": [
{
"name": "Gateway看门狗-知微",
"script": "fix_gateway_port.py",
"schedule": "every 10m",
"status": "error",
"last_run": "2026-07-20T19:31",
"status": "ok",
"last_run": "2026-07-20T20:14",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -942,14 +942,14 @@
{
"label": "元监控-自检系统的自检-L4 (meta_watchdog.py)",
"desc": "",
"status": null,
"status": "ok",
"pipes": [
{
"name": "元监控-自检系统的自检-L4",
"script": "meta_watchdog.py",
"schedule": "5 * * * *",
"status": null,
"last_run": "",
"status": "ok",
"last_run": "2026-07-20T20:05",
"type": "no_agent",
"profile": "position-analyst"
}
@@ -1028,8 +1028,8 @@
"desc": "建议执行时间线",
"rows": 12735,
"readers": [
"mofin_db",
"advice_reconciliation"
"advice_reconciliation",
"mofin_db"
],
"writers": [
"advice_reconciliation"
@@ -1080,16 +1080,16 @@
"desc": "潜力股候选池(小果扫描产出)",
"rows": 185,
"readers": [
"mofin_db",
"promote_candidates",
"candidate_filter",
"accumulation_scanner",
"promote_candidates"
"mofin_db"
],
"writers": [
"promote_candidates",
"market_scanner",
"candidate_filter",
"accumulation_scanner",
"promote_candidates"
"accumulation_scanner"
],
"has_input": true,
"has_output": true,
@@ -1112,11 +1112,13 @@
"desc": "资金流缓存",
"rows": 1,
"readers": [
"batch_reassess",
"per_stock_reassess",
"merge_third_db",
"mofin_db",
"per_stock_reassess"
"batch_reassess"
],
"writers": [
"merge_third_db",
"mofin_db"
],
"has_input": true,
@@ -1139,12 +1141,12 @@
"desc": "资金变动记录",
"rows": 20,
"readers": [
"mofin_db",
"prepare_report_data"
"prepare_report_data",
"mofin_db"
],
"writers": [
"mofin_db",
"mo_data"
"mo_data",
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1193,25 +1195,25 @@
"desc": "每只股票的完整策略参数",
"rows": 227,
"readers": [
"system_audit",
"run_all_tests",
"batch_reassess",
"mofin_collect",
"mofin_db",
"generate_report",
"mo_data",
"system_health_check",
"data_governance",
"stale_push_wlin",
"watchlist_auto_exit"
"pre-flight-check",
"system_audit",
"sync_decisions_to_db",
"run_all_tests",
"candidate_filter",
"accumulation_scanner",
"per_stock_reassess"
],
"writers": [
"data_governance",
"watchlist_auto_exit",
"per_stock_reassess",
"promote_candidates",
"mofin_db",
"sync_decisions_to_db",
"watchlist_auto_exit",
"batch_reassess",
"mofin_db"
"per_stock_reassess"
],
"has_input": true,
"has_output": true,
@@ -1239,21 +1241,21 @@
"desc": "当前持仓(权威源)",
"rows": 14,
"readers": [
"system_audit",
"prepare_recommendation",
"run_all_tests",
"server",
"xiaoguo_signal_consumer",
"mofin_collect",
"trend_detector",
"mo_data",
"system_health_check",
"mofin_db",
"stale_push_wlin",
"mo_alphasift_bridge",
"xiaoguo_scanner",
"refresh_mtf_cache",
"system_audit",
"run_all_tests",
"candidate_filter"
],
"writers": [
"mofin_db",
"import_holding_xls",
"price_monitor",
"import_holding_xls"
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1281,19 +1283,19 @@
"desc": "所有持仓+自选最新实时价",
"rows": 232,
"readers": [
"generate_report",
"cron_health_monitor",
"mofin_db",
"system_audit",
"stale_push_wlin",
"verify_reassess_pipeline",
"candidate_filter",
"mofin_db",
"mo_data",
"generate_report",
"cron_health_monitor"
"verify_reassess_pipeline"
],
"writers": [
"mofin_db",
"price_monitor",
"mo_data",
"price_monitor"
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1319,15 +1321,15 @@
"desc": "宏观上下文(大盘偏向/指数)",
"rows": 81,
"readers": [
"xiaoguo_signal_consumer",
"system_audit",
"stale_push_wlin",
"divergence_detector",
"xiaoguo_signal_consumer",
"per_stock_reassess",
"batch_reassess",
"strategy_tree",
"batch_reassess",
"strategy_lifecycle",
"stock_profile",
"strategy_lifecycle"
"per_stock_reassess"
],
"writers": [
"refresh_macro_context"
@@ -1382,15 +1384,17 @@
"desc": "大盘指数快照(每10分)",
"rows": 989,
"readers": [
"system_audit",
"market_scanner",
"mofin_query",
"market_screener",
"trend_detector",
"mofin_query",
"mofin_db",
"prepare_report_data"
"system_audit",
"prepare_report_data",
"market_screener",
"merge_third_db"
],
"writers": [
"merge_third_db",
"mofin_db"
],
"has_input": true,
@@ -1416,13 +1420,13 @@
"desc": "多周期均线缓存",
"rows": 64,
"readers": [
"mofin_db",
"technical_analysis",
"multi_timeframe",
"technical_analysis"
"mofin_db"
],
"writers": [
"mofin_db",
"multi_timeframe"
"multi_timeframe",
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1447,18 +1451,18 @@
"desc": "总资产/现金/仓位汇总",
"rows": 1,
"readers": [
"preflight_verify",
"check_db_state",
"mofin_db",
"prepare_report_data",
"import_holding_xls",
"price_monitor",
"mo_data",
"mofin_db",
"check_db_state",
"prepare_report_data",
"import_holding_xls"
"preflight_verify"
],
"writers": [
"mofin_db",
"import_holding_xls",
"price_monitor",
"import_holding_xls"
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1485,21 +1489,21 @@
"desc": "价格区间突破事件日志",
"rows": 6353,
"readers": [
"test_dual_write",
"test_raw_insert",
"check_price_events",
"mofin_db",
"test_db_only",
"backfill_price_events",
"test_db_write",
"backfill_price_events"
"test_dual_write",
"check_price_events",
"test_raw_insert"
],
"writers": [
"test_dual_write",
"test_raw_insert",
"mofin_db",
"test_db_only",
"backfill_price_events",
"test_db_write",
"backfill_price_events"
"test_dual_write",
"test_raw_insert"
],
"has_input": true,
"has_output": true,
@@ -1521,9 +1525,9 @@
"desc": "行业信号(趋势检测产出)",
"rows": 653,
"readers": [
"server",
"mofin_news",
"xiaoguo_news_processor",
"server",
"trend_detector"
],
"writers": [
@@ -1557,12 +1561,15 @@
"rows": 68408,
"readers": [
"market_scanner",
"market_screener",
"trend_detector",
"mofin_db",
"market_screener",
"inspect_third_db",
"merge_third_db",
"strategy_lifecycle"
],
"writers": [
"merge_third_db",
"mofin_db"
],
"has_input": true,
@@ -1588,22 +1595,22 @@
"desc": "信号相关新闻",
"rows": 1287,
"readers": [
"system_audit",
"xiaoguo_signal_consumer",
"per_stock_reassess",
"batch_reassess",
"intraday_health_check",
"server",
"macro_signal_consumer"
"xiaoguo_signal_consumer",
"system_audit",
"macro_signal_consumer",
"intraday_health_check",
"batch_reassess",
"per_stock_reassess"
],
"writers": [
"divergence_detector",
"xiaoguo_signal_consumer",
"mofin_news",
"xiaoguo_news_processor",
"macro_context_collector",
"divergence_detector",
"macro_signal_consumer",
"mofin_news",
"xiaoguo_scanner",
"macro_signal_consumer"
"macro_context_collector"
],
"has_input": true,
"has_output": true,
@@ -1719,12 +1726,12 @@
"desc": "股票行业映射",
"rows": 64,
"readers": [
"per_stock_reassess",
"mofin_news",
"xiaoguo_news_processor",
"trend_detector",
"mofin_db",
"strategy_lifecycle"
"xiaoguo_news_processor",
"mofin_news",
"strategy_lifecycle",
"per_stock_reassess"
],
"writers": [
"mofin_db"
@@ -1769,18 +1776,18 @@
"desc": "全量股票代码",
"rows": 5575,
"readers": [
"accumulation_scanner",
"check_stocks_table",
"mofin_news",
"xiaoguo_news_processor",
"trend_detector",
"mofin_db",
"import_full_stocks"
"xiaoguo_news_processor",
"mofin_news",
"check_stocks_table",
"import_full_stocks",
"accumulation_scanner"
],
"writers": [
"mofin_db",
"price_monitor",
"import_full_stocks",
"mofin_db",
"backfill_price_events"
],
"has_input": true,
@@ -1806,8 +1813,8 @@
"desc": "策略重评历史记录",
"rows": 217,
"readers": [
"mofin_db",
"verify_reassess_pipeline"
"verify_reassess_pipeline",
"mofin_db"
],
"writers": [
"mofin_collect"
@@ -1861,19 +1868,21 @@
"desc": "自愈任务队列",
"rows": 96,
"readers": [
"morning_health_check",
"intraday_health_check",
"merge_third_db",
"strategy-staleness-check",
"self_todo_executor",
"strategy-staleness-check"
"morning_health_check"
],
"writers": [
"self_todo_executor",
"preflight_verify",
"morning_health_check",
"cron_health_monitor",
"mofin_collect",
"intraday_health_check",
"merge_third_db",
"strategy-staleness-check",
"cron_health_monitor"
"self_todo_executor",
"preflight_verify",
"morning_health_check"
],
"has_input": true,
"has_output": true,
@@ -1920,20 +1929,20 @@
"desc": "自选股列表",
"rows": 69,
"readers": [
"refresh_mtf_cache",
"stale_push_wlin",
"stock_quote",
"mo_alphasift_bridge",
"xiaoguo_signal_consumer",
"per_stock_reassess",
"run_all_tests",
"mofin_collect",
"trend_detector",
"stock_quote",
"refresh_mtf_cache",
"mofin_db",
"mofin_collect",
"stale_push_wlin",
"run_all_tests",
"mo_alphasift_bridge",
"xiaoguo_scanner"
],
"writers": [
"mofin_db",
"per_stock_reassess"
"per_stock_reassess",
"mofin_db"
],
"has_input": true,
"has_output": true,
@@ -1959,8 +1968,8 @@
"desc": "小果扫描跟踪",
"rows": 527,
"readers": [
"server",
"xiaoguo_scanner"
"xiaoguo_scanner",
"server"
],
"writers": [
"xiaoguo_scanner"
@@ -2096,13 +2105,13 @@
{
"name": "mofin_health.json",
"desc": "健康监控数据",
"size_kb": 88.1,
"size_kb": 89.2,
"readers": [
"analyze_health",
"verify_health_json"
"verify_health_json",
"analyze_health"
],
"writers": [],
"last_modified": "07-20 19:33",
"last_modified": "07-20 20:15",
"warn": false,
"migrated_to_db": null
},
@@ -2233,8 +2242,8 @@
"type": "no_agent",
"script": "fix_gateway_port.py",
"schedule": "every 10m",
"status": "error",
"last_run": "2026-07-20T19:31:05",
"status": "ok",
"last_run": "2026-07-20T20:14:55",
"profile": "position-analyst"
},
{
@@ -2261,7 +2270,7 @@
"script": "bot_monitor.sh",
"schedule": "every 60m",
"status": "ok",
"last_run": "2026-07-20T19:04:39",
"last_run": "2026-07-20T20:04:48",
"profile": "default"
},
{
@@ -2288,7 +2297,7 @@
"script": null,
"schedule": "0 * * * *",
"status": "ok",
"last_run": "2026-07-20T19:07:01",
"last_run": "2026-07-20T20:13:48",
"profile": "default"
},
{
@@ -2350,8 +2359,8 @@
"type": "no_agent",
"script": "mofin_health.py",
"schedule": "*/15 9-16,20-22 * * 1-5",
"status": "error",
"last_run": "2026-07-20T16:45:41",
"status": "ok",
"last_run": "2026-07-20T20:15:38",
"profile": "position-analyst"
},
{
@@ -2359,8 +2368,8 @@
"type": "no_agent",
"script": "meta_watchdog.py",
"schedule": "5 * * * *",
"status": null,
"last_run": "None",
"status": "ok",
"last_run": "2026-07-20T20:05:28",
"profile": "position-analyst"
},
{
@@ -2423,7 +2432,7 @@
"script": "",
"schedule": "{'kind': 'cron', 'expr': '*/10 * * * *'}",
"status": "ok",
"last_run": "2026-07-20T19:32:07",
"last_run": "2026-07-20T20:12:07",
"profile": "default"
},
{
@@ -2548,8 +2557,8 @@
"type": "LLM",
"script": null,
"schedule": "0 20 * * 1-5",
"status": "error",
"last_run": "2026-07-17T20:05:17",
"status": "ok",
"last_run": "2026-07-20T20:15:00",
"profile": "default"
},
{
@@ -2666,7 +2675,7 @@
"script": "strategy_review.py",
"schedule": "0 20 * * 1-5",
"status": "ok",
"last_run": "2026-07-17T20:00:46",
"last_run": "2026-07-20T20:00:31",
"profile": "position-analyst"
},
{
@@ -2738,7 +2747,7 @@
"script": "self_todo_executor.py",
"schedule": "*/10 8-22 * * 1-5",
"status": "ok",
"last_run": "2026-07-20T19:30:25",
"last_run": "2026-07-20T20:10:29",
"profile": "position-analyst"
},
{
@@ -2855,35 +2864,35 @@
"table": "mtf_cache",
"label": "多周期均线缓存",
"last_record": "07-20 17:08",
"age_hours": 2.5,
"age_hours": 3.2,
"warn": false
},
{
"table": "macro_context_log",
"label": "宏观上下文",
"last_record": "07-20 15:31",
"age_hours": 4.1,
"age_hours": 4.8,
"warn": false
},
{
"table": "market_snapshots",
"label": "市场快照",
"last_record": "07-20 15:50",
"age_hours": 3.8,
"age_hours": 4.5,
"warn": false
},
{
"table": "live_prices",
"label": "实时价格",
"last_record": "07-20 18:12",
"age_hours": 1.4,
"age_hours": 2.1,
"warn": false
},
{
"table": "price_events",
"label": "价格事件",
"last_record": "07-20 17:06",
"age_hours": 2.5,
"age_hours": 3.2,
"warn": false
}
],
@@ -2966,13 +2975,13 @@
]
},
"meta_watchdog": {
"generated_at": "2026-07-20 19:30:35",
"generated_at": "2026-07-20 20:05:28",
"status": "ok",
"layers": [
{
"layer": "L0 agents_health_check",
"status": "ok",
"reason": "1min 前"
"reason": "0min 前"
},
{
"layer": "L1 functional_health",
@@ -2982,7 +2991,7 @@
{
"layer": "L2 hygiene_audit",
"status": "ok",
"reason": "29min 前"
"reason": "64min 前"
},
{
"layer": "L1.5 mofin_health采集",