Add delete stopped streaming messages

This commit is contained in:
dwrz
2026-06-29 18:52:01 +00:00
parent ab24f07d5c
commit be4d26a54f

View File

@@ -1508,6 +1508,8 @@ class Odidere {
this.isAutoScrollEnabled = true; this.isAutoScrollEnabled = true;
this.currentController = new AbortController(); this.currentController = new AbortController();
let streamingMessage = null;
try { try {
const hasNewInput = const hasNewInput =
text || this.attachments.length > 0 || this.locationData; text || this.attachments.length > 0 || this.locationData;
@@ -1572,7 +1574,6 @@ class Odidere {
// Stash assistant messages with tool_calls until their results arrive. // Stash assistant messages with tool_calls until their results arrive.
let pendingTools = null; let pendingTools = null;
let streamingMessage = null;
const streamingMeta = (usage, timings) => { const streamingMeta = (usage, timings) => {
const meta = {}; const meta = {};
if (voice) meta.voice = voice; if (voice) meta.voice = voice;
@@ -1787,6 +1788,25 @@ class Odidere {
} catch (e) { } catch (e) {
if (e.name === 'AbortError') { if (e.name === 'AbortError') {
console.debug('request aborted'); console.debug('request aborted');
if (streamingMessage) {
const $msg = streamingMessage.$el;
const $deleteBtn = document.createElement('button');
$deleteBtn.type = 'button';
$deleteBtn.className =
'message__action-btn message__action-btn--delete';
$deleteBtn.dataset.action = 'delete';
$deleteBtn.setAttribute('aria-label', 'Delete message');
$deleteBtn.innerHTML = `<svg class="icon"><use href="${ICONS_URL}#trash"></use></svg>`;
$deleteBtn.addEventListener('click', (e) =>
this.#handleDeleteClick(e, streamingMessage.message.id),
);
$msg
.querySelector('.message__actions-buttons')
.insertBefore(
$deleteBtn,
$msg.querySelector('.message__actions-buttons').firstChild,
);
}
return; return;
} }
console.error('failed to send request:', e); console.error('failed to send request:', e);