diff --git a/deploy/profile-scripts/messenger.py b/deploy/profile-scripts/messenger.py index fff7f736..09472c7d 100644 --- a/deploy/profile-scripts/messenger.py +++ b/deploy/profile-scripts/messenger.py @@ -211,7 +211,12 @@ def _job_title(script): def install_stdio_hook(script_name=None): - """在脚本入口调用:重定向 stdout 到 messenger 通道控制""" + """在脚本入口调用:重定向 stdout 到 messenger 通道控制。 + 2026-08-24 幂等化:已 hook 则直接复用不重复包装——库文件(如 market_regime)被 import + 时其模块级 _msh() 会变成 no-op,否则 stdout 被包 N 层、N 个 buffer 各 flush 一次, + broadcast 整块重复(双写根因,per_stock_reassess→strategy_lifecycle→market_regime 链实锤)。""" + if isinstance(sys.stdout, _MessengerStdout): + return sys.stdout.channel # 已 hook:幂等返回,不再包装 if script_name is None: script_name = os.path.basename(sys.argv[0]) if sys.argv else "mofin" sys.stdout = _MessengerStdout(sys.stdout, script_name)