Files
Nexus/docs/changelog/2026-06-04-bug-batch4-push-etag-heartbeat.md
T
2026-07-08 22:31:31 +08:00

1.6 KiB
Raw Blame History

Changelog — BUG Batch 4:推送进度 WS / 浏览缓存 / 心跳 flush2026-06-04

摘要

修复推送页 WebSocket 进度永远收不到、远程文件操作后目录 ETag 304 陈旧、以及心跳 flush 每服务器单独事务的三处问题。

动机

  • POST /sync/files 阻塞到推送结束,原前端在 POST 返回后才连 /ws/sync,所有 sync_progress 已发完。
  • file-ops / 剪贴板变更远程目录后未失效服务端 browse ETag 缓存。
  • heartbeat_flush 对每台服务器 commit() 一次,且对已删除服务器的空 UPDATE 仍计入成功。

变更

文件 说明
server/api/schemas.py SyncFiles.batch_id12 位 hex,可选)
server/application/services/sync_engine_v2.py 接受客户端 batch_id
server/api/sync_v2.py 透传 batch_idfile-ops/clipboard 后 invalidate_browse_cache
server/background/heartbeat_flush.py 单 session 批量提交;rowcount 统计
frontend/src/composables/push/usePushProgress.ts 先连 WS 再 POSTHTTP results 兜底
tests/test_sync_batch_id.py batch_id 校验单测
docs/reports/audit-bug-line-walk-2026-06-04-batch4.md BUG Batch 4 报告

迁移 / 重启

  • 需重启 nexus;前端需重新 vite build 后部署 web/app/
  • 无 DB 迁移。

验证

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
cd frontend && npm run type-check

关联

  • Batch 3docs/changelog/2026-06-04-bug-batch3-retry-sync-stats.md