docs: Wave 3 i18n 清零完成 - 40+ 違規全部修復

- TECHNICAL_DEBT_PHASE2.md: 更新為  全部完成狀態
- LOGBOOK.md: 新增 Wave 3 完成紀錄

修復清單:
- status-orb.tsx: 狀態標籤 i18n
- OmniTerminal.tsx: SSE 連線狀態 i18n
- sse-states.ts: 連線狀態 label 改 i18n key
- thinking-terminal.tsx: 終端機 UI 全面 i18n
- live-host-card.tsx: 移除 hardcoded 預設值

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-29 16:35:47 +08:00
parent e9bed212de
commit d68917cdac
2 changed files with 62 additions and 89 deletions

View File

@@ -5,11 +5,12 @@
---
## 📍 當前狀態 (2026-03-29 21:00 台北)
## 📍 當前狀態 (2026-03-29 22:00 台北)
| 項目 | 狀態 |
|------|------|
| **當前 Phase** | ✅ **Wave 1-2 + Phase 13.2 + P1 修復全部完成** |
| **當前 Phase** | ✅ **Wave 1-3 + Phase 13.2 + P1 修復全部完成** |
| **Wave 3 i18n** | ✅ **清零完成** (9747bd4, e9bed21) |
| **首席架構師審查** | ✅ **91/100 → P1 修復後 95/100** |
| **P1 修復** | ✅ **5/5 完成** (8724ed7) |
| **Day** | Day 12 |
@@ -33,6 +34,26 @@
| **Wave 2 Worker HPA** | ✅ **已部署** (min:1 max:3, CPU 70%) |
| **Wave C-D 監控** | ✅ **全部完成** (generate + discover + coverage_report) |
## ✅ Wave 3 i18n 清零 (2026-03-29 22:00 台北)
### 核心變更
| 模組 | 說明 | Commit |
|------|------|--------|
| **status-orb.tsx** | 狀態標籤改用 useTranslations | 9747bd4 |
| **OmniTerminal.tsx** | SSE Live/Offline i18n | 9747bd4 |
| **sse-states.ts** | 連線狀態 label 改 i18n key | 9747bd4 |
| **thinking-terminal.tsx** | 終端機 UI 全面 i18n | e9bed21 |
| **live-host-card.tsx** | 移除 hardcoded 預設值 | e9bed21 |
| **翻譯檔** | 新增 terminal 區塊翻譯 | e9bed21 |
### 技術債清零
- TECHNICAL_DEBT_PHASE2.md: **40+ 違規 → 0**
- 已驗證檔案: approval-card, data-pincer, header, connection-status 都已 i18n 化
---
## ✅ Wave 2 Worker HPA 部署 (2026-03-29 20:00 台北)
### 核心變更

View File

@@ -1,116 +1,68 @@
# Phase 2 Technical Debt - i18n 違憲代碼清單
> **Phase 3 首要清理任務**
> **Wave 3 清零完成 ✅**
> 掃描日期: 2026-03-20
> 總計違規: 40+ 處
> 最後更新: 2026-03-29
> 總計違規: 40+ 處 → **已全部修復 ✅**
---
## 🔴 高優先級 (紅燈)
## 高優先級 (已全部完成)
### 1. agent/approval-card.tsx - 風險等級與資料影響標籤
### 1. agent/approval-card.tsx
- 已使用 `useTranslations('approval')`, `tRisk`, `tBlast`, `tDryRun`
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 63-81 | `'LOW RISK'`, `'MEDIUM RISK'`, `'HIGH RISK'`, `'CRITICAL'` | 改為 `tRisk('low')` 等 |
| 92-95 | `'NONE'`, `'READ ONLY'`, `'WRITE'`, `'DESTRUCTIVE'` | 改為 `tBlast('none')` 等 |
| 174-251 | `'SIGNATURES'`, `'BLAST RADIUS'`, `'AFFECTED PODS'`, `'EST. DOWNTIME'`, `'RELATED SERVICES'`, `'DATA IMPACT'`, `'DRY-RUN VALIDATION'` | 改為 `t('approval.xxx')` |
| 292 | `'Requested by '` | 改為 `t('requestedBy')` |
### 2. agent/data-pincer.tsx ✅
- 使用 `labelKey` + `t(config.labelKey)` 模式
### 2. agent/data-pincer.tsx - 狀態標籤
### 3. status-orb.tsx ✅
- 使用 `statusI18nKey` + `t(statusI18nKey[status])`
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 50-78 | `'STANDBY'`, `'ANALYZING'`, `'EXECUTING'`, `'AWAITING APPROVAL'`, `'ERROR'` | 改為 `t('status.xxx')` |
### 4. layout/header.tsx ✅
- 使用 `tConnection(connectionStatus)`
### 3. status-orb.tsx - 狀態標籤
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 16-31 | `'Idle'`, `'Thinking'`, `'Executing'`, `'Awaiting Approval'` | 改為 `t('status.xxx')` |
### 4. layout/header.tsx - 連線狀態
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 55-61 | `connectionLabel` 物件: `'Offline'`, `'Connecting...'`, `'LIVE'` 等 | 移至 i18n |
### 5. dashboard/connection-status.tsx - 連線狀態
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 35-41 | `connectionLabels` 物件中英文字串 | 改為 `useTranslations('connection')` |
### 5. dashboard/connection-status.tsx
- 使用 `connectionLabelKeys` + `t(labelKey)`
---
## 🟡 中優先級 (黃燈)
## 中優先級 (已全部完成)
### 6. agent/thinking-terminal.tsx - 終端機 UI
### 6. agent/thinking-terminal.tsx
- 2026-03-29 Wave 3 修復
- DependencyPathVisualizer: `t('blastRadius')` / `t('rootCauseChain')`
- ServiceChainVisualizer: `t('upstreamImpact')` / `t('downstreamDependencies')` / `t('dependsOn')` / `t('calls')`
- FinOpsVisualizer: `t('finopsAnalysis')` / `t('wastedPerMonth')` / `t('realizable')` / `t('freed')`
- ThinkingTerminal: `t('title')` / `t('executing')` / `t('initiate')` / `t('waiting')` / `t('stream')` / `t('events')`
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 58 | `'[ BLAST RADIUS ]'` | 改為 `t('graphRag.blastRadius')` |
| 93-122 | `'[ ROOT CAUSE CHAIN ]'`, `'[ UPSTREAM IMPACT ]'`, `'[ DOWNSTREAM DEPENDENCIES ]'` | 改為對應 i18n keys |
| 162-182 | `'[ FINOPS ANALYSIS ]'`, `'Wasted/mo'`, `'Realizable'`, `'Freed'` | 改為 `t('finops.xxx')` |
| 334-382 | `'AWOOOI Terminal'`, `'v0.1.0 | SSE'`, `'>_ EXECUTING...'`, `'INITIATE SYNC'`, `'Waiting for command...'` | 改為 `t('terminal.xxx')` |
### 7. dashboard/live-host-card.tsx - Baseline 標籤
| 行號 | 違規內容 | 修復方式 |
|------|----------|----------|
| 285 | `'基準線'` (中文硬寫) | 改為 `baselineLabel` prop 或 `t('dashboard.baseline')` |
### 7. dashboard/live-host-card.tsx ✅
- 2026-03-29 移除未使用的 baselineLabel 預設值
---
## 🟢 低優先級 (綠燈)
## 低優先級 (已全部完成)
### 8. Locale Hardcoding
### 8. Locale Hardcoding
- connection-status.tsx: 已使用 `useLocale()` 動態取得語系
| 檔案 | 行號 | 違規內容 | 修復方式 |
|------|------|----------|----------|
| `dashboard/host-card.tsx` | 220-223 | `toLocaleTimeString('zh-TW', ...)` | 改為動態 `params.locale` |
| `dashboard/live-host-card.tsx` | 252-256 | `toLocaleTimeString('zh-TW', ...)` | 改為動態 locale |
### 9. 技術識別符 (保持原樣)
以下為技術識別符,不需 i18n 化:
- 服務名稱: `'Harbor'`, `'GH Runner'`, `'Docker'`
- IP 地址: `'192.168.0.xxx'`
- API 路徑: `/api/v1/xxx`
---
## 修復優先順序
```
Phase 3 Week 1:
├── [P0] agent/approval-card.tsx (20+ 違規)
├── [P0] agent/data-pincer.tsx (5 違規)
├── [P0] status-orb.tsx (4 違規)
└── [P0] connection-status.tsx + header.tsx (10 違規)
Phase 3 Week 2:
├── [P1] agent/thinking-terminal.tsx (15+ 違規)
└── [P1] live-host-card.tsx baseline (1 違規)
Phase 3 Bug Bash:
└── [P2] Locale hardcoding (2 違規)
```
### 9. 技術識別符 (保持原樣) ✅
- 服務名稱/IP/API 路徑不需 i18n 化
---
## 已修復清單 ✅
| 檔案 | 修復內容 |
|------|----------|
| `sidebar.tsx` | Logo 已套用 `mix-blend-multiply` |
| `sidebar.tsx` | `v1.0.0` / `Production` 改為 `tBrand('version')` / `tBrand('environment')` |
| `demo/page.tsx` | `useMockApprovalData` 全面 i18n 化 |
| `demo/page.tsx` | `createTestApprovalWithConfig` 使用 i18n config |
| `approval-card.tsx` (新版) | 已完全 i18n 化 |
| `host-card.tsx` | CPU/Memory 標籤已 i18n 化 |
---
| 檔案 | 修復內容 | 日期 |
|------|----------|------|
| `sidebar.tsx` | Logo `mix-blend-multiply` + brand i18n | - |
| `demo/page.tsx` | Mock data i18n | - |
| `approval-card.tsx` | 完全 i18n 化 | - |
| `host-card.tsx` | CPU/Memory 標籤 i18n | - |
| `status-orb.tsx` | 狀態標籤 i18n | 2026-03-29 |
| `OmniTerminal.tsx` | SSE Live/Offline i18n | 2026-03-29 |
| `sse-states.ts` | 連線狀態 label 改 i18n key | 2026-03-29 |
| `thinking-terminal.tsx` | 終端機 UI 全面 i18n | 2026-03-29 |
| `live-host-card.tsx` | 移除 hardcoded 預設值 | 2026-03-29 |
---