Skip to content

Commit f1d700e

Browse files
committed
Propagate the created_at timestamp through the response preview process to correctly handle history items during acceptance or rejection
1 parent 6af2f48 commit f1d700e

4 files changed

Lines changed: 17 additions & 7 deletions

File tree

‎packages/vscode/src/commands/apply-chat-response-command/utils/preview/preview.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ export const preview = async (params: {
115115
params.panel_provider.send_message({
116116
command: 'RESPONSE_PREVIEW_STARTED',
117117
items: items_for_preview,
118-
raw_instructions: params.raw_instructions
118+
raw_instructions: params.raw_instructions,
119+
created_at: params.created_at
119120
})
120121
}
121122

‎packages/vscode/src/views/panel/frontend/Panel.tsx‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export const Panel = () => {
4646
selected_history_item_created_at,
4747
set_selected_history_item_created_at,
4848
response_history,
49+
preview_item_created_at,
4950
set_response_history,
5051
workspace_folder_count,
5152
is_connected,
@@ -309,16 +310,18 @@ export const Panel = () => {
309310
footer_slot={
310311
<UiResponsePreviewFooter
311312
on_reject={() => {
312-
set_response_history((prev) =>
313-
prev.filter(
314-
(i) => i.created_at != selected_history_item_created_at
313+
if (preview_item_created_at) {
314+
set_response_history((prev) =>
315+
prev.filter(
316+
(i) => i.created_at != preview_item_created_at
317+
)
315318
)
316-
)
319+
}
317320
set_selected_history_item_created_at(undefined)
318321
post_message(vscode, {
319322
command: 'RESPONSE_PREVIEW',
320323
files: [],
321-
created_at: selected_history_item_created_at
324+
created_at: preview_item_created_at
322325
})
323326
}}
324327
on_accept={() => {
@@ -330,7 +333,7 @@ export const Panel = () => {
330333
post_message(vscode, {
331334
command: 'RESPONSE_PREVIEW',
332335
files: accepted_files,
333-
created_at: selected_history_item_created_at
336+
created_at: preview_item_created_at
334337
})
335338
}}
336339
is_accept_disabled={

‎packages/vscode/src/views/panel/frontend/hooks/use-panel.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ export const use_panel = (vscode: any) => {
4444
selected_history_item_created_at,
4545
set_selected_history_item_created_at
4646
] = useState<number>()
47+
const [preview_item_created_at, set_preview_item_created_at] =
48+
useState<number>()
4749
const [response_history, set_response_history] = useState<
4850
ResponseHistoryItem[]
4951
>([])
@@ -139,6 +141,7 @@ export const use_panel = (vscode: any) => {
139141
} else if (message.command == 'RESPONSE_PREVIEW_STARTED') {
140142
set_items_to_review(message.items)
141143
set_raw_instructions(message.raw_instructions)
144+
set_preview_item_created_at(message.created_at)
142145
} else if (message.command == 'UPDATE_FILE_IN_REVIEW') {
143146
set_items_to_review((current_items) => {
144147
const items = current_items ?? []
@@ -166,6 +169,7 @@ export const use_panel = (vscode: any) => {
166169
} else if (message.command == 'RESPONSE_PREVIEW_FINISHED') {
167170
set_items_to_review(undefined)
168171
set_raw_instructions(undefined)
172+
set_preview_item_created_at(undefined)
169173
} else if (message.command == 'WORKSPACE_STATE') {
170174
set_workspace_folder_count(message.folder_count)
171175
} else if (message.command == 'SHOW_PROGRESS') {
@@ -332,6 +336,7 @@ export const use_panel = (vscode: any) => {
332336
selected_history_item_created_at,
333337
set_selected_history_item_created_at,
334338
response_history,
339+
preview_item_created_at,
335340
set_response_history,
336341
workspace_folder_count,
337342
is_connected,

‎packages/vscode/src/views/panel/types/messages.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,7 @@ export interface ResponsePreviewStartedMessage extends BaseMessage {
540540
command: 'RESPONSE_PREVIEW_STARTED'
541541
items: ItemInPreview[]
542542
raw_instructions?: string
543+
created_at?: number
543544
}
544545

545546
export interface ResponsePreviewFinishedMessage extends BaseMessage {

0 commit comments

Comments
 (0)