Spaces:
Running
Running
fix: improve render performance in app
Browse files
src/routes/conversation/[id]/+page.svelte
CHANGED
@@ -242,7 +242,6 @@
|
|
242 |
);
|
243 |
}
|
244 |
|
245 |
-
messages = [...messages];
|
246 |
const userMessage = messages.find((message) => message.id === messageId);
|
247 |
const messageToWriteTo = messages.find((message) => message.id === messageToWriteToId);
|
248 |
if (!messageToWriteTo) {
|
@@ -284,17 +283,24 @@
|
|
284 |
update.token = update.token.replaceAll("\0", "");
|
285 |
}
|
286 |
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
|
289 |
if (update.type === MessageUpdateType.Stream && !$settings.disableStream) {
|
290 |
messageToWriteTo.content += update.token;
|
291 |
pending = false;
|
292 |
-
messages = [...messages];
|
293 |
-
} else if (
|
294 |
-
update.type === MessageUpdateType.WebSearch ||
|
295 |
-
update.type === MessageUpdateType.Tool
|
296 |
-
) {
|
297 |
-
messages = [...messages];
|
298 |
} else if (
|
299 |
update.type === MessageUpdateType.Status &&
|
300 |
update.status === MessageUpdateStatus.Error
|
@@ -315,17 +321,13 @@
|
|
315 |
...(messageToWriteTo.files ?? []),
|
316 |
{ type: "hash", value: update.sha, mime: update.mime, name: update.name },
|
317 |
];
|
318 |
-
messages = [...messages];
|
319 |
} else if (update.type === MessageUpdateType.Reasoning) {
|
320 |
if (!messageToWriteTo.reasoning) {
|
321 |
messageToWriteTo.reasoning = "";
|
322 |
}
|
323 |
if (update.subtype === MessageReasoningUpdateType.Stream) {
|
324 |
messageToWriteTo.reasoning += update.token;
|
325 |
-
} else {
|
326 |
-
messageToWriteTo.updates = [...(messageToWriteTo.updates ?? []), update];
|
327 |
}
|
328 |
-
messages = [...messages];
|
329 |
}
|
330 |
}
|
331 |
} catch (err) {
|
|
|
242 |
);
|
243 |
}
|
244 |
|
|
|
245 |
const userMessage = messages.find((message) => message.id === messageId);
|
246 |
const messageToWriteTo = messages.find((message) => message.id === messageToWriteToId);
|
247 |
if (!messageToWriteTo) {
|
|
|
283 |
update.token = update.token.replaceAll("\0", "");
|
284 |
}
|
285 |
|
286 |
+
// dont write updates for reasoning stream and normal stream to reduce render load
|
287 |
+
// but handle the rest
|
288 |
+
|
289 |
+
// Skip storing high-frequency updates to reduce render load
|
290 |
+
const isHighFrequencyUpdate =
|
291 |
+
(update.type === MessageUpdateType.Reasoning &&
|
292 |
+
update.subtype === MessageReasoningUpdateType.Stream) ||
|
293 |
+
update.type === MessageUpdateType.Stream ||
|
294 |
+
(update.type === MessageUpdateType.Status &&
|
295 |
+
update.status === MessageUpdateStatus.KeepAlive);
|
296 |
+
|
297 |
+
if (!isHighFrequencyUpdate) {
|
298 |
+
messageToWriteTo.updates = [...(messageToWriteTo.updates ?? []), update];
|
299 |
+
}
|
300 |
|
301 |
if (update.type === MessageUpdateType.Stream && !$settings.disableStream) {
|
302 |
messageToWriteTo.content += update.token;
|
303 |
pending = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
} else if (
|
305 |
update.type === MessageUpdateType.Status &&
|
306 |
update.status === MessageUpdateStatus.Error
|
|
|
321 |
...(messageToWriteTo.files ?? []),
|
322 |
{ type: "hash", value: update.sha, mime: update.mime, name: update.name },
|
323 |
];
|
|
|
324 |
} else if (update.type === MessageUpdateType.Reasoning) {
|
325 |
if (!messageToWriteTo.reasoning) {
|
326 |
messageToWriteTo.reasoning = "";
|
327 |
}
|
328 |
if (update.subtype === MessageReasoningUpdateType.Stream) {
|
329 |
messageToWriteTo.reasoning += update.token;
|
|
|
|
|
330 |
}
|
|
|
331 |
}
|
332 |
}
|
333 |
} catch (err) {
|