Restore file to original content when rejecting file recreated by agent (#29264)

Release Notes:

- Fixed a bug that could sometimes cause a file to be deleted when
rejecting an agent change.
This commit is contained in:
Antonio Scandurra
2025-04-23 09:42:43 +00:00
committed by GitHub
parent 5e31d86f1f
commit 55ea481707
11 changed files with 77 additions and 63 deletions
+1 -1
View File
@@ -988,7 +988,7 @@ mod tests {
.await
.unwrap();
cx.update(|_, cx| {
action_log.update(cx, |log, cx| log.buffer_read(buffer.clone(), cx));
action_log.update(cx, |log, cx| log.track_buffer(buffer.clone(), cx));
buffer.update(cx, |buffer, cx| {
buffer
.edit(
+4 -10
View File
@@ -770,24 +770,18 @@ impl Thread {
for ctx in &new_context {
match ctx {
AssistantContext::File(file_ctx) => {
log.buffer_added_as_context(file_ctx.context_buffer.buffer.clone(), cx);
log.track_buffer(file_ctx.context_buffer.buffer.clone(), cx);
}
AssistantContext::Directory(dir_ctx) => {
for context_buffer in &dir_ctx.context_buffers {
log.buffer_added_as_context(context_buffer.buffer.clone(), cx);
log.track_buffer(context_buffer.buffer.clone(), cx);
}
}
AssistantContext::Symbol(symbol_ctx) => {
log.buffer_added_as_context(
symbol_ctx.context_symbol.buffer.clone(),
cx,
);
log.track_buffer(symbol_ctx.context_symbol.buffer.clone(), cx);
}
AssistantContext::Selection(selection_context) => {
log.buffer_added_as_context(
selection_context.context_buffer.buffer.clone(),
cx,
);
log.track_buffer(selection_context.context_buffer.buffer.clone(), cx);
}
AssistantContext::FetchedUrl(_)
| AssistantContext::Thread(_)