From 5e2a758fcf72562413254661b173411901ed4258 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 18 Jun 2026 13:02:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E5=9C=A8=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E8=99=95=E7=BD=AE=E5=91=8A=E8=AD=A6=E9=A1=AF=E7=A4=BA=E8=B3=87?= =?UTF-8?q?=E7=94=A2=E7=B8=BD=E5=B8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/api/src/services/telegram_gateway.py | 20 +++++++++++++++++++ .../test_telegram_ai_automation_block.py | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/apps/api/src/services/telegram_gateway.py b/apps/api/src/services/telegram_gateway.py index 007824638..8a3a855b6 100644 --- a/apps/api/src/services/telegram_gateway.py +++ b/apps/api/src/services/telegram_gateway.py @@ -263,6 +263,25 @@ def _manual_evidence_hint(resource_name: str, alert_category: str) -> str: return "來源事件、fingerprint recurrence、metrics、logs、最近變更與相關 run" +def _format_manual_asset_ledger_lines(*, compact: bool = False) -> list[str]: + """Show the automation assets that must be sedimented before closure.""" + + if compact: + return [ + "🧾 自動化資產總帳", + "└ 需回寫:KM / PlayBook / 腳本或 Ansible / 排程或監控規則 / Verifier", + ] + return [ + "🧾 自動化資產總帳", + "├ KM:Knowledge Base 草稿、來源與 owner", + "├ PlayBook:Work Items 專屬草案、trust gate 與 rollback", + "├ 腳本/Ansible:Runs 安全路由、命令與執行紀錄", + "├ 排程/監控:Observability recurrence、rule 與抑噪狀態", + "├ Verifier:事件時間線 healthy / degraded / failed 回寫", + "└ 判定:沒有資產 ID、owner、狀態與下一步,不可視為自動化完成", + ] + + def _format_manual_handoff_package_lines( *, incident_id: str, @@ -307,6 +326,7 @@ def _format_manual_handoff_package_lines( "├ 4. 沉澱資產:KM、PlayBook、腳本/Ansible、排程/監控規則、Verifier 結果", "└ 5. 頁面可查:Runs、Work Items、Knowledge Base 要顯示資產 ID、owner、狀態與下一步", ] + lines.extend(_format_manual_asset_ledger_lines(compact=compact)) insert_at = 3 if repair_candidate_blocker_summary: lines.insert( diff --git a/apps/api/tests/test_telegram_ai_automation_block.py b/apps/api/tests/test_telegram_ai_automation_block.py index 048ddbead..bcff72f09 100644 --- a/apps/api/tests/test_telegram_ai_automation_block.py +++ b/apps/api/tests/test_telegram_ai_automation_block.py @@ -77,6 +77,13 @@ def test_repair_candidate_missing_card_exposes_manual_handoff_package() -> None: assert "https://awoooi.wooo.work/zh-TW/awooop/work-items?" in body assert "補證據:node_exporter target up" in body assert "AwoooP 建立修復候選" in body + assert "自動化資產總帳" in body + assert "KM:Knowledge Base" in body + assert "PlayBook:Work Items" in body + assert "腳本/Ansible:Runs" in body + assert "排程/監控:Observability" in body + assert "Verifier:事件時間線" in body + assert "不可視為自動化完成" in body assert "按鈕:處置包" in body assert "修復候選狀態" in body assert "等待人工批准" not in body