diff --git a/deploy/profile-scripts/sync_profile_scripts.sh b/deploy/profile-scripts/sync_profile_scripts.sh old mode 100644 new mode 100755 diff --git a/static/mofin_health.json b/static/mofin_health.json index eb0c4893..9ccb1d84 100644 --- a/static/mofin_health.json +++ b/static/mofin_health.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-07-20 20:18:37", + "generated_at": "2026-07-20 20:30:35", "feature_tree": { "label": "MoFin 系统", "status": "ok", @@ -624,7 +624,7 @@ "script": "self_todo_executor.py", "schedule": "*/10 8-22 * * 1-5", "status": "ok", - "last_run": "2026-07-20T20:10", + "last_run": "2026-07-20T20:20", "type": "no_agent", "profile": "position-analyst" } @@ -885,7 +885,7 @@ "script": "fix_gateway_port.py", "schedule": "every 10m", "status": "ok", - "last_run": "2026-07-20T20:14", + "last_run": "2026-07-20T20:25", "type": "no_agent", "profile": "position-analyst" } @@ -1086,8 +1086,8 @@ "mofin_db" ], "writers": [ - "promote_candidates", "market_scanner", + "promote_candidates", "candidate_filter", "accumulation_scanner" ], @@ -1141,8 +1141,8 @@ "desc": "资金变动记录", "rows": 20, "readers": [ - "prepare_report_data", - "mofin_db" + "mofin_db", + "prepare_report_data" ], "writers": [ "mo_data", @@ -1195,25 +1195,25 @@ "desc": "每只股票的完整策略参数", "rows": 227, "readers": [ - "mofin_collect", - "mo_data", - "system_health_check", - "pre-flight-check", - "system_audit", - "sync_decisions_to_db", - "run_all_tests", - "candidate_filter", + "capital_flow_collector", + "data_governance", + "batch_reassess", + "mofin_db", "accumulation_scanner", - "per_stock_reassess" + "run_all_tests", + "generate_report", + "promote_candidates", + "price_monitor", + "sync_decisions_to_db" ], "writers": [ + "per_stock_reassess", + "watchlist_auto_exit", "data_governance", "promote_candidates", - "mofin_db", "sync_decisions_to_db", - "watchlist_auto_exit", "batch_reassess", - "per_stock_reassess" + "mofin_db" ], "has_input": true, "has_output": true, @@ -1241,20 +1241,20 @@ "desc": "当前持仓(权威源)", "rows": 14, "readers": [ + "capital_flow_collector", "server", "xiaoguo_signal_consumer", - "mofin_collect", - "mo_data", - "system_health_check", - "xiaoguo_scanner", + "prepare_report_data", + "mofin_db", "refresh_mtf_cache", - "system_audit", + "accumulation_scanner", "run_all_tests", - "candidate_filter" + "mo_alphasift_bridge", + "price_monitor" ], "writers": [ - "import_holding_xls", "price_monitor", + "import_holding_xls", "mofin_db" ], "has_input": true, @@ -1283,18 +1283,18 @@ "desc": "所有持仓+自选最新实时价", "rows": 232, "readers": [ - "generate_report", + "candidate_filter", "cron_health_monitor", - "mofin_db", + "generate_report", "system_audit", "stale_push_wlin", - "candidate_filter", + "verify_reassess_pipeline", "mo_data", - "verify_reassess_pipeline" + "mofin_db" ], "writers": [ - "price_monitor", "mo_data", + "price_monitor", "mofin_db" ], "has_input": true, @@ -1321,15 +1321,15 @@ "desc": "宏观上下文(大盘偏向/指数)", "rows": 81, "readers": [ - "xiaoguo_signal_consumer", + "strategy_lifecycle", + "per_stock_reassess", + "stock_profile", + "divergence_detector", "system_audit", "stale_push_wlin", - "divergence_detector", - "strategy_tree", "batch_reassess", - "strategy_lifecycle", - "stock_profile", - "per_stock_reassess" + "xiaoguo_signal_consumer", + "strategy_tree" ], "writers": [ "refresh_macro_context" @@ -1357,8 +1357,8 @@ "desc": "宏观新闻原始数据", "rows": 17383, "readers": [ - "system_audit", - "macro_context_collector" + "macro_context_collector", + "system_audit" ], "writers": [ "macro_context_collector" @@ -1384,13 +1384,13 @@ "desc": "大盘指数快照(每10分)", "rows": 989, "readers": [ - "market_scanner", - "trend_detector", "mofin_query", "mofin_db", - "system_audit", "prepare_report_data", "market_screener", + "market_scanner", + "system_audit", + "trend_detector", "merge_third_db" ], "writers": [ @@ -1451,17 +1451,17 @@ "desc": "总资产/现金/仓位汇总", "rows": 1, "readers": [ - "check_db_state", "mofin_db", "prepare_report_data", "import_holding_xls", "price_monitor", "mo_data", - "preflight_verify" + "preflight_verify", + "check_db_state" ], "writers": [ - "import_holding_xls", "price_monitor", + "import_holding_xls", "mofin_db" ], "has_input": true, @@ -1489,21 +1489,21 @@ "desc": "价格区间突破事件日志", "rows": 6353, "readers": [ - "mofin_db", - "test_db_only", - "backfill_price_events", - "test_db_write", - "test_dual_write", "check_price_events", - "test_raw_insert" + "test_raw_insert", + "mofin_db", + "test_dual_write", + "test_db_only", + "test_db_write", + "backfill_price_events" ], "writers": [ + "test_raw_insert", + "test_dual_write", "mofin_db", "test_db_only", - "backfill_price_events", "test_db_write", - "test_dual_write", - "test_raw_insert" + "backfill_price_events" ], "has_input": true, "has_output": true, @@ -1525,10 +1525,10 @@ "desc": "行业信号(趋势检测产出)", "rows": 653, "readers": [ - "server", "mofin_news", "xiaoguo_news_processor", - "trend_detector" + "trend_detector", + "server" ], "writers": [ "mofin_news", @@ -1560,13 +1560,13 @@ "desc": "行业板块数据", "rows": 68408, "readers": [ - "market_scanner", - "trend_detector", + "strategy_lifecycle", "mofin_db", "market_screener", + "market_scanner", + "trend_detector", "inspect_third_db", - "merge_third_db", - "strategy_lifecycle" + "merge_third_db" ], "writers": [ "merge_third_db", @@ -1595,22 +1595,22 @@ "desc": "信号相关新闻", "rows": 1287, "readers": [ - "server", - "xiaoguo_signal_consumer", - "system_audit", - "macro_signal_consumer", "intraday_health_check", + "server", + "per_stock_reassess", + "system_audit", "batch_reassess", - "per_stock_reassess" + "xiaoguo_signal_consumer", + "macro_signal_consumer" ], "writers": [ - "xiaoguo_signal_consumer", + "mofin_news", "xiaoguo_news_processor", "divergence_detector", + "xiaoguo_signal_consumer", + "macro_context_collector", "macro_signal_consumer", - "mofin_news", - "xiaoguo_scanner", - "macro_context_collector" + "xiaoguo_scanner" ], "has_input": true, "has_output": true, @@ -1726,12 +1726,12 @@ "desc": "股票行业映射", "rows": 64, "readers": [ - "trend_detector", - "mofin_db", - "xiaoguo_news_processor", - "mofin_news", "strategy_lifecycle", - "per_stock_reassess" + "mofin_news", + "per_stock_reassess", + "xiaoguo_news_processor", + "trend_detector", + "mofin_db" ], "writers": [ "mofin_db" @@ -1776,19 +1776,19 @@ "desc": "全量股票代码", "rows": 5575, "readers": [ - "trend_detector", + "accumulation_scanner", "mofin_db", - "xiaoguo_news_processor", "mofin_news", - "check_stocks_table", + "xiaoguo_news_processor", "import_full_stocks", - "accumulation_scanner" + "trend_detector", + "check_stocks_table" ], "writers": [ "price_monitor", - "import_full_stocks", + "backfill_price_events", "mofin_db", - "backfill_price_events" + "import_full_stocks" ], "has_input": true, "has_output": true, @@ -1813,8 +1813,8 @@ "desc": "策略重评历史记录", "rows": 217, "readers": [ - "verify_reassess_pipeline", - "mofin_db" + "mofin_db", + "verify_reassess_pipeline" ], "writers": [ "mofin_collect" @@ -1868,20 +1868,20 @@ "desc": "自愈任务队列", "rows": 96, "readers": [ - "intraday_health_check", - "merge_third_db", "strategy-staleness-check", + "intraday_health_check", "self_todo_executor", + "merge_third_db", "morning_health_check" ], "writers": [ - "cron_health_monitor", - "mofin_collect", "intraday_health_check", - "merge_third_db", "strategy-staleness-check", + "cron_health_monitor", "self_todo_executor", + "mofin_collect", "preflight_verify", + "merge_third_db", "morning_health_check" ], "has_input": true, @@ -1929,16 +1929,16 @@ "desc": "自选股列表", "rows": 69, "readers": [ - "xiaoguo_signal_consumer", - "trend_detector", - "stock_quote", "refresh_mtf_cache", - "mofin_db", - "mofin_collect", - "stale_push_wlin", "run_all_tests", "mo_alphasift_bridge", - "xiaoguo_scanner" + "per_stock_reassess", + "stock_quote", + "price_monitor", + "trend_detector", + "stale_push_wlin", + "mofin_collect", + "xiaoguo_signal_consumer" ], "writers": [ "per_stock_reassess", @@ -1968,8 +1968,8 @@ "desc": "小果扫描跟踪", "rows": 527, "readers": [ - "xiaoguo_scanner", - "server" + "server", + "xiaoguo_scanner" ], "writers": [ "xiaoguo_scanner" @@ -2107,11 +2107,12 @@ "desc": "健康监控数据", "size_kb": 89.2, "readers": [ + "analyze_health", "verify_health_json", - "analyze_health" + "verify_self_check_section" ], "writers": [], - "last_modified": "07-20 20:15", + "last_modified": "07-20 20:18", "warn": false, "migrated_to_db": null }, @@ -2243,7 +2244,7 @@ "script": "fix_gateway_port.py", "schedule": "every 10m", "status": "ok", - "last_run": "2026-07-20T20:14:55", + "last_run": "2026-07-20T20:25:58", "profile": "position-analyst" }, { @@ -2432,7 +2433,7 @@ "script": "", "schedule": "{'kind': 'cron', 'expr': '*/10 * * * *'}", "status": "ok", - "last_run": "2026-07-20T20:12:07", + "last_run": "2026-07-20T20:21:30", "profile": "default" }, { @@ -2747,7 +2748,7 @@ "script": "self_todo_executor.py", "schedule": "*/10 8-22 * * 1-5", "status": "ok", - "last_run": "2026-07-20T20:10:29", + "last_run": "2026-07-20T20:20:32", "profile": "position-analyst" }, { @@ -2864,41 +2865,41 @@ "table": "mtf_cache", "label": "多周期均线缓存", "last_record": "07-20 17:08", - "age_hours": 3.2, + "age_hours": 3.4, "warn": false }, { "table": "macro_context_log", "label": "宏观上下文", "last_record": "07-20 15:31", - "age_hours": 4.8, + "age_hours": 5.0, "warn": false }, { "table": "market_snapshots", "label": "市场快照", "last_record": "07-20 15:50", - "age_hours": 4.5, + "age_hours": 4.7, "warn": false }, { "table": "live_prices", "label": "实时价格", "last_record": "07-20 18:12", - "age_hours": 2.1, + "age_hours": 2.3, "warn": false }, { "table": "price_events", "label": "价格事件", "last_record": "07-20 17:06", - "age_hours": 3.2, + "age_hours": 3.4, "warn": false } ], "self_check": { "functional": { - "generated_at": "2026-07-20 19:37:38", + "generated_at": "2026-07-20 20:30:35", "status": "ok", "summary": { "total": 9, @@ -2942,7 +2943,7 @@ "module": "premarket", "function": "盘前全量重评(premarket summary)", "status": "ok", - "reason": "686min前", + "reason": "739min前", "repair": { "action": "rerun_script", "script": "premarket_full_review.py" @@ -2952,7 +2953,7 @@ "module": "gateway_llm", "function": "LLM调用链可用(gateway agent.log)", "status": "ok", - "reason": "latency=7.2s", + "reason": "latency=2.9s", "repair": { "action": "llm_diagnose" }