Files
Nexus/docs/archive/audits/2026-06-04-line-walk/audit-bug-line-walk-2026-06-04-batch4.md
T
Nexus Deploy 0100ab2582 docs: consolidate archive, SSOT guide, and agent entry stubs
Move line-walk/delta/phase2/frontend audits and legacy memory into
docs/archive/, add functional development SSOT, thin AGENTS/CLAUDE stubs,
and regenerate changelog/audit indexes via consolidate_docs.py.
2026-06-04 23:01:03 +08:00

2.9 KiB
Raw Blame History

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

标准: docs/project/line-walk-audit-standard.md · 八类仅列 BUG

范围(5 文件,全文 Read

文件 N Read
server/api/sync_v2.py file-ops / browse / files 125280, 7390
server/api/files.py 78 GET browse + ETag
server/background/heartbeat_flush.py 97 197
frontend/src/composables/push/usePushProgress.ts 289 全流程
server/api/schemas.py SyncFiles batch_id

Step 3 规则扫描(BUG 相关)

文件 命中
sync_v2.py file-ops 后 ETag、batch_id
files.py 304 缓存与变更一致性
heartbeat_flush.py 每 key 一 session、孤儿 key
usePushProgress.ts WS 与 POST 时序
schemas.py batch_id 校验

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
files.py 39-77 SAFE 只读 browse;失效由 mutation 侧负责
sync_v2.py 73-90 SAFE 同步 API 本身无 ETag

FINDING 列表

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

现象/sync/files 在服务端同步执行完毕才返回,客户端却在返回后才连接 /ws/sync,实时 sync_progress 全部错过;界面长期 pending 直至 300s 超时。

修复:客户端预生成 batch_id → 等待 WS onopen → POST 携带 batch_id;响应 results 作兜底合并。

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

现象:删除/重命名/mkdir/剪贴板后 GET browse 仍可能 304。

修复invalidate_browse_cache(server_id, parent_dir)

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

现象2000 台时 2000 次 commit;已删服务器 UPDATE 0 行仍计入 flushed。

修复:单 session 批量 UPDATE + rowcount 统计。


Step 7 统计

usePushProgress.ts        1 FINDING(已修)
sync_v2.py                1 FINDING(已修)
heartbeat_flush.py        1 FINDING(已修)
files.py                    0

Step 8 DoD

  • 5 文件覆盖
  • Closure 全表
  • 3 项已修 + pytest

验证

ruff check server/api/sync_v2.py server/background/heartbeat_flush.py server/api/schemas.py
pytest tests/test_sync_batch_id.py tests/ -q --tb=no
cd frontend && npm run type-check

Changelog: docs/changelog/2026-06-04-bug-batch4-push-etag-heartbeat.md

下一批(BUG

  • server/api/sync_v2.py 上传/远程写文件路径
  • server/background/self_monitor.py
  • Agent 心跳与 Redis TTL 一致性抽测