文件保存冲突且新旧版本颠倒

trae IDE 自动修改文件时频繁出现"文件的内容较新"保存冲突,且对比视图中新旧版本颠倒

问题现象

在 Windows 和 Linux 上都出现过:当 trae IDE 的 agent 自主运行并修改文件时(用户并未主动在编辑器中打开该文件),频繁弹出"无法保存’XXX.md’: 文件的内容较新。请将您的版本与文件内容进行比较,或用您的更改覆盖文件内容"的错误。

更严重的是,在弹出的对比功能中,版本判断出现颠倒——LLM 新修改的内容被显示为"旧版",而磁盘上原先的版本却被显示为"新版"。这导致用户难以判断该保留哪一版,文件修改反复不成功,很多时候还会出现修改内容遗漏丢失。

复现步骤

  1. 让 trae IDE 的 agent 执行一个涉及多次修改同一文件的任务(例如连续编辑同一个 markdown 文档多次)。
  2. 用户不要主动在编辑器中打开该文件。
  3. 观察是否出现"文件的内容较新"保存冲突错误。
  4. 若出现,打开对比视图,观察新版/旧版的标注是否正确。
    期望行为
  • 当用户未主动打开文件时,agent 对文件的修改应直接生效,不应触发"文件内容较新"的冲突保护(因为不存在用户侧未保存的修改需要保护)。

  • 即使触发冲突,对比视图中"新版/旧版"的标注应当正确:agent 新修改的内容应为新版,磁盘原内容应为旧版。
    实际行为

  • agent 修改文件时频繁触发保存冲突,即使该文件从未被用户主动打开。

  • 对比视图中版本标注颠倒:新修改的内容被标为旧版,原内容被标为新版。

  • 文件修改反复不成功,部分修改内容遗漏丢失。
    影响

  • 文件修改反复失败,agent 任务卡住或被迫重试,消耗大量时间和积分。

  • 修改内容容易遗漏丢失,破坏工作成果的完整性,且这种丢失往往是隐性的,不易及时发现。

  • 颠倒的版本标注严重误导用户判断,增加心智负担,用户不得不逐字节核对两版差异。
    环境信息

  • 操作系统:Windows 11、Linux(均复现)

  • 问题平台:trae IDE
    可能原因推测(供参考)

疑似 trae IDE 的文件状态管理存在以下问题之一:

  • 编辑器组件对文件修改时间的判断使用了 UTC 时间戳,而 agent 写入使用了本地时间戳(或反之),导致时间比较结果颠倒。该问题可能与"LLM 获取到 UTC 时间而非本地时间"的缺陷同源。

  • 文件监听器(file watcher)事件顺序异常,导致编辑器误判磁盘文件比缓冲区"更新"。

  • 当文件未被用户打开时,编辑器仍持有过期的文件快照,与 agent 的写入产生冲突。
    建议

  • 当文件未被用户主动打开时,agent 的写入应直接生效,不应触发冲突保护。

  • 修正对比视图中"新版/旧版"的判断逻辑,确保与实际修改时间一致。

  • 统一内部时间戳的时区处理,避免因 UTC/本地时间混用导致版本判断颠倒。

关于你提到的 Agent 自动修改文件触发保存冲突以及对比视图中新旧版本颠倒的问题,当前帖子里的信息还不足以形成可靠结论。

为了更准确地定位问题,请你在本帖补充以下信息:

  • TRAE IDE 版本(可从菜单栏的 帮助 → 关于 获取具体版本号)
  • 操作系统(你已经提供了 Windows 11 和 Linux,非常感谢)
  • 复现步骤(你已经提供了详细的步骤,非常清晰)
  • 出现冲突提示以及对比视图中版本标注颠倒的截图
  • 相关的错误日志或 AI Trace 信息(如有)

windows版本3.3.83。这个问题已经存在很久了,不只是这个版本才有

image
不太建议这么使用,一般是什么需求场景呢?需要同时修改一个md

这种用法很正常啊,又不是我故意让他反复修改,而是一些工作自然会涉及这一过程。就比如我让llm记录下他工作的过程,那么每过一段时间,它就会把工作过程记录到同一个文档里。这个问题反馈的bug在linux和windows上都还有,直到现在都没解决