From c3c92bc6e6633aaa3d4d8b7791ef1306eec04055 Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Mon, 25 May 2026 22:01:06 +0800 Subject: [PATCH 1/2] Use localized strategy plugin alert copy --- notifications/telegram.py | 16 +++++++++++++++- requirements.txt | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/notifications/telegram.py b/notifications/telegram.py index 3e8ec3e..6ba5df6 100644 --- a/notifications/telegram.py +++ b/notifications/telegram.py @@ -79,10 +79,17 @@ "strategy_plugin_line": "🧩 插件:{plugin} | 状态:{route} | 提醒:{action}", "strategy_plugin_alert_subject": "🚨 危机插件告警:{plugin} | {route}", "strategy_plugin_alert_title": "🚨 【危机插件告警】", + "strategy_plugin_alert_context": "运行环境:{context}", "strategy_plugin_alert_strategy": "策略:{strategy}", + "strategy_plugin_alert_plugin": "插件:{plugin}", + "strategy_plugin_alert_status": "状态:{route}", + "strategy_plugin_alert_action": "提醒:{action}", + "strategy_plugin_alert_mode": "模式:{mode}", "strategy_plugin_alert_as_of": "信号时间:{as_of}", - "strategy_plugin_alert_would_trade": "若启用交易会操作:{value}", + "strategy_plugin_alert_would_trade": "启用时是否会交易:{value}", "strategy_plugin_alert_source": "来源:{source}", + "strategy_plugin_alert_yes": "是", + "strategy_plugin_alert_no": "否", "strategy_plugin_name_crisis_response_shadow": "危机观察通知", "strategy_plugin_mode_shadow": "影子观察", "strategy_plugin_route_no_action": "未触发危机", @@ -200,10 +207,17 @@ "strategy_plugin_line": "🧩 Plugin: {plugin} | status: {route} | notice: {action}", "strategy_plugin_alert_subject": "🚨 Crisis plugin alert: {plugin} | {route}", "strategy_plugin_alert_title": "🚨 【Crisis Plugin Alert】", + "strategy_plugin_alert_context": "Context: {context}", "strategy_plugin_alert_strategy": "Strategy: {strategy}", + "strategy_plugin_alert_plugin": "Plugin: {plugin}", + "strategy_plugin_alert_status": "Status: {route}", + "strategy_plugin_alert_action": "Notice: {action}", + "strategy_plugin_alert_mode": "Mode: {mode}", "strategy_plugin_alert_as_of": "Signal as-of: {as_of}", "strategy_plugin_alert_would_trade": "Would trade if enabled: {value}", "strategy_plugin_alert_source": "Source: {source}", + "strategy_plugin_alert_yes": "yes", + "strategy_plugin_alert_no": "no", "strategy_plugin_name_crisis_response_shadow": "Crisis Watch Notice", "strategy_plugin_mode_shadow": "shadow", "strategy_plugin_route_no_action": "no crisis detected", diff --git a/requirements.txt b/requirements.txt index bb6348a..fea3b54 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ flask gunicorn -quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@532346b6e22d9f9c0a25c5e859f29084d7b27f6c -us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@7ccc46038e6f0fe84a6910a6fa0515252bf15b79 +quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@a65f589b410cda42f165e3242328763567766b84 +us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@edf563df5fe4f13ef2d236cd0c8b823f9ef437ea pandas numpy requests From 6984e58b114bd838a489d6cc823c9af3c79449ce Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Mon, 25 May 2026 22:04:33 +0800 Subject: [PATCH 2/2] Update strategy plugin alert tests --- tests/test_runtime_strategy_adapters.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_runtime_strategy_adapters.py b/tests/test_runtime_strategy_adapters.py index e75f73c..82ec745 100644 --- a/tests/test_runtime_strategy_adapters.py +++ b/tests/test_runtime_strategy_adapters.py @@ -63,9 +63,14 @@ def test_strategy_plugin_true_crisis_builds_escalated_alert_message(): "strategy_plugin_alert_subject": "alert:{strategy}:{plugin}:{route}", "strategy_plugin_alert_title": "alert title", "strategy_plugin_alert_strategy": "strategy={strategy}", + "strategy_plugin_alert_plugin": "plugin={plugin}", + "strategy_plugin_alert_status": "route={route}", + "strategy_plugin_alert_action": "action={action}", + "strategy_plugin_alert_mode": "mode={mode}", "strategy_plugin_alert_as_of": "as_of={as_of}", "strategy_plugin_alert_would_trade": "would_trade={value}", "strategy_plugin_alert_source": "source={source}", + "strategy_plugin_alert_yes": "yes", "strategy_plugin_name_crisis_response_shadow": "Crisis", "strategy_plugin_mode_shadow": "shadow", "strategy_plugin_route_true_crisis": "true crisis", @@ -95,7 +100,11 @@ def test_strategy_plugin_true_crisis_builds_escalated_alert_message(): assert len(alerts) == 1 assert alerts[0].subject == "alert:soxl_soxx_trend_income:Crisis:true crisis" - assert "plugin=Crisis|mode=shadow|route=true crisis|action=defend" in alerts[0].body + assert "plugin=Crisis" in alerts[0].body + assert "route=true crisis" in alerts[0].body + assert "action=defend" in alerts[0].body + assert "mode=shadow" in alerts[0].body + assert "would_trade=yes" in alerts[0].body assert "source=gs://bucket/latest_signal.json" in alerts[0].body