From 9be4e57723355cc7aad5e5970298f66eccf85e7e Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 19 Jun 2026 03:03:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E5=90=8C=E6=AD=A5=E6=B2=BB?= =?UTF-8?q?=E7=90=86=E9=A0=81=E7=B9=81=E4=B8=AD=E9=8F=A1=E5=83=8F=E6=96=87?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/messages/en.json | 344 +++++++++++++++++++------------------- docs/LOGBOOK.md | 4 + 2 files changed, 176 insertions(+), 172 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index ad9179b7..57833a24 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -2329,7 +2329,7 @@ "stats": "建立 report-source-gap:stats_api", "git": "建立 report-source-gap:gitea_activity", "cost": "建立 report-source-gap:ai_cost_ledger", - "noSend": "維持 no-send preview,不直接實發 Telegram" + "noSend": "維持 無發送 preview,不直接實發 Telegram" } }, "sources": { @@ -2342,7 +2342,7 @@ "incident": "缺資料時追查 incidents freshness、Alertmanager 入庫與 recurrence mirror。", "resolution": "缺資料時追查 resolved_at、duration 與 postmortem 寫回。", "disposition": "缺資料時追查 approval_records、auto repair execution 與 no-action 分流。", - "statusBoard": "缺資料時追查 committed snapshot、API route 與 no-send preview contract。" + "statusBoard": "缺資料時追查 committed snapshot、API route 與 無發送 preview contract。" }, "sourceMatrix": { "title": "資料源健康矩陣", @@ -3925,91 +3925,91 @@ }, "boundaries": { "gateway": "Gateway queue write", - "telegram": "Telegram send", - "botApi": "Bot API call", - "receipt": "Receipt production write", - "production": "Production write", - "secret": "Secret / paid / host / kubectl" + "telegram": "Telegram 發送", + "botApi": "Bot API 呼叫", + "receipt": "Receipt 正式寫入", + "production": "正式寫入", + "secret": "Secret / 付費 / 主機 / kubectl" }, "riskTiers": { - "low": "low", - "medium": "medium", - "high": "high", - "critical": "critical" + "low": "低風險", + "medium": "中風險", + "high": "高風險", + "critical": "關鍵風險" } }, "reportNoWriteAnalysis": { - "title": "P2-407 AI 報表 no-write 分析", + "title": "P2-407 AI 報表 無寫入 分析", "subtitle": "{current} → {next};分析建議 {recommendations};阻擋中的 runtime 操作 {blocked}。", "badges": { - "mode": "committed snapshot", + "mode": "已提交快照", "room": "戰情室 {room}", - "live": "live total {count}" + "live": "正式動作總數 {count}" }, "metrics": { "overall": "完成度", "sources": "來源讀回", "inputs": "報表輸入", - "passes": "Agent pass", + "passes": "Agent 通過", "recommendations": "分析建議", "artifacts": "草稿產物", - "gates": "Owner gates", + "gates": "負責人關卡", "approvals": "需批准", - "live": "Live total" + "live": "正式動作總數" }, "sections": { - "recommendations": "No-write 分析建議", + "recommendations": "無寫入 分析建議", "agentPasses": "Agent 接手分析", - "ownerGates": "Owner gate", - "truth": "No-write truth" + "ownerGates": "負責人關卡", + "truth": "無寫入真相" }, "labels": { - "score": "score {score}", - "approvalRequired": "approval {value}", + "score": "分數 {score}", + "approvalRequired": "批准 {value}", "gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}", - "generated": "generated {generated}", - "env": "env {value}", - "redaction": "redaction {value}" + "generated": "產生於 {generated}", + "env": "環境 {value}", + "redaction": "脫敏 {value}" }, "riskTiers": { - "low": "low", - "medium": "medium", - "high": "high", - "critical": "critical" + "low": "低風險", + "medium": "中風險", + "high": "高風險", + "critical": "關鍵風險" } }, "lowMediumWhitelist": { "title": "P2-408 中 / 低風險白名單", "subtitle": "{current} → {next};候選 {candidates};阻擋中的 runtime 操作 {blocked}。", "badges": { - "mode": "no-live whitelist", + "mode": "無正式執行白名單", "room": "戰情室 {room}", - "live": "live total {count}" + "live": "正式動作總數 {count}" }, "metrics": { "overall": "完成度", "candidates": "白名單候選", "low": "低風險", "medium": "中風險", - "verifiers": "Verifier", - "rollback": "Rollback proof", - "audit": "Audit reason", + "verifiers": "驗證器", + "rollback": "回滾證據", + "audit": "審計理由", "highRedirects": "高風險分流", - "live": "Live total" + "live": "正式動作總數" }, "sections": { "candidates": "中 / 低風險候選", - "ownerGates": "Owner gates", - "verifiers": "Dry-run verifier", - "truth": "Whitelist truth" + "ownerGates": "負責人關卡", + "verifiers": "Dry-run 驗證器", + "truth": "白名單真相" }, "labels": { - "verifier": "verifier {value}", - "rollback": "rollback {value}", + "verifier": "驗證器 {value}", + "rollback": "回滾 {value}", "gateDetail": "owner {owner} · 欄位 {fields} · 驗收 {checks}", - "generated": "generated {generated}", - "env": "env {value}", - "redaction": "redaction {value}" + "generated": "產生於 {generated}", + "env": "環境 {value}", + "redaction": "脫敏 {value}" }, "agents": { "openclaw": "OpenClaw", @@ -4018,52 +4018,52 @@ "sre": "SRE" }, "riskTiers": { - "low": "low", - "medium": "medium" + "low": "低風險", + "medium": "中風險" }, "statuses": { - "candidate_only_no_live_execution": "候選 only", - "dry_run_ready_no_live_execution": "dry-run ready", - "owner_review_required_no_live_execution": "owner review" + "candidate_only_no_live_execution": "僅候選", + "dry_run_ready_no_live_execution": "dry-run 就緒", + "owner_review_required_no_live_execution": "需負責人審查" } }, "highRiskOwnerQueue": { "title": "P2-409 高風險 Owner Review Queue", "subtitle": "{current} → {next};佇列 {queue};阻擋中的 runtime 操作 {blocked}。", "badges": { - "mode": "high-risk paused", + "mode": "高風險暫停", "room": "戰情室 {room}", - "live": "live total {count}" + "live": "正式動作總數 {count}" }, "metrics": { "overall": "完成度", - "queue": "Queue items", - "critical": "Critical", - "high": "High", - "packets": "Approval packets", + "queue": "佇列項目", + "critical": "關鍵風險", + "high": "高風險", + "packets": "批准封包", "guards": "拒收規則", - "checklists": "Checklist", - "accepted": "Owner accepted", - "live": "Live total" + "checklists": "檢查清單", + "accepted": "負責人已接受", + "live": "正式動作總數" }, "sections": { "queue": "高風險暫停佇列", "routing": "路由政策", "guards": "拒收規則", - "truth": "Queue truth" + "truth": "佇列真相" }, "labels": { - "packet": "packet {value}", + "packet": "封包 {value}", "fields": "owner 欄位 {count}", - "highRoute": "High route", - "criticalRoute": "Critical route", - "ownerRequired": "owner required {value}", - "verbalApproval": "verbal approval {value}", - "telegram": "Telegram policy", - "telegramDetail": "live action {count}", - "generated": "generated {generated}", - "redaction": "redaction {value}", - "ownerAccepted": "owner accepted {count}" + "highRoute": "高風險路由", + "criticalRoute": "關鍵路由", + "ownerRequired": "需要 owner {value}", + "verbalApproval": "口頭批准 {value}", + "telegram": "Telegram 政策", + "telegramDetail": "正式動作 {count}", + "generated": "產生於 {generated}", + "redaction": "脫敏 {value}", + "ownerAccepted": "負責人已接受 {count}" }, "agents": { "openclaw": "OpenClaw", @@ -4074,53 +4074,53 @@ "devops": "DevOps" }, "riskTiers": { - "high": "high", - "critical": "critical" + "high": "高風險", + "critical": "關鍵風險" }, "statuses": { - "paused_owner_review_required": "paused", - "blocked_missing_owner_response": "owner missing", - "approval_packet_preview_ready": "packet ready" + "paused_owner_review_required": "已暫停", + "blocked_missing_owner_response": "缺負責人回覆", + "approval_packet_preview_ready": "封包就緒" } }, "actionAuditLedger": { "title": "P2-410 AI Agent 行動審計帳本", "subtitle": "{current} → {next};audit event {events};阻擋中的 runtime 操作 {blocked}。", "badges": { - "mode": "immutable no-write ledger", - "immutable": "event templates {count}", - "live": "live write total {count}" + "mode": "不可變無寫入帳本", + "immutable": "事件模板 {count}", + "live": "正式寫入總數 {count}" }, "metrics": { "overall": "完成度", - "events": "Audit events", - "lowMedium": "Low / Medium", - "highRisk": "High risk", - "critical": "Critical", - "report": "Report gaps", - "telegram": "Telegram events", - "gates": "Verifier gates", - "fields": "Audit fields", - "live": "Live writes" + "events": "審計事件", + "lowMedium": "低 / 中風險", + "highRisk": "高風險", + "critical": "關鍵風險", + "report": "報表缺口", + "telegram": "Telegram 事件", + "gates": "驗證關卡", + "fields": "審計欄位", + "live": "正式寫入" }, "sections": { "events": "行動審計事件", - "boundaries": "No-write 邊界", - "gates": "Verifier receipt gates", - "truth": "Ledger truth" + "boundaries": "無寫入 邊界", + "gates": "驗證回執關卡", + "truth": "帳本真相" }, "labels": { "fields": "audit 欄位 {count}", - "sideEffects": "side effects {count}", - "auditDb": "Audit DB write", - "timelineKm": "Timeline / KM write", - "telegram": "Telegram send", - "writeTotal": "live write total {count}", + "sideEffects": "副作用 {count}", + "auditDb": "Audit DB 寫入", + "timelineKm": "Timeline / KM 寫入", + "telegram": "Telegram 發送", + "writeTotal": "正式寫入總數 {count}", "playbook": "PlayBook trust {value}", "queueBot": "queue {queue} / bot {bot}", - "generated": "generated {generated}", - "redaction": "redaction {value}", - "ownerAccepted": "owner accepted {count}" + "generated": "產生於 {generated}", + "redaction": "脫敏 {value}", + "ownerAccepted": "負責人已接受 {count}" }, "agents": { "openclaw": "OpenClaw", @@ -4142,7 +4142,7 @@ "owner_queue_pause": "owner queue pause", "runtime_action_rejection": "runtime rejection", "work_item_owner_review": "work item review", - "no_send_preview": "no-send preview", + "no_send_preview": "無發送 preview", "notification_egress_guard": "egress guard", "writeback_blocked": "writeback blocked" } @@ -4865,7 +4865,7 @@ "labels": { "requiredFields": "必填欄位 {count}", "forbiddenFields": "禁止欄位 {count}", - "noWrite": "no-write proof: {value}" + "noWrite": "無寫入 proof: {value}" }, "agents": { "openclaw": "OpenClaw", @@ -5108,7 +5108,7 @@ "subtitle": "{current} 已整理日報、週報、月報實發批准包;下一關 {next} 才能進入 fixture readback,不直接實發。", "source": "{generated} · {current}", "route": "正式目標:{room}", - "statusLine": "這裡顯示 AI Agent 報告要如何送到 Telegram:先走 AwoooI SRE 戰情室、先做 no-send 演練、先確認 dedup / redaction / 回執欄位;目前 scheduler、Gateway queue、Bot API、Telegram 實發、讀報回執與 AI 分析全部仍為 0。", + "statusLine": "這裡顯示 AI Agent 報告要如何送到 Telegram:先走 AwoooI SRE 戰情室、先做 無發送 演練、先確認 dedup / redaction / 回執欄位;目前 scheduler、Gateway queue、Bot API、Telegram 實發、讀報回執與 AI 分析全部仍為 0。", "routeGateTitle": "Telegram 路由與 TG Bot 閘門", "receiptTitle": "讀報回執與 AI 分析演練", "metrics": { @@ -5129,7 +5129,7 @@ "ownerReview": "人工審核: {value}" }, "labels": { - "noSendMode": "no-send: {value}", + "noSendMode": "無發送: {value}", "requiredEvidence": "證據 {count}", "gateway": "queue write: {value}", "telegram": "send: {value}", @@ -5183,9 +5183,9 @@ } }, "reportRuntimeDryRun": { - "title": "P2-403M 報表 runtime no-write dry-run 證據包", + "title": "P2-403M 報表 runtime 無寫入 dry-run 證據包", "source": "{generated} · {current} → {next}", - "truthTitle": "no-write dry-run 真相", + "truthTitle": "無寫入 dry-run 真相", "queueTitle": "Gateway queue 草案", "queueSummary": "草案收件目標是 {room};Secret 只能引用 {secret};目前 queue write {queue}、Bot API {bot}、Telegram send {send}。", "metrics": { @@ -5201,7 +5201,7 @@ "verifierLive": "live verifier" }, "flags": { - "noWrite": "no-write package: {value}", + "noWrite": "無寫入 package: {value}", "queueDraft": "queue draft: {value}", "queueWrite": "queue write: {value}", "receipt": "receipt write: {value}", @@ -5272,7 +5272,7 @@ "liveCount": "live {count}" }, "statuses": { - "passed_no_write": "no-write 通過", + "passed_no_write": "無寫入 通過", "passed_redaction": "redaction 通過", "ready_for_owner_review": "可審查", "blocked_by_runtime_gate": "runtime 阻擋", @@ -5287,18 +5287,18 @@ } }, "runtimeWorkerShadowGate": { - "title": "P2-404 runtime worker shadow / no-write execution evidence gate", + "title": "P2-404 runtime worker shadow / 無寫入 execution evidence gate", "source": "{generated} · {current} → {next}", "truthTitle": "shadow gate 真相", "boundaryTitle": "live 邊界", - "boundarySummary": "目前 live worker {live}、Gateway queue write {queue}、Telegram send {send}、production write {write};這段只允許 shadow/no-write evidence。", + "boundarySummary": "目前 live worker {live}、Gateway queue write {queue}、Telegram send {send}、production write {write};這段只允許 shadow/無寫入 evidence。", "metrics": { "overall": "P2-404 進度", "candidates": "shadow 候選", - "passed": "no-write 通過", + "passed": "無寫入 通過", "blocked": "阻擋候選", "review": "需審查", - "replays": "no-write replay", + "replays": "無寫入 replay", "verifierCases": "verifier cases", "approvals": "需批准", "liveRuns": "live worker", @@ -5309,7 +5309,7 @@ "flags": { "shadowReady": "shadow evidence: {value}", "promotionReady": "fixture promotion: {value}", - "replayReady": "no-write replay: {value}", + "replayReady": "無寫入 replay: {value}", "operatorReview": "operator packet: {value}", "shadowLive": "shadow live: {value}", "queueWrite": "queue write: {value}", @@ -5327,8 +5327,8 @@ "sideEffect": "side effects {count}" }, "statuses": { - "passed_no_write_replay": "no-write replay 通過", - "passed_no_write": "no-write 通過", + "passed_no_write_replay": "無寫入 replay 通過", + "passed_no_write": "無寫入 通過", "needs_owner_review": "需 owner 審查", "blocked_by_runtime_gate": "runtime 阻擋" }, @@ -5349,7 +5349,7 @@ "overall": "P2-101 進度", "categories": "操作類別", "observeOnly": "只讀", - "noWrite": "no-write", + "noWrite": "無寫入", "proposals": "提案", "humanApproval": "需人工", "blocked": "明確阻擋", @@ -5385,7 +5385,7 @@ }, "lanes": { "observe_only": "只讀觀察", - "no_write_replay_allowed": "no-write replay", + "no_write_replay_allowed": "無寫入 replay", "proposal_only": "提案 / SOP", "human_approval_required": "需人工批准", "explicitly_blocked": "明確阻擋" @@ -5412,7 +5412,7 @@ "overall": "P2-102 進度", "candidates": "候選操作", "evidence": "有證據", - "passed": "no-write 通過", + "passed": "無寫入 通過", "needsReview": "需審查", "allowlistBlocked": "等 allow-list", "policyBlocked": "政策阻擋", @@ -5448,7 +5448,7 @@ "reviewRequired": "人工審查: {value}" }, "statuses": { - "passed_no_write": "no-write 通過", + "passed_no_write": "無寫入 通過", "needs_owner_review": "需 owner 審查", "blocked_until_allowlist": "等 allow-list", "blocked_by_policy": "政策阻擋" @@ -5692,7 +5692,7 @@ "title": "P2-106 統帥批准後結果捕捉 dry-run", "source": "{generated} · {current} → {next}", "packetTitle": "批准包", - "truthTitle": "no-write dry-run 真相", + "truthTitle": "無寫入 dry-run 真相", "metrics": { "overall": "P2-106 進度", "templates": "捕捉模板", @@ -5923,7 +5923,7 @@ "metrics": { "overall": "P2-110 進度", "cards": "實作卡", - "checks": "no-write verifier", + "checks": "無寫入 verifier", "blockers": "阻塞項", "actions": "操作選項", "approvalRequired": "需批准", @@ -5952,7 +5952,7 @@ "labels": { "interfaces": "介面欄位 {count}", "blockedActions": "阻擋動作 {count}", - "noWriteMode": "no-write: {value}", + "noWriteMode": "無寫入: {value}", "requiredEvidence": "必備證據 {count}", "liveQuery": "live query: {value}", "runtimeWrite": "runtime 寫入: {value}", @@ -6001,7 +6001,7 @@ "packets": "批准包", "routeGates": "route gate", "redactionChecks": "遮蔽檢查", - "receipts": "no-send receipt", + "receipts": "無發送 receipt", "actions": "操作選項", "approvalRequired": "需批准", "blocked": "阻擋總數", @@ -6019,7 +6019,7 @@ "packageReady": "批准包 ready: {value}", "routeLocked": "SRE route lock: {value}", "redactionReady": "遮蔽 ready: {value}", - "dryRunReceipt": "no-send receipt: {value}", + "dryRunReceipt": "無發送 receipt: {value}", "scheduler": "scheduler: {value}", "gatewayWrite": "Gateway queue: {value}", "telegramSend": "Telegram 發送: {value}", @@ -6030,7 +6030,7 @@ "labels": { "approvalFields": "批准欄位 {count}", "blockedActions": "阻擋動作 {count}", - "noSendMode": "no-send: {value}", + "noSendMode": "無發送: {value}", "requiredEvidence": "必備證據 {count}", "blockedRoutes": "阻擋路由 {count}", "telegramSend": "Telegram: {value}", @@ -6176,7 +6176,7 @@ "contracts": "receipt contract", "reviewerPreviews": "reviewer queue", "resultPreviews": "result capture", - "checks": "no-write verifier", + "checks": "無寫入 verifier", "blockers": "阻塞映射", "actions": "操作選項", "approvalRequired": "需批准", @@ -6203,8 +6203,8 @@ "reviewerReady": "reviewer preview={value}", "resultReady": "result preview={value}", "telegramSend": "Telegram send={value}", - "queueWrite": "queue write={value}", - "resultWrite": "result write={value}", + "queueWrite": "queue 寫入={value}", + "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", "promptDisplay": "prompt display={value}", "secretDisplay": "secret display={value}", @@ -6218,10 +6218,10 @@ "liveSend": "live send={value}", "receiptWrite": "receipt write={value}", "requiredFields": "fields {count}", - "queueWrite": "queue write={value}", + "queueWrite": "queue 寫入={value}", "auditWrite": "audit write={value}", - "resultWrite": "result write={value}", - "learningWrite": "learning write={value}", + "resultWrite": "結果寫入={value}", + "learningWrite": "學習寫入={value}", "liveVerifier": "live verifier={value}", "blockedAction": "blocked:{value}", "blockedUntil": "until:{value}", @@ -6265,7 +6265,7 @@ "actionTypes": { "review_promotion_lane": "審查 promotion lane", "verify_failure_receipt_fixture": "驗證 failure receipt fixture", - "confirm_reviewer_queue_no_write": "確認 reviewer queue no-write", + "confirm_reviewer_queue_no_write": "確認 reviewer queue 無寫入", "compare_result_capture_preview": "比對 result capture preview", "promote_to_p2_114": "推進 P2-114" } @@ -6281,7 +6281,7 @@ "packets": "owner packet", "templates": "acceptance template", "reviews": "fixture review", - "verifiers": "no-write verifier", + "verifiers": "無寫入 verifier", "blockers": "blocked promotion", "actions": "操作選項", "approvalRequired": "需批准", @@ -6310,7 +6310,7 @@ "acceptanceReady": "acceptance ready={value}", "ownerApproval": "owner approval={value}", "telegramSend": "Telegram send={value}", - "resultWrite": "result write={value}", + "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", "promptDisplay": "prompt display={value}", "secretDisplay": "secret display={value}", @@ -6321,10 +6321,10 @@ "allowedFixture": "fixture:{value}", "blockedActions": "blocked actions {count}", "requiredFields": "fields {count}", - "accepted": "accepted={value}", - "recordWrite": "record write={value}", + "accepted": "已接受={value}", + "recordWrite": "紀錄寫入={value}", "reviewOutcome": "outcome:{value}", - "runtimeWrite": "runtime write={value}", + "runtimeWrite": "runtime 寫入={value}", "liveVerifier": "live verifier={value}", "blockedAction": "blocked:{value}", "blockedUntil": "until:{value}", @@ -6378,10 +6378,10 @@ "truthTitle": "Canonical readback owner acceptance truth" }, "failureReceiptNoSendReplay": { - "title": "P2-116 failure receipt no-send replay", + "title": "P2-116 failure receipt 無發送 replay", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 owner acceptance", - "truthTitle": "No-send replay truth", + "truthTitle": "無發送 replay truth", "metrics": { "overall": "完成度", "fixtures": "Replay fixtures", @@ -6404,16 +6404,16 @@ "botCalls": "Bot API={value}", "sendEnabled": "send enabled={value}", "deprecatedRoutes": "舊路由={value}", - "queueWriteEnabled": "queue write={value}", + "queueWriteEnabled": "queue 寫入={value}", "blockedAction": "blocked:{value}", "runtimeSendAllowed": "runtime send={value}" } }, "reviewerQueueNoWriteReadback": { - "title": "P2-117 reviewer queue no-write readback", + "title": "P2-117 reviewer queue 無寫入 readback", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 no-send replay", - "truthTitle": "Reviewer queue no-write truth", + "priorTitle": "前一關 無發送 replay", + "truthTitle": "Reviewer queue 無寫入 truth", "metrics": { "overall": "完成度", "fixtures": "Reviewer fixtures", @@ -6433,19 +6433,19 @@ "targetQueue": "目標 queue:{value}", "reviewerWrites": "reviewer write={value}", "queueWrites": "Gateway queue={value}", - "resultWrites": "result write={value}", + "resultWrites": "結果寫入={value}", "queueLane": "lane:{value}", - "queueWriteEnabled": "queue write={value}", + "queueWriteEnabled": "queue 寫入={value}", "requiredReviewer": "reviewer:{value}", "blockedAction": "blocked:{value}", - "runtimeQueueWriteAllowed": "runtime queue write={value}" + "runtimeQueueWriteAllowed": "runtime queue 寫入={value}" } }, "resultCaptureNoWriteReadback": { - "title": "P2-118 result capture no-write readback", + "title": "P2-118 result capture 無寫入 readback", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 reviewer queue readback", - "truthTitle": "Result capture no-write truth", + "truthTitle": "Result capture 無寫入 truth", "metrics": { "overall": "完成度", "fixtures": "Capture fixtures", @@ -6463,8 +6463,8 @@ }, "labels": { "targetCapture": "目標 capture:{value}", - "resultWrites": "result write={value}", - "learningWrites": "learning write={value}", + "resultWrites": "結果寫入={value}", + "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", "captureLane": "lane:{value}", "captureWriteEnabled": "capture write={value}", @@ -6495,8 +6495,8 @@ }, "labels": { "targetPromotion": "目標 promotion:{value}", - "resultWrites": "result write={value}", - "learningWrites": "learning write={value}", + "resultWrites": "結果寫入={value}", + "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", "approvalLane": "lane:{value}", "captureWriteEnabled": "capture write={value}", @@ -6531,14 +6531,14 @@ }, "labels": { "targetDryRun": "目標 dry-run:{value}", - "resultWrites": "result write={value}", - "learningWrites": "learning write={value}", + "resultWrites": "結果寫入={value}", + "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", - "runtimeWriteEnabled": "runtime write={value}", + "runtimeWriteEnabled": "runtime 寫入={value}", "requiredOwner": "owner:{value}", "fixtureOnly": "fixture only={value}", "blockedAction": "blocked:{value}", - "runtimeWriteAllowed": "runtime write={value}" + "runtimeWriteAllowed": "runtime 寫入={value}" } }, "resultCaptureWriterImplementationReview": { @@ -6678,14 +6678,14 @@ } }, "resultCaptureOwnerApprovedExecutionRehearsal": { - "title": "P2-126 owner-approved execution rehearsal / no-write apply gate", + "title": "P2-126 owner-approved execution rehearsal / 無寫入 apply gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 owner promotion review", "truthTitle": "execution rehearsal 真相", "metrics": { "overall": "完成度", "rehearsals": "Execution rehearsals", - "applyChecks": "No-write apply checks", + "applyChecks": "無寫入 apply checks", "verifiers": "Verifier rehearsals", "rollbackDrills": "Rollback drills", "blockers": "已阻擋 live apply", @@ -6696,14 +6696,14 @@ }, "flags": { "ownerPromotionLoaded": "已載入 owner promotion={value}", - "noWriteReady": "no-write rehearsal ready={value}", + "noWriteReady": "無寫入 rehearsal ready={value}", "rollbackReady": "rollback drill ready={value}" }, "labels": { "writerApply": "writer 套用={value}", "executionApply": "execution 套用={value}", "gatewayWrites": "Gateway 寫入={value}", - "noWriteOnly": "no-write only={value}", + "noWriteOnly": "無寫入 only={value}", "liveApply": "live apply={value}", "rollbackRequired": "需要 rollback owner={value}", "rollbackConfirmed": "rollback 已確認={value}" @@ -6732,11 +6732,11 @@ "rollbackRequired": "rollback owner required={value}" }, "labels": { - "ownerAccepted": "owner accepted={value}", + "ownerAccepted": "負責人已接受={value}", "windowApproved": "window approved={value}", "gatewayWrites": "Gateway 寫入={value}", "acceptanceRequired": "acceptance required={value}", - "ownerAcceptedBool": "owner accepted={value}", + "ownerAcceptedBool": "負責人已接受={value}", "windowApprovedBool": "window approved={value}", "rollbackRequired": "需要 rollback owner={value}", "rollbackConfirmed": "rollback 已確認={value}" @@ -6814,7 +6814,7 @@ "truthTitle": "post-release verifier 真相", "metrics": { "overall": "完成度", - "verifiers": "Verifier gates", + "verifiers": "驗證關卡", "rollbackGates": "Rollback gates", "verificationHolds": "Verification holds", "liveApplyGates": "Live-apply post gates", @@ -7270,7 +7270,7 @@ "approvals": "需批准", "highCritical": "高風險 / critical", "liveWrites": "live / send / write", - "noSendPreviews": "no-send 預覽", + "noSendPreviews": "無發送 預覽", "dedupKeys": "dedup key", "receipts": "receipt expectation", "previewLiveWrites": "preview 實發", @@ -7289,12 +7289,12 @@ "ownerFields": "Owner 必填欄位", "ownerAcceptance": "Owner 驗收檢查" }, - "previewTitle": "Telegram no-send 訊息預覽", + "previewTitle": "Telegram 無發送 訊息預覽", "canaryTitle": "Canary 批准包", "canarySendPacketTitle": "P2-405C Canary 發送批准包", "labels": { "gateway": "Gateway required={value}", - "noSend": "no-send preview={value}", + "noSend": "無發送 preview={value}", "queuePreview": "queue preview={value}", "directBot": "direct Bot API={value}", "send": "Telegram send={value}", @@ -7340,8 +7340,8 @@ "liveReadback": "live readback={value}", "stopCondition": "停止={value}", "nextGate": "下一關={value}", - "ownerReviewReceived": "owner review received={value}", - "ownerReviewAccepted": "owner review accepted={value}", + "ownerReviewReceived": "負責人審查已收件={value}", + "ownerReviewAccepted": "負責人審查已接受={value}", "liveDeliveryApproved": "live canary approved={value}", "priorReadback": "前次 readback 完成={done} / 失敗={failed}", "receiptOwner": "receipt owner={value}", @@ -7522,13 +7522,13 @@ }, "labels": { "targetGate": "目標 gate:{value}", - "resultWrites": "result write={value}", - "learningWrites": "learning write={value}", + "resultWrites": "結果寫入={value}", + "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", "writer": "writer:{value}", - "runtimeWriteEnabled": "runtime write={value}", + "runtimeWriteEnabled": "runtime 寫入={value}", "blockedAction": "blocked:{value}", - "runtimeWriteAllowed": "runtime write={value}" + "runtimeWriteAllowed": "runtime 寫入={value}" } } } @@ -8092,7 +8092,7 @@ "reportSourceGapOwnerReview": { "eyebrow": "報表資料源 owner review", "title": "報表資料源 PlayBook / Verifier 處置板", - "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 no-send 與 owner review。", + "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review。", "loading": "正在讀取 report-source-gap owner review read model。", "unavailable": "報表資料源 read model 尚未回應;不能把報表全 0 或缺資料判定為健康。", "empty": "目前沒有 report-source-gap owner review 卡。", @@ -8101,7 +8101,7 @@ "openReports": "回報表總控", "ownerRequired": "需 owner review", "ownerOptional": "owner review 可後補", - "scheduleBoundary": "排程仍維持 no-send preview", + "scheduleBoundary": "排程仍維持 無發送 preview", "fieldsTitle": "PlayBook 必填欄位", "checksTitle": "Verifier 檢查", "nextAction": "下一步:{action}", @@ -8123,7 +8123,7 @@ "draft_required": "需草案", "plan_required": "需計畫", "readback_only": "只讀回讀", - "no_send_preview": "no-send preview", + "no_send_preview": "無發送 preview", "ok": "正常", "gap": "缺口", "blocked": "阻塞", @@ -8216,7 +8216,7 @@ "autoRepair": "必須同時有 auto_repair、verification_result=success與KM 回寫", "recurrenceWorkItems": "Run 完成無修復、修復失敗與人工閘門必須進入可追蹤工作項", "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook候選與是否可自動修復", - "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 no-send 與 owner review;不得把全 0 當健康或自動執行授權", + "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review;不得把全 0 當健康或自動執行授權", "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", "remediationQueue": "每筆 degraded / failed / timeout都必須映射到重跑、重驗、Ticket或人工檢查", "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL或舊快照", diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index ae33209c..e9557e65 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -4,6 +4,7 @@ **完成內容**: - `apps/web/messages/zh-TW.json` 補齊 P2-407~P2-411 主卡 badge、metric、section、label、risk tier 與 status 的繁中顯示。 +- `apps/web/messages/en.json` 已用最新 `zh-TW` 內容同步,維持目前站台鏡像也全繁中的規則。 - 限縮更新 `docs/evaluations/*.json` 內會出現在治理頁的固定短語:無寫入、無發送、正式動作總數、正式寫入總數、驗證關卡、負責人已接受、產生於、脫敏、runtime / queue / audit / result / learning 寫入狀態。 - 未新增 runtime worker、未發 Telegram、未呼叫 Bot API、未寫 DB、未寫 KM、未派工、未改主機或 K8s。 @@ -11,7 +12,10 @@ - 全部 `apps/web/messages/zh-TW.json` 與 `docs/evaluations/*.json` JSON parse 通過。 - P2-407~P2-411 regression:`53 passed`。 - `pnpm --filter @awoooi/web typecheck` 通過。 +- `WEB_MESSAGES_MIRROR_OK`。 +- `SECURITY_MIRROR_PROGRESS_GUARD_OK`。 - `DOC_SECRET_SANITY_OK scanned_files=180`。 +- `DOC_SECRET_SANITY_OK scanned_files=934`。 - 目標殘留字串檢查通過:`批准!`、`My request for Codex`、`Owner Acceptance`、`owner accepted`、`live total`、`Verifier gates`、`No-write`、`No-send`、`runtime write=false` 等皆未命中。 - `git diff --check` 通過。