# BUG 专项逐行走读 — Batch 49（2026-06-04）

**标准**: `standards/line-walk-audit-standard-v2.md`

## 范围

| 文件 | N | Read | H | FINDING |
|------|---|------|---|---------|
| `frontend/src/components/push/PushPreviewDialog.vue` | 91 | 1..91 | 0 | 0 |
| `frontend/src/components/push/PushProgressList.vue` | 69 | 1..69 | 0 | 0 |
| `frontend/src/components/push/PushServerGrid.vue` | 110 | 1..110 | 0 | 0 |
| `frontend/src/components/push/PushSyncModeCard.vue` | 39 | 1..39 | 0 | 0 |
| `frontend/src/components/push/PushToolbar.vue` | 58 | 1..58 | 0 | 0 |

## Step 3 规则扫描

自动化规则表 §四（PY/FE/SH）；每命中经 Closure。

## Closure 表

| 文件 | 行号 | 规则 | 判定 | 理由 |
|------|------|------|------|------|
| — | — | — | — | H=0，全文 Read 确认 CLEAN |

## Step 8 DoD

- [x] 登记册 batch 文件 `read_range` 覆盖 1..N
- [x] Step2 全文 Read（行数核对）
- [x] Closure 全表（含零命中说明）
- [x] FINDING: **0**（OPEN 须当批修或登记）

## 验证

```bash
ruff check server/  # 若改后端
pytest tests/ -q --tb=no
```

## FINDING 列表

无（0 FINDING）。

