# BUG / 审计覆盖总表（2026-06-04）

**用途**：回答「还有哪些文件没扫？」——区分 **Phase 2/3 走读** 与 **BUG 专项深读**，避免与「全库闭环」混读。

**图例**

| 标记 | 含义 |
|------|------|
| **P2·矩阵** | `audit-phase-2-findings-matrix.md` 有对应 ID 或 2a–2j 批次纳入 |
| **P2·批次** | Phase 2/3 报告中有文件名（grep / 目录汇总 / 增量） |
| **P3·目录** | Phase 3 前端按目录 grep（`pages/` 14 文件合计 0 新 FINDING，**非逐页全文**） |
| **BUG·全文** | BUG 专项 Batch 1–6：该文件 **全文或核心路径通读** |
| **BUG·节选** | BUG 专项只读了 **部分行/函数**（最易漏扫） |
| **—** | 上述 BUG 专项 **未列入** 任何 Batch 范围表 |

**统计（BUG 专项）**

- `server/api/*.py`：20 个文件 → BUG·全文/节选 **12**，BUG 未列入 **8**
- `frontend/src/pages/*.vue`：14 个 → BUG·节选/关联 **4**，BUG 未列入 **10**

---

## 1. `server/api/`（20）

| 文件 | 行数约 | Phase 2/3 | BUG 专项 | 说明 |
|------|--------|-----------|----------|------|
| `agent.py` | 360 | P2·矩阵 F2a-02/03/04；2h 增量 | **BUG·全文** B1；**BUG·节选** B5 TTL | 心跳/告警主路径已深读 |
| `install.py` | 719 | P2·矩阵 F2a-08/09；2a 全文 | **BUG·全文** B1 | 安装锁已修 |
| `auth_jwt.py` | 275 | P2·矩阵 F2a-10 | **BUG·全文** B6 | 中间件 + `tv` |
| `auth.py` | ~375 | P2·矩阵 F2a-07 | **BUG·节选** B6（refresh 在 service） | 登录/TOTP 路由未单独 BUG 通读 |
| `servers.py` | ~1733 | P2·矩阵 F2a-12/13 | **BUG·节选** B1 stats；B3 stats 封顶 | **大部 CRUD/WebSSH 未 BUG 通读** |
| `sync_v2.py` | ~1663 | P2·矩阵 F2a-11；2b 服务层 | **BUG·节选** B3/4/5 多段 | file-ops/upload/写路径；**整文件未 BUG 通读** |
| `scripts.py` | ~369 | P2·矩阵 F2a-14/15；2h 全文 | — | Phase 2h 已全文；BUG 专项未单列 |
| `webssh.py` | — | P2·矩阵 F2a-01/05/06 | — | 仅矩阵/历史 2a，**无 BUG Batch** |
| `websocket.py` | — | P2·矩阵 F2a-18 | — | 告警 WS；推送 WS 在 B4 侧验证 |
| `settings.py` | — | P2·矩阵 F2a-16 | — | |
| `files.py` | 78 | P2·批次（API 层） | **BUG·全文** B4 | 仅 GET browse |
| `schemas.py` | — | P2·批次 | **BUG·节选** B4 `SyncFiles.batch_id` | |
| `terminal.py` | — | P2·批次 | — | |
| `search.py` | — | P2·批次 | — | |
| `assets.py` | — | P2·批次 | — | |
| `health.py` | — | P2·批次 | — | |
| `dependencies.py` | — | P2·矩阵 F2a-17 | — | |
| `remote_path_validation.py` | — | P2·批次 | — | |
| `schema_path_validators.py` | — | P2·批次 | — | |
| `__init__.py` | — | P2·批次 | — | 路由聚合，无单独 BUG 行 |

---

## 2. `server/` 其他（BUG 专项已触及）

| 文件 | Phase 2/3 | BUG 专项 | 说明 |
|------|-----------|----------|------|
| `background/schedule_runner.py` | P2·2d | **BUG·全文** B2 | once 回滚已修 |
| `background/retry_runner.py` | P2·2d | **BUG·全文** B3 | 重试分类已修 |
| `background/heartbeat_flush.py` | P2·2d | **BUG·节选** B4/B5 | flush 批量提交 |
| `background/self_monitor.py` | P2·2d | **BUG·全文** B5 | |
| `background/script_execution_flush.py` | P2·2g/2i | **BUG·全文** B6 | |
| `application/services/auth_service.py` | P2·2b | **BUG·节选** B2/B6 | refresh 重用 B6 已修 |
| `application/services/sync_engine_v2.py` | P2·2b 矩阵 | **BUG·节选** B2/B3 | gather 计数 B3 |
| `application/services/script_job_callback.py` | P2·2g | **BUG·全文** B1 | |
| `application/services/files_browse_service.py` | P2·2b/服务 | **BUG·节选** B4/5 | invalidate 辅助 |
| `infrastructure/redis/script_execution_store.py` | P2·2g | **BUG·节选** B2 | stuck/flush 段 |

**`server/` 其余**（`application/services/*` 其它、`infrastructure/*`、`domain/*`、`main.py`、`config.py` 等，约 50+ 文件）：Phase 2b–2d **批次走读**；**BUG 专项 0 文件全文**。

---

## 3. `frontend/src/pages/`（14）

| 页面 | Phase 2/3 | BUG 专项 | 说明 |
|------|-----------|----------|------|
| `PushPage.vue` | P3·目录 | **BUG·关联** B4 `usePushProgress` | 页面本身未单独 Read |
| `FilesPage.vue` | P3·目录 | **BUG·关联** B6 `useFilesBrowse` + store | 组合逻辑在 composable |
| `DashboardPage.vue` | P3·目录 | **BUG·节选** B3 | 仅 stats 加载段 |
| `TerminalPage.vue` | P3·目录 | **BUG·关联** B2 `useTerminalSessions` | |
| `LoginPage.vue` | P3·目录 | — | |
| `ServersPage.vue` | P3·目录 | — | |
| `ScriptsPage.vue` | P3·目录 | — | |
| `CommandsPage.vue` | P3·目录 | — | |
| `SchedulesPage.vue` | P3·目录 | — | |
| `SettingsPage.vue` | P3·目录 | — | |
| `AuditPage.vue` | P3·目录 | — | |
| `AlertsPage.vue` | P3·目录 | — | |
| `CredentialsPage.vue` | P3·目录 | — | |
| `RetriesPage.vue` | P3·目录 | — | |

**`frontend/src` 其它**（composables/components 等 ~91 文件）：Phase 3 **目录 grep + 5 个代表全文**；BUG 专项仅 **~8 个路径**（见 Batch 2/4/6 报告）。

---

## 4. BUG 专项 Batch 1–6 文件清单（去重）

| Batch | 文件（路径） | 深度 |
|-------|----------------|------|
| 1 | `install.py`, `web/app/install.html`, `script_job_callback.py`, `agent.py`, `servers.py`（节选） | 全文/节选 |
| 2 | `schedule_runner.py`, `auth_service.py`（节选）, `sync_engine_v2.py`（节选）, `script_execution_store.py`（节选）, `useTerminalSessions.ts` | 节选为主 |
| 3 | `retry_runner.py`, `sync_engine_v2.py`, `servers.py`（stats）, `files_browse_service.py`, `DashboardPage.vue`（节选） | |
| 4 | `sync_v2.py`（节选）, `files.py`, `heartbeat_flush.py`, `usePushProgress.ts`, `schemas.py`（节选） | |
| 5 | `agent.py`（TTL）, `heartbeat_flush.py`, `sync_v2.py`（写路径）, `self_monitor.py`, `files_browse_service.py` | |
| 6 | `auth_jwt.py`, `auth_service.py`（refresh）, `script_execution_flush.py`, `useFilesBrowse.ts`, `files.ts` | |

**合计去重约 25 个路径**（含节选重复计 1 次）。

---

## 5. 结论（2026-06-04 更新 — 全量扫描已签退）

**此前缺口（Batch 1–6 仅 ~25 路径）已由全量排期补齐。**

| 状态 | 说明 |
|------|------|
| **BUG 全量扫描** | B0 登记册 + **B7–B77** 共 71 批；`must_audit` **283/283** `done`（`read_range` 1..N） |
| **节选重读** | `servers.py`、`sync_v2.py`、`script_service.py`、`useTerminalSessions.ts` 等 `needs_full_rescan` → **0** |
| **构建产物** | `web/app/assets/**` 2773 文件 → `covered-by-frontend-src` + [B-Assets 门控](audit-bug-assets-gate-2026-06-04.md) |
| **排除** | `scripts/sedul3hFb`、`docker/.env`（本地密钥，审 `docker/.env.example`） |
| **OPEN P0/P1** | **0**（Batch 7–77 本轮无新增；Batch 1–6 已修项保留） |

签退文档：[`audit-bug-scan-closure-2026-06-04.md`](audit-bug-scan-closure-2026-06-04.md)  
机器可读 SSOT：[`docs/audit/2026-06-04-bug-scan-registry.json`](../audit/2026-06-04-bug-scan-registry.json)

---

## 6. 历史建议顺序（已由 B7–B77 执行完毕，归档）

| 原优先级 | 范围 | 现状态 |
|----------|------|--------|
| P0 | `webssh.py` 全文 | B9 |
| P0 | `servers.py` 全文 | B7-R |
| P1 | `sync_v2.py` 全文 | B8-R |
| P1 | `scripts.py` + `script_service.py` | B10 / B17-R |
| P2 | `frontend/src/pages/*.vue` | B35–B37 |
| P2 | `terminal.py`、`settings.py`、`search.py` | B9 / B10 |

---

## 7. 交叉引用

| 文档 | 路径 |
|------|------|
| Phase 2 矩阵 | `docs/reports/audit-phase-2-findings-matrix.md` |
| Phase 3 前端 | `docs/reports/audit-phase-3-frontend-line-walk.md` |
| Phase 闭环声明 | `docs/reports/audit-phase-3-full-closure-2026-06-04.md` |
| BUG Batch 1–6 | `docs/reports/audit-bug-line-walk-2026-06-04-batch{1..6}.md` |
| BUG Batch 7–77 | `docs/reports/audit-bug-line-walk-2026-06-04-batch{7..77}.md` |
| **BUG 全量登记册** | `docs/audit/2026-06-04-bug-scan-registry.json` |
| **BUG 全量签退** | `docs/reports/audit-bug-scan-closure-2026-06-04.md` |
| B-Assets 门控 | `docs/reports/audit-bug-assets-gate-2026-06-04.md` |
| Phase 登记册（历史） | `docs/audit/2026-06-04-full-line-walk-registry.md` |

---

*更新: 2026-06-04 · BUG 全量签退 · pytest 154 passed · ruff 全绿*
