Spaces:
Paused
Paused
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) {
|