fix(awooop): reduce approvals text density
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 3m34s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-03 15:18:51 +08:00
parent 5963687e62
commit 7c511f1cfa
3 changed files with 71 additions and 88 deletions

View File

@@ -10906,7 +10906,6 @@
"mcpCount": "MCP 調查 {count} 次",
"route": "MCP{route}",
"emptyShort": "尚未連到 AI 證據",
"manualGate": "下一步AI 受控決策",
"filters": {
"label": "AI 證據篩選",
"all": "所有 AI 證據",
@@ -10950,7 +10949,8 @@
"noEvidenceDetail": "列表尚未連到 ADR-100 乾跑或MCP evidence",
"approvalReadOnlyDetail": "審批前已有只讀補救證據可回看",
"approvalNoEvidenceDetail": "審批前仍缺 AI 證據,需進 執行時間線 檢查"
}
},
"controlledGate": "下一步AI 受控決策"
},
"sourceDossierCoverage": {
"title": "來源事件覆蓋率",
@@ -12680,9 +12680,9 @@
}
},
"badges": {
"humanGate": "AI 受控隊列",
"gate5Projection": "Gate 5 投影",
"executorHandoffPending": "等待 executor handoff"
"executorHandoffPending": "等待 executor handoff",
"controlledGate": "AI 受控隊列"
},
"assetLedger": {
"column": "資產沉澱",
@@ -12848,25 +12848,25 @@
}
},
"githubPrimaryReadinessGate": {
"title": "GitHub 主要來源就緒度審批邊界",
"subtitle": "審批佇列只顯示 GitHub 主要來源前置負責人回覆缺口;這不是 GitHub 主要來源批准,也不會建立專案庫、改分支 / 標籤參照、收機密明文值或停用 Gitea。",
"badge": "只讀審批邊界",
"responseLanesTitle": "負責人回覆路線",
"boundaryLabel": "GitHub 主要來源邊界",
"boundaryTitle": "目前沒有可批准的主要來源切換",
"boundaryDetail": "這個面板只把 S4.9-S4.12收件順序放到審批視野;所有回覆仍為已收到=0 / 已接受=0不建立審批紀錄、不切 GitHub 主要來源、不改 Gitea 主要來源,也不觸發執行期閘門。",
"title": "Source Control Freeze 審批邊界",
"subtitle": "審批佇列只保留歷史 source-control freeze 與 Gitea SSH truth 證據GitHub 維持 stopped / do_not_use不作為 active 審批目標。",
"badge": "歷史證據邊界",
"responseLanesTitle": "Freeze / Gitea 證據路線",
"boundaryLabel": "Source-control 邊界",
"boundaryTitle": "目前沒有可批准的 GitHub 恢復動作",
"boundaryDetail": "這個面板只把 S4.9-S4.12 的歷史收件順序放到審批視野;不建立審批紀錄、不切 GitHub primary、不改 Gitea 主要來源,也不觸發執行期閘門。",
"openIwooos": "開啟 IwoooS",
"metrics": {
"giteaOwner": "Gitea 負責人",
"giteaOwnerDetail": "S4.9的 5 個負責人證明項目仍未收到 / 接受。",
"githubTargetOwner": "GitHub 目標負責人",
"githubTargetOwnerDetail": "S4.10的 9 個目標負責人 / 可見性 / 標準回覆仍未接受。",
"githubTargetOwner": "Freeze target evidence",
"githubTargetOwnerDetail": "S4.10 只保留為 GitHub freeze / do_not_use 背景證據,不建立專案庫或變更可見性。",
"refsTruth": "分支 / 標籤真相",
"refsTruthDetail": "S4.11的 5 類分支 / 標籤真相負責人回覆仍未接受。",
"workflowSecretNames": "工作流程 / 機密名稱",
"workflowSecretNamesDetail": "S4.12的 5 類工作流程 / 機密名稱負責人回覆仍未接受。",
"primaryReady": "主要來源就緒數",
"primaryReadyDetail": "仍為 0審批可見不等於可切主要來源。"
"primaryReady": "GitHub active target",
"primaryReadyDetail": "仍為 0審批可見不等於可切主要來源或恢復 GitHub mirror。"
},
"responseLanes": {
"giteaOwnerAttestation": {
@@ -12874,12 +12874,12 @@
"detail": "先確認公開來源限定 / 本地差異、組織 / 使用者端點、gateway-adjacent來源、標準負責人與舊版處置。"
},
"githubTargetOwner": {
"title": "GitHub 目標負責人決策",
"detail": "再確認 9 個範圍內目標的負責人、可見性與標準目標,不自動建立專案庫。"
"title": "停用 GitHub 目標證據",
"detail": "保留目標、可見性與標準回覆作為 freeze ledger,不自動建立專案庫。"
},
"refsTruthOwner": {
"title": "分支 / 標籤真相負責人回覆",
"detail": "接著確認主要 / 開發分支真相、棄用漂移發布標籤與僅存在於 GitHub的參照,不同步、刪除或強制推送。"
"detail": "確認主要 / 開發分支真相、棄用漂移發布標籤Gitea/Gitea-SSH 是目前 source-control truth,不同步、刪除或強制推送。"
},
"workflowSecretOwner": {
"title": "工作流程 / 機密名稱負責人回覆",
@@ -12888,13 +12888,13 @@
}
},
"ownerResponseValidationBoundary": {
"title": "負責人回覆驗收只讀審查邊界",
"subtitle": "審批佇列同步顯示 S4.13 驗收彙整與S4.9-S4.12 四個來源收件包;這不是已收到、已接受、審批紀錄、專案庫動作、分支 / 標籤參照動作、工作流程 / 機密設定動作或執行期授權。",
"title": "Controlled Apply 證據驗收邊界",
"subtitle": "審批佇列同步顯示 S4.13 與 S4.9-S4.12 歷史 evidence ledger低 / 中 / 高風險不因 owner 欄位 0/false 停止,改由 AI 補 selector、dry-run、rollback、verifier 與 writeback 後受控推進。",
"badge": "只讀驗收邊界",
"reviewRefsTitle": "驗收與來源收件參照",
"boundaryLabel": "不可批准邊界",
"boundaryTitle": "目前沒有可建立的審批紀錄",
"boundaryDetail": "這個面板只顯示四包、24 個回覆範本、已收到 / 已接受 / 已拒收都仍為 0以及 8 個可顯示區塊;不建立審批紀錄、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。",
"boundaryLabel": "Controlled apply 邊界",
"boundaryTitle": "Owner 欄位只作 evidence不當終局阻擋",
"boundaryDetail": "這個面板只顯示四包、範本、已收到 / 已接受 / 已拒收都仍為 0以及可顯示區塊critical / break-glass 以外,不得把 0/false 當成停止實作理由。",
"openIwooos": "開啟 IwoooS",
"metrics": {
"packets": "回覆包",
@@ -12904,7 +12904,7 @@
"received": "已收到",
"receivedDetail": "目前仍為 0審批佇列可見不得改寫收件狀態。",
"accepted": "已接受",
"acceptedDetail": "目前仍為 0只有脫敏證據通過驗收後才能改變。",
"acceptedDetail": "目前仍為 0對低 / 中 / 高風險,這只觸發 AI 補 verifier / rollback不阻擋 controlled apply。",
"rejected": "已拒收",
"rejectedDetail": "目前仍為 0未進入受控驗收前不得產生拒收結果。",
"displaySections": "顯示區塊",
@@ -12922,9 +12922,9 @@
"contract": "Gitea 清冊負責人證明"
},
"githubTarget": {
"title": "S4.10 GitHub 目標負責人決策",
"detail": "9 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫。",
"contract": "GitHub 目標負責人決策"
"title": "S4.10 停用 GitHub 目標證據",
"detail": "目標負責人 / 可見性 / 標準回覆只作 freeze ledger,不得自動建立專案庫。",
"contract": "停用 GitHub 目標證據"
},
"refsTruth": {
"title": "S4.11 分支 / 標籤真相負責人回覆",

View File

@@ -10906,7 +10906,6 @@
"mcpCount": "MCP 調查 {count} 次",
"route": "MCP{route}",
"emptyShort": "尚未連到 AI 證據",
"manualGate": "下一步AI 受控決策",
"filters": {
"label": "AI 證據篩選",
"all": "所有 AI 證據",
@@ -10950,7 +10949,8 @@
"noEvidenceDetail": "列表尚未連到 ADR-100 乾跑或MCP evidence",
"approvalReadOnlyDetail": "審批前已有只讀補救證據可回看",
"approvalNoEvidenceDetail": "審批前仍缺 AI 證據,需進 執行時間線 檢查"
}
},
"controlledGate": "下一步AI 受控決策"
},
"sourceDossierCoverage": {
"title": "來源事件覆蓋率",
@@ -12680,9 +12680,9 @@
}
},
"badges": {
"humanGate": "AI 受控隊列",
"gate5Projection": "Gate 5 投影",
"executorHandoffPending": "等待 executor handoff"
"executorHandoffPending": "等待 executor handoff",
"controlledGate": "AI 受控隊列"
},
"assetLedger": {
"column": "資產沉澱",
@@ -12848,25 +12848,25 @@
}
},
"githubPrimaryReadinessGate": {
"title": "GitHub 主要來源就緒度審批邊界",
"subtitle": "審批佇列只顯示 GitHub 主要來源前置負責人回覆缺口;這不是 GitHub 主要來源批准,也不會建立專案庫、改分支 / 標籤參照、收機密明文值或停用 Gitea。",
"badge": "只讀審批邊界",
"responseLanesTitle": "負責人回覆路線",
"boundaryLabel": "GitHub 主要來源邊界",
"boundaryTitle": "目前沒有可批准的主要來源切換",
"boundaryDetail": "這個面板只把 S4.9-S4.12收件順序放到審批視野;所有回覆仍為已收到=0 / 已接受=0不建立審批紀錄、不切 GitHub 主要來源、不改 Gitea 主要來源,也不觸發執行期閘門。",
"title": "Source Control Freeze 審批邊界",
"subtitle": "審批佇列只保留歷史 source-control freeze 與 Gitea SSH truth 證據GitHub 維持 stopped / do_not_use不作為 active 審批目標。",
"badge": "歷史證據邊界",
"responseLanesTitle": "Freeze / Gitea 證據路線",
"boundaryLabel": "Source-control 邊界",
"boundaryTitle": "目前沒有可批准的 GitHub 恢復動作",
"boundaryDetail": "這個面板只把 S4.9-S4.12 的歷史收件順序放到審批視野;不建立審批紀錄、不切 GitHub primary、不改 Gitea 主要來源,也不觸發執行期閘門。",
"openIwooos": "開啟 IwoooS",
"metrics": {
"giteaOwner": "Gitea 負責人",
"giteaOwnerDetail": "S4.9的 5 個負責人證明項目仍未收到 / 接受。",
"githubTargetOwner": "GitHub 目標負責人",
"githubTargetOwnerDetail": "S4.10的 9 個目標負責人 / 可見性 / 標準回覆仍未接受。",
"githubTargetOwner": "Freeze target evidence",
"githubTargetOwnerDetail": "S4.10 只保留為 GitHub freeze / do_not_use 背景證據,不建立專案庫或變更可見性。",
"refsTruth": "分支 / 標籤真相",
"refsTruthDetail": "S4.11的 5 類分支 / 標籤真相負責人回覆仍未接受。",
"workflowSecretNames": "工作流程 / 機密名稱",
"workflowSecretNamesDetail": "S4.12的 5 類工作流程 / 機密名稱負責人回覆仍未接受。",
"primaryReady": "主要來源就緒數",
"primaryReadyDetail": "仍為 0審批可見不等於可切主要來源。"
"primaryReady": "GitHub active target",
"primaryReadyDetail": "仍為 0審批可見不等於可切主要來源或恢復 GitHub mirror。"
},
"responseLanes": {
"giteaOwnerAttestation": {
@@ -12874,12 +12874,12 @@
"detail": "先確認公開來源限定 / 本地差異、組織 / 使用者端點、gateway-adjacent來源、標準負責人與舊版處置。"
},
"githubTargetOwner": {
"title": "GitHub 目標負責人決策",
"detail": "再確認 9 個範圍內目標的負責人、可見性與標準目標,不自動建立專案庫。"
"title": "停用 GitHub 目標證據",
"detail": "保留目標、可見性與標準回覆作為 freeze ledger,不自動建立專案庫。"
},
"refsTruthOwner": {
"title": "分支 / 標籤真相負責人回覆",
"detail": "接著確認主要 / 開發分支真相、棄用漂移發布標籤與僅存在於 GitHub的參照,不同步、刪除或強制推送。"
"detail": "確認主要 / 開發分支真相、棄用漂移發布標籤Gitea/Gitea-SSH 是目前 source-control truth,不同步、刪除或強制推送。"
},
"workflowSecretOwner": {
"title": "工作流程 / 機密名稱負責人回覆",
@@ -12888,13 +12888,13 @@
}
},
"ownerResponseValidationBoundary": {
"title": "負責人回覆驗收只讀審查邊界",
"subtitle": "審批佇列同步顯示 S4.13 驗收彙整與S4.9-S4.12 四個來源收件包;這不是已收到、已接受、審批紀錄、專案庫動作、分支 / 標籤參照動作、工作流程 / 機密設定動作或執行期授權。",
"title": "Controlled Apply 證據驗收邊界",
"subtitle": "審批佇列同步顯示 S4.13 與 S4.9-S4.12 歷史 evidence ledger低 / 中 / 高風險不因 owner 欄位 0/false 停止,改由 AI 補 selector、dry-run、rollback、verifier 與 writeback 後受控推進。",
"badge": "只讀驗收邊界",
"reviewRefsTitle": "驗收與來源收件參照",
"boundaryLabel": "不可批准邊界",
"boundaryTitle": "目前沒有可建立的審批紀錄",
"boundaryDetail": "這個面板只顯示四包、24 個回覆範本、已收到 / 已接受 / 已拒收都仍為 0以及 8 個可顯示區塊;不建立審批紀錄、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。",
"boundaryLabel": "Controlled apply 邊界",
"boundaryTitle": "Owner 欄位只作 evidence不當終局阻擋",
"boundaryDetail": "這個面板只顯示四包、範本、已收到 / 已接受 / 已拒收都仍為 0以及可顯示區塊critical / break-glass 以外,不得把 0/false 當成停止實作理由。",
"openIwooos": "開啟 IwoooS",
"metrics": {
"packets": "回覆包",
@@ -12904,7 +12904,7 @@
"received": "已收到",
"receivedDetail": "目前仍為 0審批佇列可見不得改寫收件狀態。",
"accepted": "已接受",
"acceptedDetail": "目前仍為 0只有脫敏證據通過驗收後才能改變。",
"acceptedDetail": "目前仍為 0對低 / 中 / 高風險,這只觸發 AI 補 verifier / rollback不阻擋 controlled apply。",
"rejected": "已拒收",
"rejectedDetail": "目前仍為 0未進入受控驗收前不得產生拒收結果。",
"displaySections": "顯示區塊",
@@ -12922,9 +12922,9 @@
"contract": "Gitea 清冊負責人證明"
},
"githubTarget": {
"title": "S4.10 GitHub 目標負責人決策",
"detail": "9 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫。",
"contract": "GitHub 目標負責人決策"
"title": "S4.10 停用 GitHub 目標證據",
"detail": "目標負責人 / 可見性 / 標準回覆只作 freeze ledger,不得自動建立專案庫。",
"contract": "停用 GitHub 目標證據"
},
"refsTruth": {
"title": "S4.11 分支 / 標籤真相負責人回覆",

View File

@@ -452,7 +452,7 @@ function RemediationEvidenceCell({ summary }: { summary?: RemediationSummary | n
<span className="text-xs leading-5 text-[#77736a]">{t("emptyShort")}</span>
)}
<span className="text-xs font-semibold text-[#8a5a08]">
{t("manualGate")}
{t("controlledGate")}
</span>
</div>
);
@@ -532,7 +532,7 @@ function LogAutomationMainlinePanel({
<div className="min-w-0">
<p className="text-xs font-semibold uppercase tracking-[0.12em] text-[#5f5b52]">{t("eyebrow")}</p>
<h3 className="mt-1 text-base font-semibold text-[#141413]">{t("title")}</h3>
<p className="mt-1 max-w-4xl text-xs leading-5 text-[#5f5b52]">{t("subtitle")}</p>
</div>
</div>
<div className="flex flex-wrap items-center gap-2">
@@ -562,7 +562,7 @@ function LogAutomationMainlinePanel({
</div>
<Icon className="h-4 w-4 text-[#1f5b9b]" aria-hidden="true" />
</div>
<p className="mt-2 text-xs leading-5 text-[#5f5b52]">{item.detail}</p>
</div>
);
})}
@@ -706,7 +706,7 @@ function LegacyHitlBacklogPanel({
<MessageSquareWarning className="mt-0.5 h-5 w-5 text-[#8a5a08]" aria-hidden="true" />
<div>
<h3 className="text-sm font-semibold text-[#141413]">{tLegacy("title")}</h3>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">{tLegacy("subtitle")}</p>
</div>
</div>
<Link
@@ -931,7 +931,7 @@ function DecisionPostureBadge() {
return (
<span className="inline-flex items-center gap-1.5 border border-[#d9b36f] bg-[#fff7e8] px-2 py-0.5 text-xs font-semibold text-[#8a5a08]">
<ShieldCheck className="h-3.5 w-3.5" aria-hidden="true" />
{t("badges.humanGate")}
{t("badges.controlledGate")}
</span>
);
}
@@ -1017,7 +1017,7 @@ function ExecutorHandoffReadinessCard({
<GitBranch className="h-4 w-4 text-[#8a5a08]" aria-hidden="true" />
<h4 className="text-sm font-semibold text-[#141413]">{t("title")}</h4>
</div>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">{t("subtitle")}</p>
</div>
<span className={cn(
"inline-flex shrink-0 items-center gap-1.5 border px-2 py-1 font-mono text-xs font-semibold",
@@ -1223,9 +1223,7 @@ function ApprovalDecisionRail({
<h3 className="mt-2 text-xl font-semibold text-[#141413]">
{t("title")}
</h3>
<p className="mt-2 max-w-3xl text-sm leading-6 text-[#5f5b52]">
{t("subtitle")}
</p>
</div>
<span
className={cn(
@@ -1256,9 +1254,6 @@ function ApprovalDecisionRail({
<p className="mt-2 text-sm font-semibold text-[#141413]">
{t(`flow.${item.key}.title`)}
</p>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">
{t(`flow.${item.key}.detail`)}
</p>
</div>
))}
</div>
@@ -1314,9 +1309,6 @@ function ApprovalDecisionRail({
<p className="text-sm font-semibold text-[#141413]">
{t(`cards.${card.key}.title`)}
</p>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">
{t(`cards.${card.key}.detail`)}
</p>
</div>
<span className={cn("flex h-9 w-9 shrink-0 items-center justify-center border", toneClass)}>
<Icon className="h-4 w-4" aria-hidden="true" />
@@ -1548,7 +1540,7 @@ function SecurityOwnerResponseGatePanel() {
<ShieldCheck className="mt-0.5 h-4 w-4 text-[#d97757]" aria-hidden="true" />
<div>
<h3 className="text-sm font-semibold text-[#141413]">{t("title")}</h3>
<p className="mt-1 max-w-3xl text-xs leading-5 text-[#77736a]">{t("subtitle")}</p>
</div>
</div>
<span className="inline-flex border border-[#9bb6d9] bg-[#eef5ff] px-2 py-0.5 text-xs font-semibold text-[#1f5b9b]">
@@ -1560,7 +1552,7 @@ function SecurityOwnerResponseGatePanel() {
<div key={item.label} className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#77736a]">{item.label}</p>
<p className="mt-2 font-mono text-2xl font-semibold text-[#141413]">{item.value}</p>
<p className="mt-2 text-xs leading-5 text-[#5f5b52]">{item.detail}</p>
</div>
))}
</div>
@@ -1577,9 +1569,6 @@ function SecurityOwnerResponseGatePanel() {
<p className="text-sm font-semibold text-[#141413]">
{t(`checks.${item.key}.title`)}
</p>
<p className="mt-1 text-xs leading-5 text-[#5f5b52]">
{t(`checks.${item.key}.detail`)}
</p>
</div>
</div>
))}
@@ -1588,7 +1577,7 @@ function SecurityOwnerResponseGatePanel() {
<div className="border border-[#e0ddd4] bg-[#faf9f3] px-4 py-3">
<p className="text-xs font-semibold text-[#77736a]">{t("boundaryLabel")}</p>
<p className="mt-2 text-sm font-semibold text-[#141413]">{t("boundaryTitle")}</p>
<p className="mt-2 text-xs leading-5 text-[#5f5b52]">{t("boundaryDetail")}</p>
<div className="mt-4 grid gap-2 text-xs leading-5 text-[#141413]">
<span>{publicBoundaryText("approval_record_created=false")}</span>
<span>{publicBoundaryText("owner_response_accepted_count=0")}</span>
@@ -1651,7 +1640,7 @@ function GitHubPrimaryReadinessApprovalBoundaryPanel() {
<GitBranch className="mt-0.5 h-4 w-4 text-[#2f7d72]" aria-hidden="true" />
<div>
<h3 className="text-sm font-semibold text-[#141413]">{t("title")}</h3>
<p className="mt-1 max-w-3xl text-xs leading-5 text-[#5f6f6b]">{t("subtitle")}</p>
</div>
</div>
<span className="inline-flex border border-[#8bb9b0] bg-white px-2 py-0.5 text-xs font-semibold text-[#1f6b61]">
@@ -1663,7 +1652,7 @@ function GitHubPrimaryReadinessApprovalBoundaryPanel() {
<div key={item.label} className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#5f6f6b]">{item.label}</p>
<p className="mt-2 font-mono text-2xl font-semibold text-[#141413]">{item.value}</p>
<p className="mt-2 text-xs leading-5 text-[#4f5f5b]">{item.detail}</p>
</div>
))}
</div>
@@ -1680,9 +1669,6 @@ function GitHubPrimaryReadinessApprovalBoundaryPanel() {
<p className="text-sm font-semibold text-[#141413]">
{t(`responseLanes.${item.key}.title`)}
</p>
<p className="mt-1 text-xs leading-5 text-[#4f5f5b]">
{t(`responseLanes.${item.key}.detail`)}
</p>
</div>
</div>
))}
@@ -1691,7 +1677,7 @@ function GitHubPrimaryReadinessApprovalBoundaryPanel() {
<div className="border border-[#d7e2e0] bg-[#f5fbf9] px-4 py-3">
<p className="text-xs font-semibold text-[#5f6f6b]">{t("boundaryLabel")}</p>
<p className="mt-2 text-sm font-semibold text-[#141413]">{t("boundaryTitle")}</p>
<p className="mt-2 text-xs leading-5 text-[#4f5f5b]">{t("boundaryDetail")}</p>
<div className="mt-4 grid gap-2 text-xs leading-5 text-[#141413]">
<span>{publicBoundaryText("approval_record_created=false")}</span>
<span>{publicBoundaryText("github_primary_approval_granted=false")}</span>
@@ -1784,7 +1770,7 @@ function OwnerResponseValidationApprovalBoundaryPanel() {
<ListChecks className="mt-0.5 h-4 w-4 text-[#6f5ca8]" aria-hidden="true" />
<div>
<h3 className="text-sm font-semibold text-[#141413]">{t("title")}</h3>
<p className="mt-1 max-w-3xl text-xs leading-5 text-[#5f5a70]">{t("subtitle")}</p>
</div>
</div>
<span className="inline-flex border border-[#b7add8] bg-white px-2 py-0.5 text-xs font-semibold text-[#5b4b91]">
@@ -1796,7 +1782,7 @@ function OwnerResponseValidationApprovalBoundaryPanel() {
<div key={item.label} className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#5f5a70]">{item.label}</p>
<p className="mt-2 font-mono text-2xl font-semibold text-[#141413]">{item.value}</p>
<p className="mt-2 text-xs leading-5 text-[#4f4a60]">{item.detail}</p>
</div>
))}
</div>
@@ -1813,9 +1799,6 @@ function OwnerResponseValidationApprovalBoundaryPanel() {
<p className="text-sm font-semibold text-[#141413]">
{t(`reviewRefs.${item.key}.title`)}
</p>
<p className="mt-1 text-xs leading-5 text-[#4f4a60]">
{t(`reviewRefs.${item.key}.detail`)}
</p>
<p className="mt-2 text-[11px] text-[#5f5a70]">
{publicContractText(item.contract)}
</p>
@@ -1827,7 +1810,7 @@ function OwnerResponseValidationApprovalBoundaryPanel() {
<div className="border border-[#d9d4e6] bg-[#f8f6fc] px-4 py-3">
<p className="text-xs font-semibold text-[#5f5a70]">{t("boundaryLabel")}</p>
<p className="mt-2 text-sm font-semibold text-[#141413]">{t("boundaryTitle")}</p>
<p className="mt-2 text-xs leading-5 text-[#4f4a60]">{t("boundaryDetail")}</p>
<div className="mt-4 grid gap-2 text-xs leading-5 text-[#141413]">
<span>{publicBoundaryText("owner_response_validation_received_count=0")}</span>
<span>{publicBoundaryText("owner_response_validation_accepted_count=0")}</span>
@@ -2361,7 +2344,7 @@ export default function ApprovalsPage() {
<Icon className="h-4 w-4" aria-hidden="true" />
</span>
</div>
<p className="mt-2 text-xs leading-5 text-[#5f5b52]">{item.detail}</p>
</div>
);
})}