perf: reduce streaming render cost and refresh activity page on demand

- Segment streaming Markdown so completed blocks are reused and only the growing tail is re-parsed; fall back to whole-document parsing for document-wide constructs
- Memoize conversation sidebar rows and cache per-conversation derived activity, ordering and pending approvals
- Activity page loads on entry, refreshes every 15 s while visible, and has a single header refresh button
- Include pending settings, model download source, device sharing and knowledge gateway changes in the working tree
- Add Electron streaming input benchmark and regression tests
This commit is contained in:
mesalogo
2026-10-01 21:49:09 +08:00
parent 016f987026
commit c8f327fc4e
75 changed files with 3042 additions and 905 deletions
+4
View File
@@ -259,6 +259,7 @@ export const defaultApplicationSettings: ApplicationSettings = {
remoteProjectsEnabled: false,
applicationNavigation: defaultApplicationNavigation,
localInferenceEnabled: true,
deviceSharingEnabled: false,
magicNotesEnabled: true,
heartbeatEnabled: false,
heartbeatReportTimeoutSeconds: defaultSupervisionTimeoutSeconds,
@@ -297,6 +298,7 @@ export class ApplicationSettingsStore {
| 'version'
| 'applicationNavigation'
| 'localInferenceEnabled'
| 'deviceSharingEnabled'
| 'heartbeatEnabled'
| 'magicNoteCanvasPageCount'
> & {
@@ -537,6 +539,7 @@ export class ApplicationSettingsStore {
remoteProjectsEnabled: stored.remoteProjectsEnabled,
applicationNavigation: stored.applicationNavigation,
localInferenceEnabled: stored.localInferenceEnabled,
deviceSharingEnabled: stored.deviceSharingEnabled,
magicNotesEnabled: stored.magicNotesEnabled,
heartbeatEnabled: stored.heartbeatEnabled ?? false,
heartbeatReportTimeoutSeconds: stored.heartbeatReportTimeoutSeconds ?? defaultSupervisionTimeoutSeconds,
@@ -584,6 +587,7 @@ export class ApplicationSettingsStore {
remoteProjectsEnabled: next.remoteProjectsEnabled,
applicationNavigation: next.applicationNavigation,
localInferenceEnabled: next.localInferenceEnabled,
deviceSharingEnabled: next.deviceSharingEnabled,
magicNotesEnabled: next.magicNotesEnabled,
heartbeatEnabled: next.heartbeatEnabled ?? false,
heartbeatReportTimeoutSeconds: next.heartbeatReportTimeoutSeconds ?? defaultSupervisionTimeoutSeconds,