From ada8001fcbd9924e59102b03788547f160ee011f Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Sun, 26 Oct 2025 19:38:45 +0900 Subject: [PATCH] ### Fixed - We are now able to enable optional features correctly again (#732). - No longer oversized files have been processed, furthermore. - Before creating a chunk, the file is verified as the target. - The behaviour upon receiving replication has been changed as follows: - If the remote file is oversized, it is ignored. - If not, but while the local file is oversized, it is also ignored. --- src/features/ConfigSync/CmdConfigSync.ts | 4 ++-- src/features/HiddenFileSync/CmdHiddenFileSync.ts | 4 ++-- src/lib | 2 +- src/modules/core/ModuleFileHandler.ts | 12 ++++++++++++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/features/ConfigSync/CmdConfigSync.ts b/src/features/ConfigSync/CmdConfigSync.ts index 2fdb005..0d8df06 100644 --- a/src/features/ConfigSync/CmdConfigSync.ts +++ b/src/features/ConfigSync/CmdConfigSync.ts @@ -1741,7 +1741,7 @@ export class ConfigSync extends LiveSyncCommands { return Promise.resolve(true); } - private async _anyConfigureOptionalSyncFeature(mode: keyof OPTIONAL_SYNC_FEATURES) { + private async _allConfigureOptionalSyncFeature(mode: keyof OPTIONAL_SYNC_FEATURES) { await this.configureHiddenFileSync(mode); return true; } @@ -1813,6 +1813,6 @@ export class ConfigSync extends LiveSyncCommands { services.databaseEvents.handleDatabaseInitialised(this._everyOnDatabaseInitialized.bind(this)); services.setting.handleSuspendExtraSync(this._allSuspendExtraSync.bind(this)); services.setting.handleSuggestOptionalFeatures(this._allAskUsingOptionalSyncFeature.bind(this)); - services.setting.handleEnableOptionalFeature(this._anyConfigureOptionalSyncFeature.bind(this)); + services.setting.handleEnableOptionalFeature(this._allConfigureOptionalSyncFeature.bind(this)); } } diff --git a/src/features/HiddenFileSync/CmdHiddenFileSync.ts b/src/features/HiddenFileSync/CmdHiddenFileSync.ts index e27e562..44bb0c2 100644 --- a/src/features/HiddenFileSync/CmdHiddenFileSync.ts +++ b/src/features/HiddenFileSync/CmdHiddenFileSync.ts @@ -1657,7 +1657,7 @@ ${messageFetch}${messageOverwrite}${messageMerge} } // --> Configuration handling - private async _anyConfigureOptionalSyncFeature(mode: keyof OPTIONAL_SYNC_FEATURES) { + private async _allConfigureOptionalSyncFeature(mode: keyof OPTIONAL_SYNC_FEATURES) { await this.configureHiddenFileSync(mode); return true; } @@ -1805,6 +1805,6 @@ ${messageFetch}${messageOverwrite}${messageMerge} services.databaseEvents.handleDatabaseInitialised(this._everyOnDatabaseInitialized.bind(this)); services.setting.handleSuspendExtraSync(this._allSuspendExtraSync.bind(this)); services.setting.handleSuggestOptionalFeatures(this._allAskUsingOptionalSyncFeature.bind(this)); - services.setting.handleEnableOptionalFeature(this._anyConfigureOptionalSyncFeature.bind(this)); + services.setting.handleEnableOptionalFeature(this._allConfigureOptionalSyncFeature.bind(this)); } } diff --git a/src/lib b/src/lib index 422194f..8fee5ee 160000 --- a/src/lib +++ b/src/lib @@ -1 +1 @@ -Subproject commit 422194fb1b38e10234c942e5037e859c245ec4a5 +Subproject commit 8fee5ee0b71a82ad5027aead8764cb5f00064206 diff --git a/src/modules/core/ModuleFileHandler.ts b/src/modules/core/ModuleFileHandler.ts index 909b670..f9a0b93 100644 --- a/src/modules/core/ModuleFileHandler.ts +++ b/src/modules/core/ModuleFileHandler.ts @@ -353,6 +353,10 @@ export class ModuleFileHandler extends AbstractModule { this._log(`File ${entry.path} is not the target file`, LOG_LEVEL_VERBOSE); return false; } + if (this.services.vault.isFileSizeTooLarge(entry.size)) { + this._log(`File ${entry.path} is too large (on database) to be processed`, LOG_LEVEL_VERBOSE); + return false; + } if (shouldBeIgnored(entry.path)) { this._log(`File ${entry.path} should be ignored`, LOG_LEVEL_VERBOSE); return false; @@ -365,6 +369,10 @@ export class ModuleFileHandler extends AbstractModule { // Nothing to do and other modules should also nothing to do. return true; } else { + if (targetFile && this.services.vault.isFileSizeTooLarge(targetFile.stat.size)) { + this._log(`File ${targetFile.path} is too large (on storage) to be processed`, LOG_LEVEL_VERBOSE); + return false; + } this._log( `Processing ${path} (${entry._id.substring(0, 8)} :${entry._rev?.substring(0, 5)}) : Started...`, LOG_LEVEL_VERBOSE @@ -399,6 +407,10 @@ export class ModuleFileHandler extends AbstractModule { incProcessed(); return true; } + if (this.services.vault.isFileSizeTooLarge(file.stat.size)) { + incProcessed(); + return true; + } if (shouldBeIgnored(file.path)) { incProcessed(); return true;