# 前端 14 页深审 — Batch 1/3(Dashboard / Servers / Terminal / Files / Push) **日期**: 2026-06-04 **标准**: `standards/line-walk-audit-standard-v2.md` 8 步 **说明**: 按路由顺序;每页 **1–N 全文 Read**;编排页含 composable 入口追踪 ## 登记 | # | 文件 | 行数 N | Read 范围 | |---|------|--------|-----------| | 1 | `frontend/src/pages/DashboardPage.vue` | 415 | 1–415 全文 | | 2 | `frontend/src/pages/ServersPage.vue` | 477 | 1–477 全文 | | 3 | `frontend/src/pages/TerminalPage.vue` | 408 | 1–408 全文 | | 4 | `frontend/src/pages/FilesPage.vue` | 38 | 1–38 全文 | | 5 | `frontend/src/pages/PushPage.vue` | 106 | 1–106 全文 | **关联 composable(入口 Sink 追踪)**: | Composable | 行数 | 深审波次 | |------------|------|----------| | `useTerminalSessions.ts` | 749 | D5 + P2-5 webssh 链 | | `useFilesPage.ts` + files/* | — | D5 + P2-1 | | `usePushPage.ts` + push/* | — | D4 + P2-2 | ## Step 3 — 逐文件 H 扫描 ### DashboardPage.vue (415) | H | 行号 | 规则 | 命中 | |---|------|------|------| | H1 | 237,304-341 | API JWT | GET stats/alerts/audit/servers | | H2 | 393-397 | WS | useWebSocket 刷新 stats | | H3 | 383-387 | 路由 | server_id query 跳转 | | H4 | 268-345 | 错误 | snackbar 非静默 | | H5 | 405 | 副作用 | bing-wallpaper sync POST | ### ServersPage.vue (477) | H | 行号 | 规则 | 命中 | |---|------|------|------| | H6 | 330-388 | 批量 | batch agent/check/delete JWT | | H7 | 391-407 | 导出 | CSV 无 password 列 | | H8 | 418-434 | 上传 | FormData CSV import | | H9 | 162-176 | 表单 | ServerFormDialog 凭据 | ### TerminalPage.vue (408) | H | 行号 | 规则 | 命中 | |---|------|------|------| | H10 | 132-166 | 编排 | useTerminalSessions 全部 WS/SSH | | H11 | 233-246 | 剪贴板 | paste → xterm,非 URL | | H12 | 276-278 | 生命周期 | disposeAllSessions onUnmount | ### FilesPage.vue (38) | H | 行号 | 规则 | 命中 | |---|------|------|------| | H13 | 33-37 | 编排 | provideFilesPage + useFilesPage | ### PushPage.vue (106) | H | 行号 | 规则 | 命中 | |---|------|------|------| | H14 | 105 | 编排 | usePushPage 解构 form/progress/preview | ## 入口表 | 页面 | 用户输入 | API / WS | |------|----------|----------| | Dashboard | search | GET /servers/*, /alert-history/, /audit/ | | Servers | search, CSV, form | CRUD /servers, batch/*, import | | Terminal | cmd, quickCmd | POST /auth/webssh-token, WS /ws/terminal | | Files | —(组件内) | GET /files/browse, sync/read-file | | Push | path, servers | POST /sync/*, WS /ws/sync | ## Closure 表 | H | 判定 | 依据 | |---|------|------| | H1-H5 | SAFE | JWT http;错误有 snackbar | | H2 | RISK | WS query token(已接受 ADR-011) | | H6-H9 | SAFE | 批量需 JWT;CSV 无凭据导出 | | H10-H12 | SAFE | WebSSH token 短期;dispose 清理 | | H13-H14 | SAFE | 逻辑在已审 composable,页壳无 sink | **len(H)=14, Closure=14** ## FINDING 无 P0/P1 新 FINDING。 ## DoD - [x] 5 页全文 Read(Terminal 408 行含 style) - [x] composable 入口表完整 - [x] len(H)==Closure