Files
Nexus/docs/changelog/2026-06-04-bug-batch5-agent-etag.md
T
Nexus Deploy a2ae74d582 release: BUG fixes batch 1-6, full bug scan docs, Ubuntu/Linux dev
- Backend: auth refresh reuse, schedule/retry/sync/agent/files fixes
- Frontend: push WS, files ETag browse, vite build assets
- Docs: audit/changelog, production deploy gate, bug scan registry B7-77
- Deploy: deploy-production.sh, prune assets, gate logs
2026-06-04 14:01:14 +08:00

1.4 KiB
Raw Blame History

Changelog — BUG Batch 5:心跳 TTL / 远程写 ETag2026-06-04

摘要

将 Agent 心跳 Redis TTL 调整为 flush 间隔的 1.5 倍,并补全远程写/chmod/压缩/解压后的 browse ETag 失效。

动机

  • 注释要求 TTL 大于 10min flush,但 REDIS_KEY_EXPIREFLUSH_INTERVAL 同为 600s,停 Agent 后 key 可能先过期。
  • Batch 4 仅覆盖 file-ops/upload/clipboard,写文件与 chmod 等仍会导致目录列表 304 陈旧。

变更

文件 说明
server/api/agent.py REDIS_KEY_EXPIRE = int(FLUSH_INTERVAL * 1.5)
server/background/heartbeat_flush.py 移除重复 TTL 常量,注释指向 agent
server/application/services/files_browse_service.py invalidate_browse_parents()
server/api/sync_v2.py write/chmod/compress/decompress 后失效父目录缓存
server/background/self_monitor.py debug 日志增加 ws_sync_clients
tests/test_agent_heartbeat_ttl.py TTL > flush 断言
tests/test_files_browse_etag.py invalidate_browse_parents 单测

迁移 / 重启

  • 需重启 nexus
  • 无 DB 迁移;已有 Redis key 在下次心跳时刷新 TTL。

验证

ruff check server/api/agent.py server/api/sync_v2.py
pytest tests/test_agent_heartbeat_ttl.py tests/test_files_browse_etag.py tests/ -q

关联

  • Batch 4docs/changelog/2026-06-04-bug-batch4-push-etag-heartbeat.md