Copilot Agent sometimes replaces contents of one file with contents of another file
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 28/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- macos, swift
- 领域
- desktop-dev, devtools
调研方向
首先查看链接的日志,并将聊天 UI 的差异查看器与 Xcode's git view 中显示的更改进行比较。重点关注跨多个文件的 Agent 编辑,以及输入“continue”后的行为;完成的标准是复现该问题,并确保每个文件都接收到其预期的更改,而不会被另一个文件的内容替换。
由索引模型根据 Issue 内容生成。
描述
Describe the bug
Sometimes when Copilot Agent mode works on a more complicated task, it can happen that the contents of one file are replaced with the contents of another file.
One example: Say we have some files A, B and C that Copilot tries to edit.
Copilot successfully suggests edits for all three files, but looking at the changes actually applied to Xcode only files A and B have the correct changes applied, while C now also contains the same code as for example B.
Versions
- Copilot for Xcode: 0.44.0
- Xcode: 26.0.1
- macOS: 26.1 (happend on 26.0 as well)
Steps to reproduce
- Ask an Agent to perform some more complicated changes in a non-small code base.
- Watch as the changes are applied incorrectly.
Screenshots
correct edits in the chat ui diff viewer, but incorrectly applied when viewed from the Xcode git view:
after typing continue, the previous changes are applied automatically and the new changes are applied incorrectly once again:
Logs
Here are the logs from the time frame I've tried to reproduce the issue.
The stuff further down is probably more relevant, as I wasn't immediately able to reproduce it.
However, I don't really know what part of these logs actually contains useful information.
Additional context
Interestingly, opening the suggested changes from the chat ui (see example above), the changes for file A, B and C are valid.
They just seem to be applied incorrectly.
Also, the agent was stopped because it reached the maximum attempts limit.
Typing continue made the situation even weirder:
Staying with the example above, where previously there suggested changes were displayed in the chat ui, now only one change is shown.
Applying this change correctly, the whole issue described above would've been resolved.
However, this change was applied incorrectly as well:
actual edits before "continue":
A -> edited A
B -> edited B
C -> edited B
actual edits after "continue":
A -> edited A
B -> edited B -> edited A
C -> edited B
Please note that this A, B, C example might not 100% accurately describe the actually displayed behavior; it's just supposed to roughly illustrate the problem
I was only able to reproduce this in a more complex codebase (i.e. in my own project, where the code can get quite messy and complex in a few places).
When trying to reproduce the issue I used Grok Code Fast 1, I don't know which model I used when I first discovered this problem.
I tried to reproduce the issue in the Simple SwiftUI project, but I had no success.
However, I was able to reproduce the problem in my own project (this is not open source so I can't link to the code here).
I didn't have the time to try it on another larger project though.
- 主要语言
- Swift
- 星标
- 6.3k
- 派生
- 2k
- 平均合并
- 3 天 21 小时
- 30 天内合并 PR
- 2
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/CopilotForXcode 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 85/100
github/CopilotForXcode#181 · 2 个 reaction ·
-
Add ability to attach Copilot window only to Xcode projects/workspaces, ignoring standalone files 未关闭
难度 3/5 1-2 天 新手友好度 68/100
github/CopilotForXcode#945 ·
-
难度 2/5 1-3 小时 新手友好度 35/100
github/CopilotForXcode#943 ·
-
难度 5/5 一周以上 新手友好度 10/100
github/CopilotForXcode#936 · 2 条评论 ·
-
难度 5/5 一周以上 新手友好度 10/100
github/CopilotForXcode#934 ·
查看 github/CopilotForXcode 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
maxgoedjen/secretive#840 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
manaflow-ai/cmux#13763 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
openwallet-foundation/multipaz#2028 ·