fix(web): pending-approvals-card 加防重複點擊 + loading 狀態
linter 自動強化: actioningId state 防止同一張卡重複操作 - disabled + opacity 0.6 + cursor not-allowed - loading 時按鈕顯示 '...' - finally() 確保 actioningId 清除 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3795,8 +3795,9 @@ class TelegramGateway:
|
||||
"reply_markup": {"inline_keyboard": info_buttons},
|
||||
},
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _e:
|
||||
# 2026-04-09 Claude Sonnet 4.6: I3 架構Review修復 — 加 warning 防止靜默失敗
|
||||
logger.warning("notify_approval_edit_keyboard_failed", incident_id=incident_id, error=str(_e))
|
||||
|
||||
try:
|
||||
# 2. 在原訊息下回覆狀態
|
||||
@@ -3810,14 +3811,14 @@ class TelegramGateway:
|
||||
},
|
||||
)
|
||||
return
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _e:
|
||||
logger.warning("notify_approval_reply_failed", incident_id=incident_id, error=str(_e))
|
||||
|
||||
# fallback: 發新通知
|
||||
try:
|
||||
await self.send_notification(status_line, parse_mode="HTML")
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _e:
|
||||
logger.warning("notify_approval_fallback_failed", incident_id=incident_id, error=str(_e))
|
||||
|
||||
async def _execute_approval_action(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user