来源: docs/WIRING_GAP_LEDGER.md W3 (功能接线欠债审计, 2026-07-19)。
后端 + client wrapper 已全就绪, 纯前端接线活。
control-plane 操作面完全没有 UI, 但后端 API + frontend/lib/api/endpoints.ts 里的 client wrapper 都已建好:
getKillSwitch / setKillSwitch — 紧急停机开关 (读+写)
getAdvisoryReport — control 建议报告 ("翻 control_mode=automatic 的证据面")
getOdpState — ODP 系统健康
现状: frontend/app/(app)/control/ 只有 actions/page.tsx (只读 ledger 表)。上面三个 wrapper 从没被任何页面 import。
期望: control/ 下加 2-3 个面板 (kill-switch 开关 / advisory-report 视图 / ODP 健康), 接已有 endpoints.ts 函数。零后端改动。审计原话: "最高安全回报, 大概一个下午前端活"。
证据: frontend/app/(app)/control/actions/page.tsx (目录唯一文件); endpoints.ts:254,270-274,281; grep getKillSwitch/setKillSwitch/getAdvisoryReport/getOdpState → endpoints.ts 外 0 命中。
来源: docs/WIRING_GAP_LEDGER.md W3 (功能接线欠债审计, 2026-07-19)。
后端 + client wrapper 已全就绪, 纯前端接线活。
control-plane 操作面完全没有 UI, 但后端 API +
frontend/lib/api/endpoints.ts里的 client wrapper 都已建好:getKillSwitch/setKillSwitch— 紧急停机开关 (读+写)getAdvisoryReport— control 建议报告 ("翻 control_mode=automatic 的证据面")getOdpState— ODP 系统健康现状:
frontend/app/(app)/control/只有actions/page.tsx(只读 ledger 表)。上面三个 wrapper 从没被任何页面 import。期望:
control/下加 2-3 个面板 (kill-switch 开关 / advisory-report 视图 / ODP 健康), 接已有 endpoints.ts 函数。零后端改动。审计原话: "最高安全回报, 大概一个下午前端活"。证据:
frontend/app/(app)/control/actions/page.tsx(目录唯一文件);endpoints.ts:254,270-274,281; grep getKillSwitch/setKillSwitch/getAdvisoryReport/getOdpState → endpoints.ts 外 0 命中。