fix: 修復 Telegram 轟炸問題
問題: 765ee39 的修改導致 COMPLETED 狀態下 incident 未解決時
會建立新 decision,每次 poll 都觸發 Telegram 發送
修復: COMPLETED 狀態直接返回 existing_token,不建立新 decision
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -347,19 +347,9 @@ class DecisionManager:
|
||||
# READY 或 EXECUTING 狀態: 直接返回
|
||||
if existing_token.state in (DecisionState.READY, DecisionState.EXECUTING):
|
||||
return existing_token
|
||||
# COMPLETED 狀態: 只有 incident 也已解決才返回,否則創建新 decision
|
||||
# 修復: 避免 incident 未解決但 decision 已完成導致 Y/n 按鈕永久禁用
|
||||
# COMPLETED 狀態: 直接返回,避免重複建立 decision 導致 Telegram 轟炸
|
||||
if existing_token.state == DecisionState.COMPLETED:
|
||||
from src.models.incident import IncidentStatus
|
||||
if incident.status in (IncidentStatus.RESOLVED, IncidentStatus.CLOSED):
|
||||
return existing_token
|
||||
# incident 仍在處理中,需要新的 decision
|
||||
logger.info(
|
||||
"decision_reset_for_active_incident",
|
||||
token=existing_token.token,
|
||||
incident_id=incident.incident_id,
|
||||
incident_status=incident.status.value,
|
||||
)
|
||||
return existing_token
|
||||
|
||||
# 2. 建立新 token
|
||||
token = DecisionToken(
|
||||
@@ -780,17 +770,9 @@ class DecisionManager:
|
||||
# READY 或 EXECUTING 狀態: 直接返回
|
||||
if existing_token.state in (DecisionState.READY, DecisionState.EXECUTING):
|
||||
return existing_token
|
||||
# COMPLETED 狀態: 只有 incident 也已解決才返回
|
||||
# COMPLETED 狀態: 直接返回,避免重複建立 decision 導致 Telegram 轟炸
|
||||
if existing_token.state == DecisionState.COMPLETED:
|
||||
from src.models.incident import IncidentStatus
|
||||
if incident.status in (IncidentStatus.RESOLVED, IncidentStatus.CLOSED):
|
||||
return existing_token
|
||||
logger.info(
|
||||
"decision_reset_for_active_incident_consensus",
|
||||
token=existing_token.token,
|
||||
incident_id=incident.incident_id,
|
||||
incident_status=incident.status.value,
|
||||
)
|
||||
return existing_token
|
||||
|
||||
# 建立新 token
|
||||
token = DecisionToken(
|
||||
|
||||
Reference in New Issue
Block a user