From 0087a353c2c46592a7175b53517c93b275a36415 Mon Sep 17 00:00:00 2001 From: Pierre Date: Sat, 7 Feb 2026 12:50:21 +0100 Subject: [PATCH] bugfix --- packages/meta-fuse-core/src/index.ts | 4 +--- .../src/vfs/VirtualFileSystem.ts | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/meta-fuse-core/src/index.ts b/packages/meta-fuse-core/src/index.ts index f491aa1..51f2f5b 100644 --- a/packages/meta-fuse-core/src/index.ts +++ b/packages/meta-fuse-core/src/index.ts @@ -64,9 +64,7 @@ async function handleStreamMessage(message: StreamMessage, vfs: VirtualFileSyste case 'reset': { const reset: ResetPayload = JSON.parse(message.payload); logger.info(`Processing reset event: ${reset.action}`); - - vfs.reset(); - logger.info('VFS reset complete, awaiting new file updates'); + await vfs.resetAndReload(); break; } diff --git a/packages/meta-fuse-core/src/vfs/VirtualFileSystem.ts b/packages/meta-fuse-core/src/vfs/VirtualFileSystem.ts index e232b49..f78dd34 100644 --- a/packages/meta-fuse-core/src/vfs/VirtualFileSystem.ts +++ b/packages/meta-fuse-core/src/vfs/VirtualFileSystem.ts @@ -148,6 +148,26 @@ export class VirtualFileSystem { logger.info('VFS reset complete - awaiting new file updates from meta-sort'); } + /** + * Reset the VFS and immediately reload from Redis + * Called when meta-sort triggers a fresh scan (reset event) + * Unlike reset(), this method immediately repopulates from Redis keys. + */ + async resetAndReload(): Promise { + const startTime = Date.now(); + logger.info('Resetting VFS and reloading from Redis...'); + + // Clear the VFS + this.initRoot(); + this.lastRefresh = null; + + // Immediately reload from Redis keys + await this.refresh(); + + const elapsed = Date.now() - startTime; + logger.info(`VFS reset and reload complete: ${this.cachedStats.fileCount} files in ${elapsed}ms`); + } + /** * Refresh the VFS from Redis * Called once on startup for initial bootstrap.