1.6 KiB
1.6 KiB
Changelog — BUG Batch 4:推送进度 WS / 浏览缓存 / 心跳 flush(2026-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_id(12 位 hex,可选) |
server/application/services/sync_engine_v2.py |
接受客户端 batch_id |
server/api/sync_v2.py |
透传 batch_id;file-ops/clipboard 后 invalidate_browse_cache |
server/background/heartbeat_flush.py |
单 session 批量提交;rowcount 统计 |
frontend/src/composables/push/usePushProgress.ts |
先连 WS 再 POST;HTTP 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 3:
docs/changelog/2026-06-04-bug-batch3-retry-sync-stats.md