From 66061a05df21ea989137335ca901dd49420ecb53 Mon Sep 17 00:00:00 2001 From: Maurice Date: Sat, 19 Sep 2026 15:52:26 +0200 Subject: [PATCH] fix(docsync): sort Papra's enumeration digest with an explicit comparator SonarCloud flags a bare .sort() on strings (S2871). The comparator keeps the byte order the default sort used, so every cursor already stored stays valid. --- server/src/nest/doc-sync/providers/papra.provider.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/src/nest/doc-sync/providers/papra.provider.ts b/server/src/nest/doc-sync/providers/papra.provider.ts index d2014efd4..51d295237 100644 --- a/server/src/nest/doc-sync/providers/papra.provider.ts +++ b/server/src/nest/doc-sync/providers/papra.provider.ts @@ -350,7 +350,9 @@ function inScope(doc: PapraDocument, tagId: string, serverFiltered: boolean): bo * complete set rather than from the newest entry. */ function enumerationDigest(documents: RemoteDocument[]): string { - const pairs = documents.map((doc) => `${doc.remoteId}:${doc.remoteVersion}`).sort(); + const pairs = documents + .map((doc) => `${doc.remoteId}:${doc.remoteVersion}`) + .sort((a, b) => (a < b ? -1 : a > b ? 1 : 0)); return crypto.createHash('sha256').update(pairs.join('\n')).digest('hex'); }