Files
Nexus/docs/archive/audits/2026-06-04-line-walk-merged.md
T
2026-07-08 22:31:31 +08:00

52 KiB
Raw Blame History

Bug Scan Line-Walk 合并卷

生成日期: 2026-06-04 · 源文件 74 篇 · 原文 docs/archive/audits/2026-06-04-line-walk/

批次索引

audit-bug-line-walk-2026-06-04-batch1.md

BUG 专项逐行走读 — Batch 12026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| install.html | 691-694 | FINDING | P1 | create-admin 成功后未检查 /lock;失败仍进 step5 | | install.py | 648 | FINDING | P1 | create-admin 与 lock 非原子;锁定前 install API 仍可被未认证调用 | | script_job_callback.py | 17-36 | FINDING | P2 | server_ids==[] 时直接 return "completed",忽略 results 中 pending |

FINDING 列表(8 字段)

BUG-06-04-01 · P1 · install.html:691-694

BUG-06-04-02 · P1 · install.py:648

BUG-06-04-03 · P2 · script_job_callback.py:32-33

Step 7 统计

audit-bug-line-walk-2026-06-04-batch10.md

BUG 专项逐行走读 — Batch 102026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch11.md

BUG 专项逐行走读 — Batch 112026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch12.md

BUG 专项逐行走读 — Batch 122026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch13.md

BUG 专项逐行走读 — Batch 132026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch14.md

BUG 专项逐行走读 — Batch 142026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch17.md

BUG 专项逐行走读 — Batch 172026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch18.md

BUG 专项逐行走读 — Batch 182026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch19.md

BUG 专项逐行走读 — Batch 192026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch2.md

BUG 专项逐行走读 — Batch 22026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| schedule_runner.py | 125-217 | FINDING | P1 | run_mode=once 执行前禁用;失败时仅 cron 回滚 last_run_atonce 永久失活 |

FINDING 列表(8 字段)

BUG-06-04-04 · P1 · schedule_runner.py:212-217

Step 7 统计

schedule_runner.py 1 FINDING(已修)

Step 8 DoD

  • Closure 全表
  • FINDING 含 文件:行号

audit-bug-line-walk-2026-06-04-batch20.md

BUG 专项逐行走读 — Batch 202026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch21.md

BUG 专项逐行走读 — Batch 212026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch22.md

BUG 专项逐行走读 — Batch 222026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch23.md

BUG 专项逐行走读 — Batch 232026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch24.md

BUG 专项逐行走读 — Batch 242026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch25.md

BUG 专项逐行走读 — Batch 252026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch26.md

BUG 专项逐行走读 — Batch 262026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch27.md

BUG 专项逐行走读 — Batch 272026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch28.md

BUG 专项逐行走读 — Batch 282026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch29.md

BUG 专项逐行走读 — Batch 292026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch3.md

BUG 专项逐行走读 — Batch 32026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| retry_runner.py | 85-100 | FINDING | P2 | 仅 failed==0 && completed>0 成功;全 cancel 时 job 永久 pending | | sync_engine_v2.py | 241-242 | FINDING | P2 | 任务异常时 results 缺项,failed+completed 可小于 total | | servers.py | 276-279 | FINDING | P2 | Redis heartbeat 数可大于 DB total,在线率 >100% |

FINDING 列表

BUG-06-04-05 · P2 · retry_runner.py

BUG-06-04-06 · P2 · sync_engine_v2.py:241-242

BUG-06-04-07 · P2 · servers.py:276-279

Step 7 统计

audit-bug-line-walk-2026-06-04-batch30.md

BUG 专项逐行走读 — Batch 302026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch31.md

BUG 专项逐行走读 — Batch 312026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch32.md

BUG 专项逐行走读 — Batch 322026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch33.md

BUG 专项逐行走读 — Batch 332026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch35.md

BUG 专项逐行走读 — Batch 352026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch36.md

BUG 专项逐行走读 — Batch 362026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch37.md

BUG 专项逐行走读 — Batch 372026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch38.md

BUG 专项逐行走读 — Batch 382026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch39.md

BUG 专项逐行走读 — Batch 392026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch4.md

BUG 专项逐行走读 — Batch 42026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| usePushProgress.ts | 184-194 | FINDING | P1 | POST 阻塞至推送结束才连 WS,进度事件全部丢失 | | sync_v2.py | 125-182 | FINDING | P2 | 远程 file-ops 后未 invalidate_browse_cache304 陈旧目录 | | heartbeat_flush.py | 57-89 | FINDING | P2 | 每服务器独立 session/commit;已删服务器仍计 flushed |

FINDING 列表

BUG-06-04-08 · P1 · usePushProgress.ts

BUG-06-04-09 · P2 · sync_v2 file-ops

BUG-06-04-10 · P2 · heartbeat_flush.py

Step 7 统计

audit-bug-line-walk-2026-06-04-batch40.md

BUG 专项逐行走读 — Batch 402026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch41.md

BUG 专项逐行走读 — Batch 412026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch42.md

BUG 专项逐行走读 — Batch 422026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch43.md

BUG 专项逐行走读 — Batch 432026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch44.md

BUG 专项逐行走读 — Batch 442026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch45.md

BUG 专项逐行走读 — Batch 452026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch46.md

BUG 专项逐行走读 — Batch 462026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch47.md

BUG 专项逐行走读 — Batch 472026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch48.md

BUG 专项逐行走读 — Batch 482026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch49.md

BUG 专项逐行走读 — Batch 492026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch5.md

BUG 专项逐行走读 — Batch 52026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| agent.py | 34, 226-227 | FINDING | P2 | 注释写 TTL=1.5×flush,实际 600=600,停 Agent 后 key 可能在 flush 前过期 | | sync_v2.py | 1474-1650 | FINDING | P2 | write/chmod/compress/decompress 未失效 browse ETagBatch4 已覆盖 ops/upload |

FINDING 列表

BUG-06-04-11 · P2 · agent.py REDIS_KEY_EXPIRE

BUG-06-04-12 · P2 · sync_v2 远程写路径

Step 7 统计

agent.py 1 FINDING(已修) sync_v2.py 1 FINDING(已修)

audit-bug-line-walk-2026-06-04-batch50.md

BUG 专项逐行走读 — Batch 502026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch51.md

BUG 专项逐行走读 — Batch 512026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch52.md

BUG 专项逐行走读 — Batch 522026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch53.md

BUG 专项逐行走读 — Batch 532026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch54.md

BUG 专项逐行走读 — Batch 542026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch55.md

BUG 专项逐行走读 — Batch 552026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch56.md

BUG 专项逐行走读 — Batch 562026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch57.md

BUG 专项逐行走读 — Batch 572026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch58.md

BUG 专项逐行走读 — Batch 582026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch59.md

BUG 专项逐行走读 — Batch 592026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch6.md

BUG 专项逐行走读 — Batch 62026-06-04

范围(5 文件,全文 Read

Step 3 规则扫描(BUG 相关)

Closure 表(BUG

| auth_service.py | 239-246 | FINDING | P1 | 已轮换 refresh 不在 Redis 时仅 401,不升 token_version,被盗旧 token 与合法新会话可并存 | | auth_service.py | 597-598 | FINDING | P2 | Redis 异常时 _check_refresh_token 曾返回 False,误拒合法刷新 | | useFilesBrowse.ts | 187-195 | FINDING | P2 | 5s 内命中本地缓存直接 return,跳过后端 ETag,变更后仍显示旧列表 |

FINDING 列表

BUG-06-04-13 · P1 · auth_service refresh 重用

BUG-06-04-14 · P2 · auth Redis 不可用

BUG-06-04-15 · P2 · useFilesBrowse 本地缓存短路

Step 7 统计

audit-bug-line-walk-2026-06-04-batch60.md

BUG 专项逐行走读 — Batch 602026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch61.md

BUG 专项逐行走读 — Batch 612026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch62.md

BUG 专项逐行走读 — Batch 622026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch63.md

BUG 专项逐行走读 — Batch 632026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch64.md

BUG 专项逐行走读 — Batch 642026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch65.md

BUG 专项逐行走读 — Batch 652026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch66.md

BUG 专项逐行走读 — Batch 662026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch67.md

BUG 专项逐行走读 — Batch 672026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch68.md

BUG 专项逐行走读 — Batch 682026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch69.md

BUG 专项逐行走读 — Batch 692026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch7.md

BUG 专项逐行走读 — Batch 72026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch70.md

BUG 专项逐行走读 — Batch 702026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch71.md

BUG 专项逐行走读 — Batch 712026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch72.md

BUG 专项逐行走读 — Batch 722026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch73.md

BUG 专项逐行走读 — Batch 732026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch74.md

BUG 专项逐行走读 — Batch 742026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch75.md

BUG 专项逐行走读 — Batch 752026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch76.md

BUG 专项逐行走读 — Batch 762026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch77.md

BUG 专项逐行走读 — Batch 772026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch8.md

BUG 专项逐行走读 — Batch 82026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

audit-bug-line-walk-2026-06-04-batch9.md

BUG 专项逐行走读 — Batch 92026-06-04

范围

| 文件 | N | Read | H | FINDING |

Step 3 规则扫描

自动化规则表 §四(PY/FE/SH);每命中经 Closure。

Closure 表

Step 8 DoD

  • Closure 全表(含零命中说明)
  • FINDING: 0OPEN 须当批修或登记)

验证

FINDING 列表

无(0 FINDING)。

Closure 摘录(合并)

| install.html | 691-694 | FINDING | P1 | create-admin 成功后未检查 /lock;失败仍进 step5 | | install.py | 648 | FINDING | P1 | create-admin 与 lock 非原子;锁定前 install API 仍可被未认证调用 | | script_job_callback.py | 17-36 | FINDING | P2 | server_ids==[] 时直接 return "completed",忽略 results 中 pending | | install.py | 509-526 | SAFE | — | state 不写 db_pass(有意);刷新 step4 需重填密码属 UX | | agent.py | 154-180 | SAFE | — | 无 server_id / 未知 server 丢弃,设计如此 | | agent.py | 86-94 | SAFE | — | 非数字指标跳过 | | servers.py | 245-279 | RISK/BUG | P2 | offline=total-online 与列表 Redis 覆盖逻辑在「从未装 Agent」服务器上可能偏差;非回归 | | servers.py | 205-212 | SAFE | — | is_online 过滤后重算 total | | 文件 | N | Read | H | FINDING | | server/api/assets.py | 358 | 1..358 | 19 | 0 | | server/api/files.py | 77 | 1..77 | 3 | 0 | | server/api/health.py | 67 | 1..67 | 8 | 0 | | server/api/scripts.py | 418 | 1..418 | 18 | 0 | | server/api/search.py | 119 | 1..119 | 7 | 0 | | server/api/__init__.py | 1 | 1..1 | 0 | 0 | | server/api/dependencies.py | 180 | 1..180 | 0 | 0 | | server/api/remote_path_validation.py | 33 | 1..33 | 0 | 0 | | server/api/schema_path_validators.py | 59 | 1..59 | 1 | 0 | | server/api/schemas.py | 641 | 1..641 | 2 | 0 | | server/api/install.py | 722 | 1..722 | 45 | 0 | | server/api/agent.py | 362 | 1..362 | 16 | 0 | | server/api/auth_jwt.py | 275 | 1..275 | 6 | 0 | | server/application/services/script_service.py | 713 | 1..713 | 18 | 0 | | server/application/services/sync_engine_v2.py | 540 | 1..540 | 16 | 0 | | server/application/services/auth_service.py | 640 | 1..640 | 13 | 0 | | frontend/src/composables/terminal/useTerminalSessions.ts | 750 | connect/reconnect/WebSSH | | server/application/services/files_browse_service.py | 167 | 1..167 | 6 | 0 | | server/application/services/script_job_callback.py | 110 | 1..110 | 2 | 0 | | server/application/services/script_jobs.py | 125 | 1..125 | 1 | 0 | | server/application/services/server_service.py | 68 | 1..68 | 0 | 0 | | server/application/services/sync_service.py | 43 | 1..43 | 1 | 0 | | server/application/__init__.py | 1 | 1..1 | 0 | 0 | | server/application/services/__init__.py | 8 | 1..8 | 0 | 0 | | server/background/heartbeat_flush.py | 102 | 1..102 | 3 | 0 | | server/background/retry_runner.py | 148 | 1..148 | 7 | 0 | | server/background/schedule_runner.py | 236 | 1..236 | 6 | 0 | | server/background/script_execution_flush.py | 45 | 1..45 | 0 | 0 | | server/background/self_monitor.py | 108 | 1..108 | 2 | 0 | | server/background/__init__.py | 7 | 1..7 | 0 | 0 | | server/background/ip_allowlist_refresh.py | 99 | 1..99 | 1 | 0 | | server/background/upload_staging_cleanup.py | 60 | 1..60 | 0 | 0 | | server/__init__.py | 5 | 1..5 | 0 | 0 | | server/config.py | 217 | 1..217 | 3 | 0 | | server/main.py | 669 | 1..669 | 21 | 0 | | server/infrastructure/database/__init__.py | 1 | 1..1 | 0 | 0 | | server/infrastructure/database/admin_repo.py | 62 | 1..62 | 4 | 0 | | server/infrastructure/database/audit_log_repo.py | 86 | 1..86 | 5 | 0 | | server/infrastructure/database/crypto.py | 54 | 1..54 | 0 | 0 | | server/infrastructure/database/db_credential_repo.py | 38 | 1..38 | 2 | 0 | | server/infrastructure/database/engine_compat.py | 23 | 1..23 | 0 | 0 | | server/infrastructure/database/migrations.py | 180 | 1..180 | 6 | 0 | | server/infrastructure/database/password_preset_repo.py | 38 | 1..38 | 2 | 0 | | server/infrastructure/database/platform_node_repo.py | 83 | 1..83 | 7 | 0 | | server/infrastructure/database/push_schedule_repo.py | 95 | 1..95 | 6 | 0 | | server/infrastructure/database/script_repo.py | 90 | 1..90 | 8 | 0 | | server/infrastructure/database/server_repo.py | 144 | 1..144 | 8 | 0 | | server/infrastructure/database/session.py | 125 | 1..125 | 6 | 0 | | server/infrastructure/database/setting_repo.py | 31 | 1..31 | 5 | 0 | | server/infrastructure/database/ssh_key_preset_repo.py | 38 | 1..38 | 2 | 0 | | server/infrastructure/database/ssh_session_repo.py | 83 | 1..83 | 6 | 0 | | server/infrastructure/database/sync_log_repo.py | 120 | 1..120 | 6 | 0 | | server/infrastructure/ssh/__init__.py | 1 | 1..1 | 0 | 0 | | server/infrastructure/ssh/asyncssh_pool.py | 437 | 1..437 | 43 | 0 | | server/infrastructure/ssh/files_capability.py | 62 | 1..62 | 3 | 0 | | server/infrastructure/ssh/remote_archive.py | 128 | 1..128 | 2 | 0 | | server/infrastructure/ssh/remote_probe.py | 85 | 1..85 | 5 | 0 | | files_browse_service.py | 路径 ..、SSH 命令引用 | | servers.py | offline = total - online、Redis 脏 key | | DashboardPage.vue | 是否混用 stats / 列表在线 | | sync_engine_v2.py | gather(return_exceptions=True) | | server/infrastructure/ssh/remote_shell.py | 63 | 1..63 | 5 | 0 | | server/infrastructure/__init__.py | 15 | 1..15 | 0 | 0 | | server/infrastructure/agent_url.py | 11 | 1..11 | 0 | 0 | | server/infrastructure/redis/__init__.py | 1 | 1..1 | 0 | 0 | | server/infrastructure/redis/client.py | 97 | 1..97 | 0 | 0 | | server/infrastructure/redis/script_callback_rate.py | 44 | 1..44 | 1 | 0 | | server/infrastructure/redis/script_execution_store.py | 422 | 1..422 | 10 | 0 | | server/infrastructure/subscription_parser.py | 121 | 1..121 | 0 | 0 | | server/infrastructure/telegram/__init__.py | 222 | 1..222 | 0 | 0 | | server/domain/__init__.py | 3 | 1..3 | 0 | 0 | | server/domain/models/__init__.py | 431 | 1..431 | 0 | 0 | | server/domain/repositories/__init__.py | 125 | 1..125 | 0 | 0 | | server/utils/files_chmod_policy.py | 29 | 1..29 | 0 | 0 | | server/utils/files_elevation.py | 55 | 1..55 | 0 | 0 | | server/utils/posix_paths.py | 122 | 1..122 | 2 | 0 | | server/utils/sync_error_message.py | 72 | 1..72 | 0 | 0 | | server/utils/text_io.py | 51 | 1..51 | 4 | 0 | | server/utils/unix_ls.py | 115 | 1..115 | 1 | 0 | | frontend/src/pages/AlertsPage.vue | 184 | 1..184 | 0 | 0 | | frontend/src/pages/AuditPage.vue | 154 | 1..154 | 0 | 0 | | frontend/src/pages/CommandsPage.vue | 164 | 1..164 | 0 | 0 | | frontend/src/pages/CredentialsPage.vue | 390 | 1..390 | 0 | 0 | | frontend/src/pages/DashboardPage.vue | 410 | 1..410 | 0 | 0 | | frontend/src/pages/FilesPage.vue | 38 | 1..38 | 0 | 0 | | frontend/src/pages/LoginPage.vue | 243 | 1..243 | 0 | 0 | | frontend/src/pages/PushPage.vue | 106 | 1..106 | 0 | 0 | | frontend/src/pages/RetriesPage.vue | 191 | 1..191 | 0 | 0 | | frontend/src/pages/SchedulesPage.vue | 295 | 1..295 | 0 | 0 | | frontend/src/pages/ScriptsPage.vue | 531 | 1..531 | 0 | 0 | | frontend/src/pages/ServersPage.vue | 477 | 1..477 | 0 | 0 | | frontend/src/pages/SettingsPage.vue | 434 | 1..434 | 0 | 0 | | frontend/src/pages/TerminalPage.vue | 408 | 1..408 | 0 | 0 | | frontend/src/composables/terminal/useTerminalSessions.ts | 749 | 1..749 | 0 | 0 | | frontend/src/composables/files/constants.ts | 5 | 1..5 | 0 | 0 | | frontend/src/composables/files/filesPageContext.ts | 21 | 1..21 | 0 | 0 | | frontend/src/composables/files/index.ts | 9 | 1..9 | 0 | 0 | | frontend/src/composables/files/useFilesActions.ts | 609 | 1..609 | 0 | 0 | | frontend/src/composables/files/useFilesBrowse.ts | 267 | 1..267 | 0 | 0 | | usePushProgress.ts | 184-194 | FINDING | P1 | POST 阻塞至推送结束才连 WS,进度事件全部丢失 | | sync_v2.py | 125-182 | FINDING | P2 | 远程 file-ops 后未 invalidate_browse_cache304 陈旧目录 | | heartbeat_flush.py | 57-89 | FINDING | P2 | 每服务器独立 session/commit;已删服务器仍计 flushed | | files.py | 39-77 | SAFE | — | 只读 browse;失效由 mutation 侧负责 | | sync_v2.py | 73-90 | SAFE | — | 同步 API 本身无 ETag | | frontend/src/composables/files/useFilesEditor.ts | 163 | 1..163 | 0 | 0 | | frontend/src/composables/files/useFilesNavigation.ts | 210 | 1..210 | 0 | 0 | | frontend/src/composables/files/useFilesPage.ts | 272 | 1..272 | 0 | 0 | | frontend/src/composables/files/useFilesPermissions.ts | 101 | 1..101 | 0 | 0 | | frontend/src/composables/files/useFilesSelection.ts | 28 | 1..28 | 0 | 0 | | frontend/src/composables/push/index.ts | 3 | 1..3 | 0 | 0 | | frontend/src/composables/push/labels.ts | 57 | 1..57 | 0 | 0 | | frontend/src/composables/push/types.ts | 72 | 1..72 | 0 | 0 | | frontend/src/composables/push/usePushForm.ts | 101 | 1..101 | 0 | 0 | | frontend/src/composables/push/usePushLogs.ts | 146 | 1..146 | 0 | 0 | | frontend/src/composables/push/usePushPage.ts | 40 | 1..40 | 0 | 0 | | frontend/src/composables/push/usePushPreview.ts | 104 | 1..104 | 0 | 0 | | frontend/src/composables/push/usePushProgress.ts | 288 | 1..288 | 0 | 0 | | frontend/src/composables/push/usePushServers.ts | 115 | 1..115 | 0 | 0 | | frontend/src/composables/servers/useServerFormDialog.ts | 255 | 1..255 | 0 | 0 | | frontend/src/composables/terminal/termNativeStore.ts | 62 | 1..62 | 0 | 0 | | frontend/src/composables/terminal/types.ts | 69 | 1..69 | 0 | 0 | | frontend/src/composables/terminal/useTerminalCmdBar.ts | 108 | 1..108 | 0 | 0 | | frontend/src/composables/terminal/useTerminalSettings.ts | 54 | 1..54 | 0 | 0 | | frontend/src/composables/useFilesClipboard.ts | 91 | 1..91 | 0 | 0 | | frontend/src/composables/useFilesHotkeys.ts | 79 | 1..79 | 0 | 0 | | frontend/src/composables/useFloatingPanel.ts | 116 | 1..116 | 2 | 0 | | frontend/src/composables/useServerList.ts | 38 | 1..38 | 0 | 0 | | frontend/src/composables/useServerPagination.ts | 61 | 1..61 | 0 | 0 | | frontend/src/composables/useSnackbar.ts | 13 | 1..13 | 0 | 0 | | frontend/src/composables/useTerminalQuickCommands.ts | 73 | 1..73 | 0 | 0 | | frontend/src/composables/useWebSocket.ts | 177 | 1..177 | 0 | 0 | | frontend/src/components/FileDirectoryTree.vue | 316 | 1..316 | 0 | 0 | | frontend/src/components/FileEditorWorkbench.vue | 1041 | 1..1041 | 0 | 0 | | frontend/src/components/FilePermissionDialog.vue | 446 | 1..446 | 0 | 0 | | frontend/src/components/MonacoEditor.vue | 254 | 1..254 | 0 | 0 | | frontend/src/components/ShellHighlightField.vue | 200 | 1..200 | 1 | 0 | | frontend/src/components/StatCardsRow.vue | 67 | 1..67 | 0 | 0 | | frontend/src/components/TerminalQuickCommandsSettings.vue | 210 | 1..210 | 0 | 0 | | frontend/src/components/files/FilesBreadcrumb.vue | 29 | 1..29 | 0 | 0 | | frontend/src/components/files/FilesDialogs.vue | 180 | 1..180 | 0 | 0 | | frontend/src/components/files/FilesList.vue | 279 | 1..279 | 0 | 0 | | frontend/src/components/files/FilesPermissionAlert.vue | 35 | 1..35 | 0 | 0 | | frontend/src/components/files/FilesStatusBar.vue | 24 | 1..24 | 0 | 0 | | frontend/src/components/files/FilesToolbar.vue | 121 | 1..121 | 0 | 0 | | frontend/src/components/push/PushDiagnoseDialog.vue | 71 | 1..71 | 0 | 0 | | frontend/src/components/push/PushHistoryTable.vue | 139 | 1..139 | 0 | 0 | | 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 | | agent.py | 34, 226-227 | FINDING | P2 | 注释写 TTL=1.5×flush,实际 600=600,停 Agent 后 key 可能在 flush 前过期 | | sync_v2.py | 1474-1650 | FINDING | P2 | write/chmod/compress/decompress 未失效 browse ETagBatch4 已覆盖 ops/upload | | heartbeat_flush.py | 18-20 | SAFE | — | 常量与 agent 对齐后由 agent 单一来源 | | self_monitor.py | 102-107 | RISK | P3 | 原仅记录 alert WS;已补 sync WS 计数到 debug 日志 | | files_browse_service.py | 65+ | SAFE | — | 新增 invalidate_browse_parents | | frontend/src/components/push/PushZipUpload.vue | 51 | 1..51 | 0 | 0 | | frontend/src/components/servers/ServerFormDialog.vue | 237 | 1..237 | 0 | 0 | | frontend/src/components/terminal/TerminalArea.vue | 101 | 1..101 | 0 | 0 | | frontend/src/components/terminal/TerminalCmdBar.vue | 109 | 1..109 | 0 | 0 | | frontend/src/components/terminal/TerminalQuickBar.vue | 59 | 1..59 | 0 | 0 | | frontend/src/components/terminal/TerminalServerPicker.vue | 86 | 1..86 | 0 | 0 | | frontend/src/components/terminal/TerminalTabBar.vue | 66 | 1..66 | 0 | 0 | | frontend/src/components/terminal/TerminalToolbar.vue | 108 | 1..108 | 0 | 0 | | frontend/src/App.vue | 456 | 1..456 | 0 | 0 | | frontend/src/api/index.ts | 308 | 1..308 | 2 | 0 | | frontend/src/router/index.ts | 68 | 1..68 | 0 | 0 | | frontend/src/stores/auth.ts | 132 | 1..132 | 0 | 0 | | frontend/src/stores/files.ts | 129 | 1..129 | 0 | 0 | | frontend/src/monaco/initMonaco.ts | 85 | 1..85 | 0 | 0 | | frontend/src/monaco/nexusThemes.ts | 102 | 1..102 | 0 | 0 | | frontend/src/monaco/preloadMonaco.ts | 30 | 1..30 | 0 | 0 | | frontend/src/monaco/setupMonacoEnv.ts | 51 | 1..51 | 0 | 0 | | frontend/src/plugins/index.ts | 19 | 1..19 | 0 | 0 | | frontend/src/plugins/vuetify.ts | 20 | 1..20 | 0 | 0 | | frontend/src/styles/settings.scss | 10 | 1..10 | 0 | 0 | | frontend/src/types/api.ts | 256 | 1..256 | 0 | 0 | | frontend/src/types/global.d.ts | 8 | 1..8 | 0 | 0 | | frontend/src/utils/apiError.ts | 16 | 1..16 | 0 | 0 | | frontend/src/utils/auditLabels.ts | 290 | 1..290 | 0 | 0 | | frontend/src/utils/auditNormalize.ts | 23 | 1..23 | 0 | 0 | | frontend/src/utils/editorLanguage.ts | 196 | 1..196 | 0 | 0 | | frontend/src/utils/fileBrowse.ts | 61 | 1..61 | 0 | 0 | | frontend/src/utils/fileDownload.ts | 12 | 1..12 | 0 | 0 | | frontend/src/utils/fileMode.ts | 128 | 1..128 | 0 | 0 | | frontend/src/utils/filePreload.ts | 141 | 1..141 | 0 | 0 | | frontend/src/utils/fileSort.ts | 57 | 1..57 | 0 | 0 | | frontend/src/utils/pushErrorMessage.ts | 65 | 1..65 | 0 | 0 | | frontend/src/utils/remotePath.ts | 92 | 1..92 | 0 | 0 | | frontend/src/utils/serverSelection.ts | 35 | 1..35 | 0 | 0 | | frontend/src/utils/shellHighlight.ts | 196 | 1..196 | 0 | 0 | | frontend/src/utils/status.ts | 35 | 1..35 | 0 | 0 | | frontend/src/utils/validation.ts | 46 | 1..46 | 0 | 0 | | frontend/src/utils/wsUrl.ts | 23 | 1..23 | 0 | 0 | | frontend/src/main.ts | 28 | 1..28 | 0 | 0 | | web/app/api.js | 214 | 1..214 | 11 | 0 | | web/app/index.html | 14 | 1..14 | 0 | 0 | | web/app/install.html | 730 | 1..730 | 6 | 0 | | web/app/layout.js | 231 | 1..231 | 4 | 0 | | web/app/preview.html | 183 | 1..183 | 0 | 0 | | web/agent/agent.py | 434 | 1..434 | 26 | 0 | | web/agent/agent.sh | 98 | 1..98 | 3 | 0 | | web/app/preview-v3.html | 369 | 1..369 | 1 | 0 | | web/app/preview-v4.html | 359 | 1..359 | 1 | 0 | | web/app/preview-v5.html | 375 | 1..375 | 1 | 0 | | auth_service.py | 239-246 | FINDING | P1 | 已轮换 refresh 不在 Redis 时仅 401,不升 token_version,被盗旧 token 与合法新会话可并存 | | auth_service.py | 597-598 | FINDING | P2 | Redis 异常时 _check_refresh_token 曾返回 False,误拒合法刷新 | | useFilesBrowse.ts | 187-195 | FINDING | P2 | 5s 内命中本地缓存直接 return,跳过后端 ETag,变更后仍显示旧列表 | | auth_jwt.py | 217-226 | SAFE | — | tv 与 DB 严格比对 | | script_execution_flush.py | 19-45 | SAFE | — | flush/stuck 分工清晰;update_status 内 commit | | files.ts | 85-98 | SAFE | — | invalidateCache 与 mutation 联动 | | tests/__init__.py | 0 | 1..0 | 0 | 0 | | tests/acceptance_catalog.py | 64 | 1..64 | 0 | 0 | | tests/conftest.py | 95 | 1..95 | 0 | 0 | | tests/load_test.py | 201 | 1..201 | 20 | 0 | | tests/quick_load.py | 86 | 1..86 | 9 | 0 | | web/agent/config.example.json | 20 | 1..20 | 0 | 0 | | web/agent/install.sh | 237 | 1..237 | 43 | 0 | | web/agent/uninstall.sh | 115 | 1..115 | 20 | 0 | | tests/test_agent_heartbeat_ttl.py | 9 | 1..9 | 1 | 0 | | tests/test_api.py | 279 | 1..279 | 42 | 0 | | tests/test_auth_refresh_reuse.py | 60 | 1..60 | 0 | 0 | | tests/test_editor_write_conflict.py | 163 | 1..163 | 13 | 0 | | tests/test_file_permissions.py | 75 | 1..75 | 0 | 0 | | tests/test_files_browse_etag.py | 43 | 1..43 | 0 | 0 | | tests/test_files_elevation.py | 109 | 1..109 | 10 | 0 | | tests/test_full_site_api.py | 160 | 1..160 | 23 | 0 | | tests/test_nexus_v6.py | 214 | 1..214 | 11 | 0 | | tests/test_posix_paths.py | 62 | 1..62 | 0 | 0 | | tests/test_remote_path_validation.py | 48 | 1..48 | 0 | 0 | | tests/test_retry_runner_outcome.py | 58 | 1..58 | 0 | 0 | | tests/test_schedule_runner_once.py | 21 | 1..21 | 0 | 0 | | tests/test_schema_path_validators.py | 61 | 1..61 | 0 | 0 | | tests/test_security_unit.py | 229 | 1..229 | 12 | 0 | | tests/test_step0_infrastructure.py | 157 | 1..157 | 7 | 0 | | tests/test_step1to5_features.py | 167 | 1..167 | 4 | 0 | | tests/test_sync_batch_id.py | 24 | 1..24 | 0 | 0 | | tests/test_sync_error_message.py | 39 | 1..39 | 0 | 0 | | tests/test_sync_websocket.py | 44 | 1..44 | 1 | 0 | | tests/test_text_io.py | 43 | 1..43 | 1 | 0 | | tests/test_unix_ls.py | 21 | 1..21 | 0 | 0 | | tests/test_upload_staging_cleanup.py | 64 | 1..64 | 1 | 0 | | deploy/check_shell_eol.sh | 32 | 1..32 | 0 | 0 | | deploy/db_backup.sh | 103 | 1..103 | 27 | 0 | | deploy/deploy-frontend.sh | 60 | 1..60 | 3 | 0 | | deploy/gate_log.py | 57 | 1..57 | 4 | 0 | | deploy/health_monitor.sh | 70 | 1..70 | 14 | 0 | | deploy/install.sh | 526 | 1..526 | 110 | 0 | | deploy/migrations/001_indexes.sql | 24 | 1..24 | 0 | 0 | | deploy/nexus.conf | 32 | 1..32 | 0 | 0 | | deploy/nginx_http.conf | 79 | 1..79 | 0 | 0 | | deploy/nginx_https.conf | 113 | 1..113 | 0 | 0 | | deploy/pre_deploy_check.sh | 299 | 1..299 | 0 | 0 | | deploy/prune_frontend_assets.py | 149 | 1..149 | 6 | 0 | | deploy/run_test_api_on_server.sh | 6 | 1..6 | 0 | 0 | | deploy/uninstall.sh | 145 | 1..145 | 23 | 0 | | deploy/upgrade.sh | 130 | 1..130 | 22 | 0 | | deploy/verify_login.py | 55 | 1..55 | 9 | 0 | | server/api/servers.py | 1742 | 1..1742 | 68 | 0 | | scripts/_browse_test.py | 37 | 1..37 | 8 | 0 | | scripts/bootstrap_database.py | 118 | 1..118 | 13 | 0 | | scripts/cache-node20-windows.ps1 | 28 | 1..28 | 0 | 0 | | scripts/check_text_eol.py | 111 | 1..111 | 11 | 0 | | scripts/check_worktree_eol.py | 107 | 1..107 | 7 | 0 | | scripts/generate_bug_scan_registry.py | 555 | 1..555 | 8 | 0 | | scripts/grant_nexus_local.sql | 9 | 1..9 | 0 | 0 | | scripts/linux_mcp_mysql.sh | 37 | 1..37 | 0 | 0 | | scripts/normalize_worktree_lf.sh | 68 | 1..68 | 0 | 0 | | scripts/proxy-env.sh | 16 | 1..16 | 0 | 0 | | scripts/proxychains-docker.conf | 9 | 1..9 | 0 | 0 | | scripts/run_full_acceptance.sh | 24 | 1..24 | 1 | 0 | | scripts/run_full_e2e.sh | 13 | 1..13 | 1 | 0 | | scripts/run_nexus_acceptance.py | 567 | 1..567 | 36 | 0 | | scripts/seed_local_admin.py | 75 | 1..75 | 7 | 0 | | scripts/start-dev.sh | 58 | 1..58 | 0 | 0 | | scripts/sync_frontend_vendor.py | 180 | 1..180 | 18 | 0 | | scripts/sync_mysql_mcp_env.py | 156 | 1..156 | 5 | 0 | | scripts/unlock_login_lockout.py | 114 | 1..114 | 9 | 0 | | scripts/with-proxy.sh | 9 | 1..9 | 0 | 0 | | scripts/wsl_check_mysql.py | 66 | 1..66 | 13 | 0 | | scripts/wsl_ensure_venv.sh | 19 | 1..19 | 7 | 0 | | scripts/wsl_install_node20.sh | 117 | 1..117 | 1 | 0 | | scripts/wsl_integration_smoke.sh | 76 | 1..76 | 7 | 0 | | scripts/wsl_mcp_mysql.sh | 28 | 1..28 | 0 | 0 | | scripts/wsl_show_grants.py | 45 | 1..45 | 6 | 0 | | scripts/wsl_start_dev.sh | 21 | 1..21 | 2 | 0 | | .dockerignore | 29 | 1..29 | 0 | 0 | | Dockerfile | 29 | 1..29 | 0 | 0 | | docker/.env.example | 18 | 1..18 | 0 | 0 | | docker/README.md | 56 | 1..56 | 0 | 0 | | docker/entrypoint.sh | 72 | 1..72 | 0 | 0 | | docker/generate_env.py | 52 | 1..52 | 5 | 0 | | docker/sync_root_env.py | 85 | 1..85 | 2 | 0 | | frontend/package.json | 47 | 1..47 | 0 | 0 | | frontend/vite.config.mts | 54 | 1..54 | 0 | 0 | | requirements-dev.txt | 18 | 1..18 | 0 | 0 | | requirements.txt | 18 | 1..18 | 0 | 0 | | ruff.toml | 41 | 1..41 | 0 | 0 | | server/api/sync_v2.py | 1666 | 1..1666 | 84 | 0 | | server/api/auth.py | 375 | 1..375 | 14 | 0 | | server/api/settings.py | 1396 | 1..1396 | 38 | 0 | | server/api/terminal.py | 238 | 1..238 | 14 | 0 | | server/api/websocket.py | 552 | 1..552 | 34 | 0 | | server/api/webssh.py | 394 | 1..394 | 33 | 0 |