From 471b16ac1757ff2013c4c3f77a74d86b51fccd53 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 15 Jun 2026 08:13:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(awooop):=20=E6=B8=85=E7=90=86=20tenants=20?= =?UTF-8?q?=E5=89=8D=E5=8F=B0=E5=85=A7=E9=83=A8=E8=AD=98=E5=88=A5=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 | 8 +++++--- apps/web/messages/zh-TW.json | 8 +++++--- apps/web/src/app/[locale]/awooop/tenants/page.tsx | 10 +++++++--- scripts/security/security-mirror-progress-guard.py | 11 +++++++++++ 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 10b4d3b9..59a97dd5 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -8596,6 +8596,7 @@ "eyebrow": "全域納管", "title": "全域產品資產台帳", "subtitle": "把租戶資料表、正式網站入口、前後台產品、平台工具、設計系統、AI 工具與原始碼管控候選合併到同一個只讀視圖;前台只顯示脫敏範圍代號,不揭露原始負責人或命名空間,且這不是建立專案庫、改路由、部署、掃描或執行期授權。", + "badge": "只讀資產台帳", "loading": "讀取資產盤", "itemsUnit": "項", "productsTitle": "產品 / 專案納管", @@ -8614,11 +8615,11 @@ }, "repos": { "label": "候選專案庫", - "detail": "來源於 source-control primary readiness,只顯示脫敏範圍與阻塞原因。" + "detail": "來源於版本來源就緒度台帳,只顯示脫敏範圍與待補證據數。" }, "tenants": { "label": "租戶資料", - "detail": "保留 AwoooP tenant table,避免把產品範圍誤當租戶政策。" + "detail": "保留 AwoooP 租戶資料表,避免把產品範圍誤當租戶政策。" }, "ownerAccepted": { "label": "已接受回覆", @@ -8634,7 +8635,8 @@ "repos": "來源", "gates": "閘門", "redactedScope": "已脫敏範圍", - "blockers": "阻塞項 {count}" + "blockers": "待補證據 {count}", + "routeShape": "上游 {upstream};後台 {admin};即時通道 {websocket}" }, "columns": { "domain": "網站 / 服務入口", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 10b4d3b9..59a97dd5 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -8596,6 +8596,7 @@ "eyebrow": "全域納管", "title": "全域產品資產台帳", "subtitle": "把租戶資料表、正式網站入口、前後台產品、平台工具、設計系統、AI 工具與原始碼管控候選合併到同一個只讀視圖;前台只顯示脫敏範圍代號,不揭露原始負責人或命名空間,且這不是建立專案庫、改路由、部署、掃描或執行期授權。", + "badge": "只讀資產台帳", "loading": "讀取資產盤", "itemsUnit": "項", "productsTitle": "產品 / 專案納管", @@ -8614,11 +8615,11 @@ }, "repos": { "label": "候選專案庫", - "detail": "來源於 source-control primary readiness,只顯示脫敏範圍與阻塞原因。" + "detail": "來源於版本來源就緒度台帳,只顯示脫敏範圍與待補證據數。" }, "tenants": { "label": "租戶資料", - "detail": "保留 AwoooP tenant table,避免把產品範圍誤當租戶政策。" + "detail": "保留 AwoooP 租戶資料表,避免把產品範圍誤當租戶政策。" }, "ownerAccepted": { "label": "已接受回覆", @@ -8634,7 +8635,8 @@ "repos": "來源", "gates": "閘門", "redactedScope": "已脫敏範圍", - "blockers": "阻塞項 {count}" + "blockers": "待補證據 {count}", + "routeShape": "上游 {upstream};後台 {admin};即時通道 {websocket}" }, "columns": { "domain": "網站 / 服務入口", diff --git a/apps/web/src/app/[locale]/awooop/tenants/page.tsx b/apps/web/src/app/[locale]/awooop/tenants/page.tsx index 9e060cca..bfe2968f 100644 --- a/apps/web/src/app/[locale]/awooop/tenants/page.tsx +++ b/apps/web/src/app/[locale]/awooop/tenants/page.tsx @@ -975,7 +975,7 @@ function GlobalAssetCoveragePanel({ inventory }: { inventory: TenantAssetInvento - {inventory?.schema_version ?? t("loading")} + {inventory ? t("badge") : t("loading")} @@ -1095,8 +1095,12 @@ function GlobalAssetCoveragePanel({ inventory }: { inventory: TenantAssetInvento - - upstream={route.upstream_count}; admin={route.admin_route_count}; ws={route.websocket_route_count} + + {t("labels.routeShape", { + upstream: route.upstream_count, + admin: route.admin_route_count, + websocket: route.websocket_route_count, + })} ))} diff --git a/scripts/security/security-mirror-progress-guard.py b/scripts/security/security-mirror-progress-guard.py index 2652064a..04aecafa 100755 --- a/scripts/security/security-mirror-progress-guard.py +++ b/scripts/security/security-mirror-progress-guard.py @@ -304,6 +304,10 @@ def validate(root: Path) -> None: "github_target_owner_decision_response_v1", "source_control_ref_truth_owner_response_v1", "source_control_workflow_secret_name_owner_response_v1", + "awooop_tenant_asset_inventory_v1", + "source-control primary readiness", + "AwoooP tenant table", + "阻塞項 {count}", "批准!", "工作視窗", "My request for Codex", @@ -357,6 +361,13 @@ def validate(root: Path) -> None: "My request for Codex", ]: assert_text_not_contains("frontend.public_sensitive_source_text", public_frontend_source_text, forbidden) + for forbidden in [ + 'inventory?.schema_version ?? t("loading")', + "upstream={route.upstream_count}", + "admin={route.admin_route_count}", + "ws={route.websocket_route_count}", + ]: + assert_text_not_contains("frontend.tenants_visible_internal_implementation_text", awooop_tenants_page, forbidden) for label, text in [ ("awooop_home_page", awooop_home_page),