diff --git a/src/memory/manager.embedding-batches.test.ts b/src/memory/manager.embedding-batches.test.ts index 9fe7113897..0bc9e56a11 100644 --- a/src/memory/manager.embedding-batches.test.ts +++ b/src/memory/manager.embedding-batches.test.ts @@ -145,6 +145,7 @@ describe("memory embedding batches", () => { }); expect(updates.length).toBeGreaterThan(0); + expect(updates.some((update) => update.label?.includes("/"))).toBe(true); const last = updates[updates.length - 1]; expect(last?.total).toBeGreaterThan(0); expect(last?.completed).toBe(last?.total); diff --git a/src/memory/manager.ts b/src/memory/manager.ts index 18987a6d34..abfa6d580c 100644 --- a/src/memory/manager.ts +++ b/src/memory/manager.ts @@ -69,6 +69,7 @@ type MemorySyncProgressUpdate = { type MemorySyncProgressState = { completed: number; total: number; + label?: string; report: (update: MemorySyncProgressUpdate) => void; }; @@ -799,7 +800,24 @@ export class MemoryIndexManager { progress?: (update: MemorySyncProgressUpdate) => void; }) { const progress: MemorySyncProgressState | null = params?.progress - ? { completed: 0, total: 0, report: params.progress } + ? { + completed: 0, + total: 0, + label: undefined, + report: (update) => { + if (!params.progress) return; + if (update.label) progress.label = update.label; + const label = + update.total > 0 && progress.label + ? `${progress.label} ${update.completed}/${update.total}` + : progress.label; + params.progress({ + completed: update.completed, + total: update.total, + label, + }); + }, + } : null; const vectorReady = await this.ensureVectorReady(); const meta = this.readMeta();