fix(web): 清理 AwoooP Runs fallback 文案
All checks were successful
CD Pipeline / tests (push) Successful in 1m42s
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / build-and-deploy (push) Successful in 4m4s
CD Pipeline / post-deploy-checks (push) Successful in 2m51s

This commit is contained in:
Your Name
2026-06-05 02:09:30 +08:00
parent b9251a321d
commit 7f6028c32b
2 changed files with 144 additions and 144 deletions

View File

@@ -1209,10 +1209,10 @@
"execution": "執行判定",
"ansible": "Ansible",
"mcp": "MCP",
"mcpValue": "{success}/{total} successtop {tool}",
"mcpValue": "{success}/{total} 成功;主要工具 {tool}",
"km": "KM",
"notification": "通知通道",
"events": "Timeline events"
"events": "時間線事件"
}
}
},
@@ -1460,7 +1460,7 @@
"tickets": "Tickets"
},
"metrics": {
"sourceRefs": "Source refs",
"sourceRefs": "來源參照",
"sourceRefsValue": "{inbound} 入站 / {outbound} 出站",
"provider": "Sentry / SigNoz",
"mcp": "MCP Gateway",
@@ -1487,7 +1487,7 @@
"aiTitle": "AI 處置判定",
"aiDetail": "狀態 {state};下一步 {nextStep};人工 {needsHuman}",
"sourceTitle": "Sentry / SigNoz 匹配",
"sourceDetail": "direct {direct} / candidate {candidate} / applied {applied};原因 {reason}",
"sourceDetail": "直連 {direct} / 候選 {candidate} / 已套用 {applied};原因 {reason}",
"needsHumanYes": "需要",
"needsHumanNo": "不需要",
"stateLabels": {
@@ -1863,26 +1863,26 @@
"fetchFailed": "provider 關聯查詢失敗"
},
"tiles": {
"sourceRefs": "Source refs",
"sourceRefs": "來源參照",
"sourceRefsValue": "{inbound} 入站 / {outbound} 出站",
"sourceRefsDetail": "direct {direct}、candidate {candidate}、applied {applied}",
"sourceRefsDetail": "直連 {direct}、候選 {candidate}、已套用 {applied}",
"provider": "Sentry / SigNoz",
"providerDetail": "{reason}provider events {providerEvents}",
"providerDetail": "{reason}供應者事件 {providerEvents}",
"mcp": "MCP Gateway",
"mcpValue": "{success} / {total}",
"mcpDetail": "failed {failed}、blocked {blocked}、policy {policy}",
"mcpDetail": "失敗 {failed}、阻擋 {blocked}、政策 {policy}",
"ansible": "Ansible",
"ansibleDetail": "mode {mode}、rc {rc}、apply {apply}",
"ansibleDetail": "模式 {mode}、回傳碼 {rc}、套用 {apply}",
"km": "KM",
"kmDetail": "verification {verification}next {next}",
"kmDetail": "驗證 {verification}下一步 {next}",
"handoff": "交接狀態"
},
"providerEvidence": {
"title": "Provider 匹配狀態",
"title": "供應者匹配狀態",
"rawIdsHidden": "raw id 已收斂",
"summary": "目前判斷:{status}。原因:{reason}。",
"counts": "direct {direct} / candidate {candidate} / applied {applied}",
"latest": "latest event {event}heartbeat {heartbeat}"
"counts": "直連 {direct} / 候選 {candidate} / 已套用 {applied}",
"latest": "最新事件 {event};心跳 {heartbeat}"
},
"timeline": {
"title": "Incident Timeline 寫入證據",
@@ -3598,7 +3598,7 @@
"callbackTraceRecoveryBacklog": "Callback trace backlog缺 trace {missing}1h {recent1h}24h {recent24h}gap 後 traced {recovered};復原 {status}",
"callbackTraceRecoveryAction": "接續處理:{action};需要人工={human}",
"callbackTraceRecoveryOwner": "主責AwoooP Callback Evidence協作TelegramGateway / 執行時間線",
"callbackTraceRecoveryEvidenceSurface": "查證入口Runs / TG Callback Evidence",
"callbackTraceRecoveryEvidenceSurface": "查證入口Runs / TG Callback 證據",
"callbackTraceRecoveryClosure": "關閉條件1h=0 且 24h=0目前 1h {recent1h} / 24h {recent24h}",
"callbackTraceRecoveryDecision": "判讀:{gap};下一步:{next}",
"callbackTraceRecoveryLatest": "最後缺口:{missing};復原首筆:{first};復原最新:{latest}",
@@ -3875,7 +3875,7 @@
"recheckTotal": "Recheck {count}",
"guardrail": "讀取不寫入={writes};人工覆核={review}",
"itemState": "階段:{stage};結果:{outcome}",
"itemRefs": "Source{source}Recheck{recheck}"
"itemRefs": "來源{source}複查{recheck}"
},
"completionQueue": {
"title": "Completion分流佇列",
@@ -4219,13 +4219,13 @@
"sourceRefs": "來源 refs{refs}Sentry {sentry} / SignOz {signoz}",
"sourceFlow": {
"label": "來源流程:{status}",
"detail": "refs={refs}; Sentry={sentry}; SignOz={signoz}; event={event}",
"detail": "參照={refs}Sentry={sentry}SigNoz={signoz};事件={event}",
"statuses": {
"applied": "已套用",
"reviewed": "審核已記錄",
"review": "待審核配對",
"evidence": "來源證據已到",
"provider": "Provider 已接收",
"provider": "供應者已接收",
"waiting": "等待來源"
}
},
@@ -4369,17 +4369,17 @@
"sourceFlow": {
"column": "來源流程",
"notLinked": "尚未關聯 incident",
"detail": "providers={providers}; d/c/a={direct}/{candidate}/{applied}",
"nextLine": "next={next}",
"blockedLine": "blocked={blocker}",
"mcpLine": "MCP {success}/{total}; failed={failed}; blocked={blocked}",
"ansibleLine": "Ansible candidates={candidates}; apply={applied}; reason={reason}",
"kmLine": "KM entries={count}",
"detail": "供應者={providers};直連/候選/套用={direct}/{candidate}/{applied}",
"nextLine": "下一步={next}",
"blockedLine": "阻塞={blocker}",
"mcpLine": "MCP {success}/{total};失敗={failed};阻擋={blocked}",
"ansibleLine": "Ansible 候選={candidates};套用={applied};原因={reason}",
"kmLine": "KM 條目={count}",
"operator": {
"fallbackMcpSummary": "狀態鏈批次回補中;目前可見 MCP 證據 {count} 筆,route={route}",
"fallbackMcpSummary": "狀態鏈批次回補中;目前可見 MCP 證據 {count} 筆,路由={route}",
"fallbackMissingChain": "狀態鏈批次回補中;先用 Run 證據判讀",
"nextStatusChain": "等待狀態鏈批次回補,或打開 Incident 詳情確認",
"statusChainPending": "status_chain_pending",
"statusChainPending": "狀態鏈待回補",
"statuses": {
"needsHuman": "需人工",
"failed": "執行失敗",
@@ -4392,7 +4392,7 @@
"verified": "已驗證",
"applied": "已套用",
"evidence": "已找到證據",
"provider": "Provider 已接收",
"provider": "供應者已接收",
"waiting": "等待來源",
"loading": "讀取中"
}
@@ -4553,7 +4553,7 @@
},
"captureItems": {
"awooopStatusChain": "AwoooP 狀態鏈",
"kmCompletionSummary": "KM owner-review snapshot"
"kmCompletionSummary": "KM 負責人覆核快照"
},
"filters": {
"label": "TG Callback 篩選",
@@ -4562,7 +4562,7 @@
"statuses": {
"noCallback": "尚無 Callback",
"sent": "已送達",
"fallbackSent": "Fallback 已送達",
"fallbackSent": "備援已送達",
"rescueSent": "救援已送達",
"failed": "送達失敗",
"observed": "已記錄"
@@ -4570,19 +4570,19 @@
"details": {
"noCallback": "此 Run 尚未有詳情 / 歷史 callback reply 證據。",
"sent": "Telegram callback reply 已用原格式送達。",
"fallbackSent": "Telegram HTML 回覆失敗後,已用純文字 fallback 送達。",
"rescueSent": "Telegram fallback仍失敗後,已用救援純文字送達。",
"fallbackSent": "Telegram HTML 回覆失敗後,已用純文字備援送達。",
"rescueSent": "Telegram 備援仍失敗後,已用救援純文字送達。",
"failed": "Telegram callback reply 最終送達失敗,需人工確認。",
"observed": "Telegram callback reply 已記錄,但狀態不屬於標準分類。"
},
"events": {
"title": "TG Callback Evidence",
"subtitle": "詳情 / 歷史回覆證據來自 AwoooP outbound mirror",
"title": "TG Callback 證據",
"subtitle": "詳情 / 歷史回覆證據來自 AwoooP 出站鏡像",
"total": "{count} 筆",
"loading": "正在同步 callback evidence尚未回來前不判定為空資料。",
"cacheHit": "快取命中 {age}s / TTL {ttl}s",
"cacheMiss": "剛重新聚合 / TTL {ttl}s",
"empty": "目前尚無 callback reply evidence。",
"empty": "目前尚無 callback reply 證據。",
"error": "Callback evidence 載入失敗:{error}",
"summary": {
"outbound": "出站鏡像",
@@ -4597,13 +4597,13 @@
"outboundReplyMarkupTopPrefixItem": "{prefix} {total}24h {recent},最後 {last}",
"operatorVerdictTitle": "Operator 判讀",
"operatorVerdictDetail": "入站點擊鏡像:{inboundStatus}(累計 {inboundTotal}24h {inboundRecent24h}snapshot{snapshotStatus} / {snapshotCoverage}trace 復原:{traceRecoveryStatus};下一步:{nextAction}",
"callbacks": "Callback replies",
"callbacks": "Callback 回覆",
"callbackDetail": "detail {detail} / history {history}Incident {incidents}",
"inboundCallbackDetail": "入站 click{status};累計 {total} / 24h {recent24h};最新 {latest};動作 {action}",
"snapshots": "Evidence snapshots",
"snapshots": "證據快照",
"snapshotDetail": "captured {captured} / partial {partial} / missing {missing};覆蓋 {coverage}",
"delivery": "送達失敗",
"deliveryDetail": "sent {sent}fallback {fallback}outbound failed {outboundFailed}",
"deliveryDetail": "已送達 {sent}備援 {fallback}出站失敗 {outboundFailed}",
"next": "下一步",
"latest": "最新 callback{time}",
"statuses": {
@@ -4660,9 +4660,9 @@
"previewEmpty": "無摘要",
"openRun": "開啟 Run",
"awooopSnapshotTitle": "Callback 當下 AwoooP 狀態鏈",
"awooopSnapshotMcp": "MCPtotal {total} / success {success} / failed {failed} / blocked {blocked}top {topTool}",
"awooopSnapshotExecution": "Executionexecutor {executor}playbook {playbook}Ansible considered={ansible} / candidates={candidates}",
"awooopSnapshotSource": "Source{status}direct {direct} / candidate {candidate} / applied {applied}{providers}",
"awooopSnapshotMcp": "MCP總數 {total} / 成功 {success} / 失敗 {failed} / 阻擋 {blocked}主要工具 {topTool}",
"awooopSnapshotExecution": "執行:執行器 {executor}PlayBook {playbook}Ansible 已評估={ansible} / 候選={candidates}",
"awooopSnapshotSource": "來源{status}直連 {direct} / 候選 {candidate} / 已套用 {applied}{providers}",
"capture": {
"title": "Evidence Capture 狀態",
"captured": "已捕捉:{items}",
@@ -4678,7 +4678,7 @@
},
"items": {
"awooopStatusChain": "AwoooP 狀態鏈",
"kmCompletionSummary": "KM owner-review snapshot"
"kmCompletionSummary": "KM 負責人覆核快照"
},
"nextActions": {
"none": "不需補動作",
@@ -4870,45 +4870,45 @@
"mcpValue": "Gateway {success}/{total},失敗 {failed},阻擋 {blocked}",
"mcpDetail": "top={topTool}; first-class={firstClass}; legacy={legacy}; policy={policy}",
"source": "Sentry / SigNoz",
"sourceValue": "{status}; direct {direct}, candidate {candidate}, applied {applied}",
"sourceDetail": "{providers}; reason={reason}",
"execution": "Executor",
"sourceValue": "{status};直連 {direct},候選 {candidate},已套用 {applied}",
"sourceDetail": "{providers};原因={reason}",
"execution": "執行器",
"executionValue": "{executor} / {status}",
"executionDetail": "operation={operation}; action={action}; ops={ops}",
"executionDetail": "操作={operation};動作={action};維運={ops}",
"playbook": "PlayBook / Ansible",
"playbookValue": "{playbook}",
"playbookDetail": "ansible={ansible}; candidates={candidates}; check/apply={check}/{apply}; mode={mode}; rc={rc}; 批准={approval}; catalog={catalog}; status={status}",
"learning": "KM / Learning",
"learningValue": "KM {km}; AutoRepair {autoRepair}; Ops {ops}",
"learningDetail": "verification={verification}; next={nextStep}"
"learning": "KM / 學習",
"learningValue": "KM {km};自動修復 {autoRepair};維運 {ops}",
"learningDetail": "驗證={verification};下一步={nextStep}"
},
"drilldown": {
"title": "單一 Incident 處理流程",
"step": "{step}. {label}",
"signal": "來源接收",
"signalDetail": "inbound={inbound}; outbound={outbound}; 來源={status}; reason={reason}",
"signalDetail": "入站={inbound};出站={outbound}來源={status};原因={reason}",
"investigation": "MCP 調查",
"investigationValue": "success {success}/{total}",
"investigationDetail": "tools={tools}; failed={failed}; blocked={blocked}",
"investigationValue": "成功 {success}/{total}",
"investigationDetail": "工具={tools};失敗={failed};阻擋={blocked}",
"playbook": "PlayBook / Ansible",
"playbookDetail": "candidates={candidates}; check/apply={check}/{apply}; 批准={approval}",
"playbookDetail": "候選={candidates};檢查/套用={check}/{apply}批准={approval}",
"execution": "執行結果",
"executionValue": "{executor} / {status}",
"executionDetail": "operation={operation}; rc={rc}; mode={mode}",
"learning": "KM / Learning",
"learningValue": "KM {km}; autoRepair {autoRepair}",
"learningDetail": "verification={verification}; next={nextStep}",
"executionDetail": "操作={operation};回傳碼={rc};模式={mode}",
"learning": "KM / 學習",
"learningValue": "KM {km};自動修復 {autoRepair}",
"learningDetail": "驗證={verification};下一步={nextStep}",
"handoff": "人工 / 下一步",
"handoffDetail": "reason={reason}; next={nextAction}"
"handoffDetail": "原因={reason};下一步={nextAction}"
},
"source": {
"status": "來源關聯",
"verification": "狀態鏈驗證",
"directCandidate": "Direct / Candidate / Applied",
"directCandidate": "直連 / 候選 / 已套用",
"directCandidateValue": "{direct} / {candidate} / {applied}",
"latestApplied": "最新套用事件",
"reason": "未匹配原因",
"providers": "Provider",
"providers": "供應者",
"reasons": {
"providerHeartbeatNoMatch": "Provider 有心跳,但這個 Incident 尚未匹配",
"noMatchingProviderSourceEvent": "查無可匹配的 Sentry / SigNoz 事件",
@@ -4917,11 +4917,11 @@
"fetchFailed": "讀取來源關聯失敗"
},
"flow": {
"providerIngress": "Provider 接收",
"providerIngress": "供應者接收",
"sourceEvidence": "來源證據",
"appliedVerification": "套用關聯驗證",
"providerDetail": "provider events={providerEvents}; ready providers={readyProviders}",
"verificationDetail": "latest={latest}",
"providerDetail": "供應者事件={providerEvents};就緒供應者={readyProviders}",
"verificationDetail": "最新={latest}",
"status": {
"ready": "已接收",
"waiting": "等待資料",
@@ -5118,11 +5118,11 @@
"operator_visible": "Operator可見性"
},
"actions": {
"repair_alert_intake_or_outbound_mirror": "修復告警入庫或outbound mirror",
"route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway與evidence collectors",
"resolve_pending_or_expired_human_gate": "處理 pending / expired 人工 gate",
"record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成人工 no-action",
"write_auto_repair_execution_or_blocker_reason": "寫入 auto-repair execution或blocker reason",
"repair_alert_intake_or_outbound_mirror": "修復告警入庫或出站鏡像",
"route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway 與證據收集器",
"resolve_pending_or_expired_human_gate": "處理待處理 / 已過期人工閘門",
"record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成人工無動作",
"write_auto_repair_execution_or_blocker_reason": "寫入自動修復執行或阻塞原因",
"run_post_execution_verification": "執行事後驗證並保存結果",
"write_km_or_learning_evidence": "回寫 KM / learning evidence",
"repair_timeline_or_operator_notification_visibility": "修復 timeline或operator notification可見性"
@@ -5395,16 +5395,16 @@
"reason": "原因"
},
"evidence": {
"executor": "Executor",
"executor": "執行器",
"ansible": "Ansible",
"mcp": "MCP",
"mcpValue": "{success}/{total} successtop {tool}",
"source": "Source",
"sourceValue": "direct {direct} / candidate {candidate} / applied {applied}",
"mcpValue": "{success}/{total} 成功;主要工具 {tool}",
"source": "來源",
"sourceValue": "直連 {direct} / 候選 {candidate} / 已套用 {applied}",
"km": "KM",
"command": "指令判定",
"notification": "通知通道",
"events": "Timeline events"
"events": "時間線事件"
}
},
"legacyHitl": {
@@ -6120,7 +6120,7 @@
"running": "執行中",
"sent": "已送出",
"callbackReplySent": "Callback 已送出",
"callbackReplyFallbackSent": "Callback fallback",
"callbackReplyFallbackSent": "Callback 備援",
"callbackReplyRescueSent": "Callback 救援",
"callbackReplyFailed": "Callback 失敗",
"shadow": "Shadow",

View File

@@ -1209,10 +1209,10 @@
"execution": "執行判定",
"ansible": "Ansible",
"mcp": "MCP",
"mcpValue": "{success}/{total} successtop {tool}",
"mcpValue": "{success}/{total} 成功;主要工具 {tool}",
"km": "KM",
"notification": "通知通道",
"events": "Timeline events"
"events": "時間線事件"
}
}
},
@@ -1460,7 +1460,7 @@
"tickets": "Tickets"
},
"metrics": {
"sourceRefs": "Source refs",
"sourceRefs": "來源參照",
"sourceRefsValue": "{inbound} 入站 / {outbound} 出站",
"provider": "Sentry / SigNoz",
"mcp": "MCP Gateway",
@@ -1487,7 +1487,7 @@
"aiTitle": "AI 處置判定",
"aiDetail": "狀態 {state};下一步 {nextStep};人工 {needsHuman}",
"sourceTitle": "Sentry / SigNoz 匹配",
"sourceDetail": "direct {direct} / candidate {candidate} / applied {applied};原因 {reason}",
"sourceDetail": "直連 {direct} / 候選 {candidate} / 已套用 {applied};原因 {reason}",
"needsHumanYes": "需要",
"needsHumanNo": "不需要",
"stateLabels": {
@@ -1863,26 +1863,26 @@
"fetchFailed": "provider 關聯查詢失敗"
},
"tiles": {
"sourceRefs": "Source refs",
"sourceRefs": "來源參照",
"sourceRefsValue": "{inbound} 入站 / {outbound} 出站",
"sourceRefsDetail": "direct {direct}、candidate {candidate}、applied {applied}",
"sourceRefsDetail": "直連 {direct}、候選 {candidate}、已套用 {applied}",
"provider": "Sentry / SigNoz",
"providerDetail": "{reason}provider events {providerEvents}",
"providerDetail": "{reason}供應者事件 {providerEvents}",
"mcp": "MCP Gateway",
"mcpValue": "{success} / {total}",
"mcpDetail": "failed {failed}、blocked {blocked}、policy {policy}",
"mcpDetail": "失敗 {failed}、阻擋 {blocked}、政策 {policy}",
"ansible": "Ansible",
"ansibleDetail": "mode {mode}、rc {rc}、apply {apply}",
"ansibleDetail": "模式 {mode}、回傳碼 {rc}、套用 {apply}",
"km": "KM",
"kmDetail": "verification {verification}next {next}",
"kmDetail": "驗證 {verification}下一步 {next}",
"handoff": "交接狀態"
},
"providerEvidence": {
"title": "Provider 匹配狀態",
"title": "供應者匹配狀態",
"rawIdsHidden": "raw id 已收斂",
"summary": "目前判斷:{status}。原因:{reason}。",
"counts": "direct {direct} / candidate {candidate} / applied {applied}",
"latest": "latest event {event}heartbeat {heartbeat}"
"counts": "直連 {direct} / 候選 {candidate} / 已套用 {applied}",
"latest": "最新事件 {event};心跳 {heartbeat}"
},
"timeline": {
"title": "Incident Timeline 寫入證據",
@@ -3598,7 +3598,7 @@
"callbackTraceRecoveryBacklog": "Callback trace backlog缺 trace {missing}1h {recent1h}24h {recent24h}gap 後 traced {recovered};復原 {status}",
"callbackTraceRecoveryAction": "接續處理:{action};需要人工={human}",
"callbackTraceRecoveryOwner": "主責AwoooP Callback Evidence協作TelegramGateway / 執行時間線",
"callbackTraceRecoveryEvidenceSurface": "查證入口Runs / TG Callback Evidence",
"callbackTraceRecoveryEvidenceSurface": "查證入口Runs / TG Callback 證據",
"callbackTraceRecoveryClosure": "關閉條件1h=0 且 24h=0目前 1h {recent1h} / 24h {recent24h}",
"callbackTraceRecoveryDecision": "判讀:{gap};下一步:{next}",
"callbackTraceRecoveryLatest": "最後缺口:{missing};復原首筆:{first};復原最新:{latest}",
@@ -3875,7 +3875,7 @@
"recheckTotal": "Recheck {count}",
"guardrail": "讀取不寫入={writes};人工覆核={review}",
"itemState": "階段:{stage};結果:{outcome}",
"itemRefs": "Source{source}Recheck{recheck}"
"itemRefs": "來源{source}複查{recheck}"
},
"completionQueue": {
"title": "Completion分流佇列",
@@ -4219,13 +4219,13 @@
"sourceRefs": "來源 refs{refs}Sentry {sentry} / SignOz {signoz}",
"sourceFlow": {
"label": "來源流程:{status}",
"detail": "refs={refs}; Sentry={sentry}; SignOz={signoz}; event={event}",
"detail": "參照={refs}Sentry={sentry}SigNoz={signoz};事件={event}",
"statuses": {
"applied": "已套用",
"reviewed": "審核已記錄",
"review": "待審核配對",
"evidence": "來源證據已到",
"provider": "Provider 已接收",
"provider": "供應者已接收",
"waiting": "等待來源"
}
},
@@ -4369,17 +4369,17 @@
"sourceFlow": {
"column": "來源流程",
"notLinked": "尚未關聯 incident",
"detail": "providers={providers}; d/c/a={direct}/{candidate}/{applied}",
"nextLine": "next={next}",
"blockedLine": "blocked={blocker}",
"mcpLine": "MCP {success}/{total}; failed={failed}; blocked={blocked}",
"ansibleLine": "Ansible candidates={candidates}; apply={applied}; reason={reason}",
"kmLine": "KM entries={count}",
"detail": "供應者={providers};直連/候選/套用={direct}/{candidate}/{applied}",
"nextLine": "下一步={next}",
"blockedLine": "阻塞={blocker}",
"mcpLine": "MCP {success}/{total};失敗={failed};阻擋={blocked}",
"ansibleLine": "Ansible 候選={candidates};套用={applied};原因={reason}",
"kmLine": "KM 條目={count}",
"operator": {
"fallbackMcpSummary": "狀態鏈批次回補中;目前可見 MCP 證據 {count} 筆,route={route}",
"fallbackMcpSummary": "狀態鏈批次回補中;目前可見 MCP 證據 {count} 筆,路由={route}",
"fallbackMissingChain": "狀態鏈批次回補中;先用 Run 證據判讀",
"nextStatusChain": "等待狀態鏈批次回補,或打開 Incident 詳情確認",
"statusChainPending": "status_chain_pending",
"statusChainPending": "狀態鏈待回補",
"statuses": {
"needsHuman": "需人工",
"failed": "執行失敗",
@@ -4392,7 +4392,7 @@
"verified": "已驗證",
"applied": "已套用",
"evidence": "已找到證據",
"provider": "Provider 已接收",
"provider": "供應者已接收",
"waiting": "等待來源",
"loading": "讀取中"
}
@@ -4553,7 +4553,7 @@
},
"captureItems": {
"awooopStatusChain": "AwoooP 狀態鏈",
"kmCompletionSummary": "KM owner-review snapshot"
"kmCompletionSummary": "KM 負責人覆核快照"
},
"filters": {
"label": "TG Callback 篩選",
@@ -4562,7 +4562,7 @@
"statuses": {
"noCallback": "尚無 Callback",
"sent": "已送達",
"fallbackSent": "Fallback 已送達",
"fallbackSent": "備援已送達",
"rescueSent": "救援已送達",
"failed": "送達失敗",
"observed": "已記錄"
@@ -4570,19 +4570,19 @@
"details": {
"noCallback": "此 Run 尚未有詳情 / 歷史 callback reply 證據。",
"sent": "Telegram callback reply 已用原格式送達。",
"fallbackSent": "Telegram HTML 回覆失敗後,已用純文字 fallback 送達。",
"rescueSent": "Telegram fallback仍失敗後,已用救援純文字送達。",
"fallbackSent": "Telegram HTML 回覆失敗後,已用純文字備援送達。",
"rescueSent": "Telegram 備援仍失敗後,已用救援純文字送達。",
"failed": "Telegram callback reply 最終送達失敗,需人工確認。",
"observed": "Telegram callback reply 已記錄,但狀態不屬於標準分類。"
},
"events": {
"title": "TG Callback Evidence",
"subtitle": "詳情 / 歷史回覆證據來自 AwoooP outbound mirror",
"title": "TG Callback 證據",
"subtitle": "詳情 / 歷史回覆證據來自 AwoooP 出站鏡像",
"total": "{count} 筆",
"loading": "正在同步 callback evidence尚未回來前不判定為空資料。",
"cacheHit": "快取命中 {age}s / TTL {ttl}s",
"cacheMiss": "剛重新聚合 / TTL {ttl}s",
"empty": "目前尚無 callback reply evidence。",
"empty": "目前尚無 callback reply 證據。",
"error": "Callback evidence 載入失敗:{error}",
"summary": {
"outbound": "出站鏡像",
@@ -4597,13 +4597,13 @@
"outboundReplyMarkupTopPrefixItem": "{prefix} {total}24h {recent},最後 {last}",
"operatorVerdictTitle": "Operator 判讀",
"operatorVerdictDetail": "入站點擊鏡像:{inboundStatus}(累計 {inboundTotal}24h {inboundRecent24h}snapshot{snapshotStatus} / {snapshotCoverage}trace 復原:{traceRecoveryStatus};下一步:{nextAction}",
"callbacks": "Callback replies",
"callbacks": "Callback 回覆",
"callbackDetail": "detail {detail} / history {history}Incident {incidents}",
"inboundCallbackDetail": "入站 click{status};累計 {total} / 24h {recent24h};最新 {latest};動作 {action}",
"snapshots": "Evidence snapshots",
"snapshots": "證據快照",
"snapshotDetail": "captured {captured} / partial {partial} / missing {missing};覆蓋 {coverage}",
"delivery": "送達失敗",
"deliveryDetail": "sent {sent}fallback {fallback}outbound failed {outboundFailed}",
"deliveryDetail": "已送達 {sent}備援 {fallback}出站失敗 {outboundFailed}",
"next": "下一步",
"latest": "最新 callback{time}",
"statuses": {
@@ -4660,9 +4660,9 @@
"previewEmpty": "無摘要",
"openRun": "開啟 Run",
"awooopSnapshotTitle": "Callback 當下 AwoooP 狀態鏈",
"awooopSnapshotMcp": "MCPtotal {total} / success {success} / failed {failed} / blocked {blocked}top {topTool}",
"awooopSnapshotExecution": "Executionexecutor {executor}playbook {playbook}Ansible considered={ansible} / candidates={candidates}",
"awooopSnapshotSource": "Source{status}direct {direct} / candidate {candidate} / applied {applied}{providers}",
"awooopSnapshotMcp": "MCP總數 {total} / 成功 {success} / 失敗 {failed} / 阻擋 {blocked}主要工具 {topTool}",
"awooopSnapshotExecution": "執行:執行器 {executor}PlayBook {playbook}Ansible 已評估={ansible} / 候選={candidates}",
"awooopSnapshotSource": "來源{status}直連 {direct} / 候選 {candidate} / 已套用 {applied}{providers}",
"capture": {
"title": "Evidence Capture 狀態",
"captured": "已捕捉:{items}",
@@ -4678,7 +4678,7 @@
},
"items": {
"awooopStatusChain": "AwoooP 狀態鏈",
"kmCompletionSummary": "KM owner-review snapshot"
"kmCompletionSummary": "KM 負責人覆核快照"
},
"nextActions": {
"none": "不需補動作",
@@ -4870,45 +4870,45 @@
"mcpValue": "Gateway {success}/{total},失敗 {failed},阻擋 {blocked}",
"mcpDetail": "top={topTool}; first-class={firstClass}; legacy={legacy}; policy={policy}",
"source": "Sentry / SigNoz",
"sourceValue": "{status}; direct {direct}, candidate {candidate}, applied {applied}",
"sourceDetail": "{providers}; reason={reason}",
"execution": "Executor",
"sourceValue": "{status};直連 {direct},候選 {candidate},已套用 {applied}",
"sourceDetail": "{providers};原因={reason}",
"execution": "執行器",
"executionValue": "{executor} / {status}",
"executionDetail": "operation={operation}; action={action}; ops={ops}",
"executionDetail": "操作={operation};動作={action};維運={ops}",
"playbook": "PlayBook / Ansible",
"playbookValue": "{playbook}",
"playbookDetail": "ansible={ansible}; candidates={candidates}; check/apply={check}/{apply}; mode={mode}; rc={rc}; 批准={approval}; catalog={catalog}; status={status}",
"learning": "KM / Learning",
"learningValue": "KM {km}; AutoRepair {autoRepair}; Ops {ops}",
"learningDetail": "verification={verification}; next={nextStep}"
"learning": "KM / 學習",
"learningValue": "KM {km};自動修復 {autoRepair};維運 {ops}",
"learningDetail": "驗證={verification};下一步={nextStep}"
},
"drilldown": {
"title": "單一 Incident 處理流程",
"step": "{step}. {label}",
"signal": "來源接收",
"signalDetail": "inbound={inbound}; outbound={outbound}; 來源={status}; reason={reason}",
"signalDetail": "入站={inbound};出站={outbound}來源={status};原因={reason}",
"investigation": "MCP 調查",
"investigationValue": "success {success}/{total}",
"investigationDetail": "tools={tools}; failed={failed}; blocked={blocked}",
"investigationValue": "成功 {success}/{total}",
"investigationDetail": "工具={tools};失敗={failed};阻擋={blocked}",
"playbook": "PlayBook / Ansible",
"playbookDetail": "candidates={candidates}; check/apply={check}/{apply}; 批准={approval}",
"playbookDetail": "候選={candidates};檢查/套用={check}/{apply}批准={approval}",
"execution": "執行結果",
"executionValue": "{executor} / {status}",
"executionDetail": "operation={operation}; rc={rc}; mode={mode}",
"learning": "KM / Learning",
"learningValue": "KM {km}; autoRepair {autoRepair}",
"learningDetail": "verification={verification}; next={nextStep}",
"executionDetail": "操作={operation};回傳碼={rc};模式={mode}",
"learning": "KM / 學習",
"learningValue": "KM {km};自動修復 {autoRepair}",
"learningDetail": "驗證={verification};下一步={nextStep}",
"handoff": "人工 / 下一步",
"handoffDetail": "reason={reason}; next={nextAction}"
"handoffDetail": "原因={reason};下一步={nextAction}"
},
"source": {
"status": "來源關聯",
"verification": "狀態鏈驗證",
"directCandidate": "Direct / Candidate / Applied",
"directCandidate": "直連 / 候選 / 已套用",
"directCandidateValue": "{direct} / {candidate} / {applied}",
"latestApplied": "最新套用事件",
"reason": "未匹配原因",
"providers": "Provider",
"providers": "供應者",
"reasons": {
"providerHeartbeatNoMatch": "Provider 有心跳,但這個 Incident 尚未匹配",
"noMatchingProviderSourceEvent": "查無可匹配的 Sentry / SigNoz 事件",
@@ -4917,11 +4917,11 @@
"fetchFailed": "讀取來源關聯失敗"
},
"flow": {
"providerIngress": "Provider 接收",
"providerIngress": "供應者接收",
"sourceEvidence": "來源證據",
"appliedVerification": "套用關聯驗證",
"providerDetail": "provider events={providerEvents}; ready providers={readyProviders}",
"verificationDetail": "latest={latest}",
"providerDetail": "供應者事件={providerEvents};就緒供應者={readyProviders}",
"verificationDetail": "最新={latest}",
"status": {
"ready": "已接收",
"waiting": "等待資料",
@@ -5118,11 +5118,11 @@
"operator_visible": "Operator可見性"
},
"actions": {
"repair_alert_intake_or_outbound_mirror": "修復告警入庫或outbound mirror",
"route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway與evidence collectors",
"resolve_pending_or_expired_human_gate": "處理 pending / expired 人工 gate",
"record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成人工 no-action",
"write_auto_repair_execution_or_blocker_reason": "寫入 auto-repair execution或blocker reason",
"repair_alert_intake_or_outbound_mirror": "修復告警入庫或出站鏡像",
"route_incident_to_mcp_gateway_and_evidence_collectors": "把事件導入 MCP Gateway 與證據收集器",
"resolve_pending_or_expired_human_gate": "處理待處理 / 已過期人工閘門",
"record_effective_execution_or_mark_manual_no_action": "記錄有效執行,或明確標成人工無動作",
"write_auto_repair_execution_or_blocker_reason": "寫入自動修復執行或阻塞原因",
"run_post_execution_verification": "執行事後驗證並保存結果",
"write_km_or_learning_evidence": "回寫 KM / learning evidence",
"repair_timeline_or_operator_notification_visibility": "修復 timeline或operator notification可見性"
@@ -5395,16 +5395,16 @@
"reason": "原因"
},
"evidence": {
"executor": "Executor",
"executor": "執行器",
"ansible": "Ansible",
"mcp": "MCP",
"mcpValue": "{success}/{total} successtop {tool}",
"source": "Source",
"sourceValue": "direct {direct} / candidate {candidate} / applied {applied}",
"mcpValue": "{success}/{total} 成功;主要工具 {tool}",
"source": "來源",
"sourceValue": "直連 {direct} / 候選 {candidate} / 已套用 {applied}",
"km": "KM",
"command": "指令判定",
"notification": "通知通道",
"events": "Timeline events"
"events": "時間線事件"
}
},
"legacyHitl": {
@@ -6120,7 +6120,7 @@
"running": "執行中",
"sent": "已送出",
"callbackReplySent": "Callback 已送出",
"callbackReplyFallbackSent": "Callback fallback",
"callbackReplyFallbackSent": "Callback 備援",
"callbackReplyRescueSent": "Callback 救援",
"callbackReplyFailed": "Callback 失敗",
"shadow": "Shadow",