From 4c54e640e0af8766f400d95be71eb9a0b9a4ce3f Mon Sep 17 00:00:00 2001 From: Georgi Gardev Date: Sun, 11 Jan 2026 22:11:39 +0200 Subject: [PATCH] fix: annotations marked as deleted (fixes #86) --- .../server/src/annotations/annotations-repository.ts | 11 ++++++++++- apps/server/src/upload/upload-service.ts | 12 +++--------- package.json | 3 ++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/apps/server/src/annotations/annotations-repository.ts b/apps/server/src/annotations/annotations-repository.ts index 27c7430..39cbe3d 100644 --- a/apps/server/src/annotations/annotations-repository.ts +++ b/apps/server/src/annotations/annotations-repository.ts @@ -75,7 +75,16 @@ export class AnnotationsRepository { .onConflict(['book_md5', 'device_id', 'page_ref', 'datetime']) // Only update fields that users can actually change in KoReader // Do NOT update pageno/total_pages - these are historical context! - .merge(['text', 'note', 'datetime_updated', 'chapter', 'updated_at', 'drawer', 'color']); + .merge([ + 'text', + 'note', + 'datetime_updated', + 'chapter', + 'updated_at', + 'drawer', + 'color', + 'deleted_at', + ]); } }; diff --git a/apps/server/src/upload/upload-service.ts b/apps/server/src/upload/upload-service.ts index a2ca418..ec9c168 100644 --- a/apps/server/src/upload/upload-service.ts +++ b/apps/server/src/upload/upload-service.ts @@ -123,16 +123,10 @@ export class UploadService { ) ); - const bookMd5s = newBooks.map((b) => b.md5).filter((md5): md5 is string => !!md5); - + // FIXME: with this, if there is only 1 annotation and it gets removed, it won't get marked as deleted, because `annotationsByBook` will be empty. It will only get marked as deleted if the user adds another annotation to trigger an update on the book. await Promise.all( - bookMd5s.map((bookMd5) => - this.detectAndMarkDeletedAnnotations( - bookMd5, - deviceId, - annotationsByBook[bookMd5] || [], - trx - ) + Object.entries(annotationsByBook).map(([bookMd5, annotations]) => + this.detectAndMarkDeletedAnnotations(bookMd5, deviceId, annotations, trx) ) ); } diff --git a/package.json b/package.json index b43509c..65975d7 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ ], "scripts": { "build": "turbo run build", - "test:coverage": "turbo run test:coverage" + "test:coverage": "turbo run test:coverage", + "dev": "turbo run dev --parallel" }, "devDependencies": { "prettier": "3.6.2",