From e5f1541d69b3de9a376d6d06fa0200b2df6d9724 Mon Sep 17 00:00:00 2001 From: OG T Date: Fri, 10 Apr 2026 22:00:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(auto=5Fexecute):=20=E6=9B=BF=E6=8F=9B=20act?= =?UTF-8?q?ion=20=E4=B8=AD=E7=9A=84=20/{target}/{namesp?= =?UTF-8?q?ace}=20placeholder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nemotron tool calling 生成 佔位符未替換 auto_execute 前統一替換所有 {target}/{namespace}/ 格式 Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/decision_manager.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/api/src/services/decision_manager.py b/apps/api/src/services/decision_manager.py index 2bbab25f..99f70e29 100644 --- a/apps/api/src/services/decision_manager.py +++ b/apps/api/src/services/decision_manager.py @@ -666,6 +666,17 @@ class DecisionManager: """ action = token.proposal_data.get("kubectl_command", "") + # 替換所有 placeholder — {target}/{namespace}/ 等 + _target = incident.affected_services[0] if incident.affected_services else "unknown" + _ns = "awoooi-prod" + if incident.signals: + _ns = incident.signals[0].labels.get("namespace", "awoooi-prod") + import re as _re + action = action.replace("{target}", _target).replace("{namespace}", _ns) + # 格式佔位符 → 用 target 替換 + action = _re.sub(r"", _target, action) + action = _re.sub(r"<[^>]+>", _target, action) + try: # 延遲導入避免循環依賴 from src.models.approval import ApprovalRequest, ApprovalStatus