diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index d56a1765..93e3b0cc 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -7360,7 +7360,8 @@ "states": { "embeddedBridge": "嵌入橋接可見", "directBridge": "直接橋接可見", - "awooopCandidate": "AwoooP 只讀候選" + "awooopCandidate": "AwoooP 只讀候選", + "reviewHandoffCandidate": "審查後修正候選" }, "items": { "securityCompliance": { @@ -7410,8 +7411,8 @@ }, "codeReview": { "title": "AI 程式碼審查控制面", - "body": "程式碼審查頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", - "boundary": "程式碼審查 不是部署批准,也不新增 Gitea/GitHub action。" + "body": "程式碼審查頁已顯示審查後修正候選,將前端體驗、測試補洞、文件同步與低風險重構整理成只讀追蹤。", + "boundary": "修正候選不是自動修改程式、正式部署或主機操作批准;高風險路徑仍需人工決策紀錄。" } } }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index d56a1765..93e3b0cc 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -7360,7 +7360,8 @@ "states": { "embeddedBridge": "嵌入橋接可見", "directBridge": "直接橋接可見", - "awooopCandidate": "AwoooP 只讀候選" + "awooopCandidate": "AwoooP 只讀候選", + "reviewHandoffCandidate": "審查後修正候選" }, "items": { "securityCompliance": { @@ -7410,8 +7411,8 @@ }, "codeReview": { "title": "AI 程式碼審查控制面", - "body": "程式碼審查頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", - "boundary": "程式碼審查 不是部署批准,也不新增 Gitea/GitHub action。" + "body": "程式碼審查頁已顯示審查後修正候選,將前端體驗、測試補洞、文件同步與低風險重構整理成只讀追蹤。", + "boundary": "修正候選不是自動修改程式、正式部署或主機操作批准;高風險路徑仍需人工決策紀錄。" } } }, diff --git a/apps/web/src/app/[locale]/iwooos/page.tsx b/apps/web/src/app/[locale]/iwooos/page.tsx index 76fe35c5..3d317c3e 100644 --- a/apps/web/src/app/[locale]/iwooos/page.tsx +++ b/apps/web/src/app/[locale]/iwooos/page.tsx @@ -522,7 +522,7 @@ type SecuritySurface = { type SurfaceConnectionStatus = { key: string href: string - state: 'embeddedBridge' | 'directBridge' | 'awooopCandidate' + state: 'embeddedBridge' | 'directBridge' | 'awooopCandidate' | 'reviewHandoffCandidate' icon: typeof ShieldCheck tone: 'steady' | 'warn' | 'locked' } @@ -3417,7 +3417,7 @@ const surfaceConnectionStatuses: SurfaceConnectionStatus[] = [ { key: 'governance', href: '/governance', state: 'directBridge', icon: ShieldCheck, tone: 'locked' }, { key: 'alertOperationLogs', href: '/alert-operation-logs', state: 'directBridge', icon: ListChecks, tone: 'steady' }, { key: 'awooopApprovals', href: '/awooop/approvals', state: 'awooopCandidate', icon: ClipboardCheck, tone: 'locked' }, - { key: 'codeReview', href: '/code-review', state: 'directBridge', icon: SearchCheck, tone: 'warn' }, + { key: 'codeReview', href: '/code-review', state: 'reviewHandoffCandidate', icon: SearchCheck, tone: 'warn' }, ] const awooopCoverageStatuses: AwoooPCoverageStatus[] = [ @@ -14106,6 +14106,7 @@ function SurfaceConnectionCard({ item, locale }: { item: SurfaceConnectionStatus const Icon = item.icon return ( None: "direct_bridge_visible", "direct_bridge_visible", "awooop_candidate_visible", - "direct_bridge_visible", + "review_handoff_candidate_visible", ] assert_equal( "iwooos_projection.frontend_surface_reverse_bridge_statuses.states", @@ -8320,6 +8320,8 @@ def validate(root: Path) -> None: assert_text_contains("iwooos_page.surface_connection_embedded", iwooos_projection_page, "embeddedBridge") assert_text_contains("iwooos_page.surface_connection_direct", iwooos_projection_page, "directBridge") assert_text_contains("iwooos_page.surface_connection_awooop", iwooos_projection_page, "awooopCandidate") + assert_text_contains("iwooos_page.code_review_handoff_surface_testid", iwooos_projection_page, "iwooos-code-review-handoff-surface-card") + assert_text_contains("iwooos_page.code_review_handoff_surface_state", iwooos_projection_page, "reviewHandoffCandidate") assert_text_contains("iwooos_page.source_control_readiness_board", iwooos_projection_page, "sourceControlReadinessItems") assert_text_contains( "iwooos_page.source_control_readiness_testid", @@ -16601,7 +16603,7 @@ def validate(root: Path) -> None: list(web_messages_en["iwooos"]["surfaceConnections"].keys()), key, ) - for key in ["embeddedBridge", "directBridge", "awooopCandidate"]: + for key in ["embeddedBridge", "directBridge", "awooopCandidate", "reviewHandoffCandidate"]: assert_contains( "web_messages.zh-TW.iwooos.surfaceConnections.states", list(web_messages_zh["iwooos"]["surfaceConnections"]["states"].keys()),