fix: preserve images when editing messages with checkpoint #5162
+12
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
Fixes #3489
When editing an already sent message and attaching an image to it, the image was being silently dropped and not sent with the edited text. This bug only occurred when a checkpoint existed after the message being edited, causing the user to see the "Proceed" or "No, edit message only" dialog.
The issue was reported in #3489.
Implementation
The bug was in
webview-ui/src/App.tsx. When sending theeditMessageConfirmmessage to the backend, there were two code paths:CheckpointRestoreDialog) - Theimagesfield was missingEditMessageDialog) - Theimagesfield was correctly includedThe fix adds the missing
images: editMessageDialogState.imagesfield to the checkpoint dialog'sonConfirmhandler, ensuring images are preserved in both scenarios.onConfirm={(restoreCheckpoint: boolean) => { vscode.postMessage({ type: "editMessageConfirm", messageTs: editMessageDialogState.messageTs, text: editMessageDialogState.text, restoreCheckpoint, + images: editMessageDialogState.images, })Screenshots
How to Test
[Image]tagAlternative verification:
[Image]indicator should be present in the exported.mdfile