From 9b141f7a8bbde7ccfbd39f57b5d5d1bf6f33d324 Mon Sep 17 00:00:00 2001 From: Alejandro Munoz Date: Thu, 26 Feb 2026 01:42:19 -0500 Subject: [PATCH 1/2] Update name squatting threshold. Update similarity service to reference latest display name --- server/src/dev/resources/application.yml | 2 +- .../openvsx/repositories/ExtensionJooqRepository.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/src/dev/resources/application.yml b/server/src/dev/resources/application.yml index 4dcd85604..e98cc1272 100644 --- a/server/src/dev/resources/application.yml +++ b/server/src/dev/resources/application.yml @@ -202,7 +202,7 @@ ovsx: enabled: true enforced: false required: false - similarity-threshold: 0.2 + similarity-threshold: 0.15 skip-if-publisher-verified: false only-protect-verified-names: false allow-similarity-to-own-names: true diff --git a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java index 5f1cbf436..83ec85efc 100644 --- a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java +++ b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java @@ -405,10 +405,18 @@ public List findSimilarExtensionsByLevenshtein( maxDisplayNameDistance.cast(Integer.class) ); + // Only compare against the latest (most recent) active version's display name, + // not historical versions that may have had different display names + var latestVersionId = DSL.select(DSL.max(EXTENSION_VERSION.ID)) + .from(EXTENSION_VERSION) + .where(EXTENSION_VERSION.EXTENSION_ID.eq(EXTENSION.ID)) + .and(EXTENSION_VERSION.ACTIVE.eq(true)); + var displayNameSimilaritySubquery = DSL.selectOne() .from(evLatest) .where(evLatest.EXTENSION_ID.eq(EXTENSION.ID)) .and(evLatest.ACTIVE.eq(true)) + .and(evLatest.ID.eq(latestVersionId)) .and(evLatest.DISPLAY_NAME.isNotNull()) .and(evLatest.DISPLAY_NAME.ne("")) .and(DSL.length(evLatest.DISPLAY_NAME).between(minLen, lenMax)) From 71980027dc4731e6fe3c65be5e3b35dae0df001d Mon Sep 17 00:00:00 2001 From: Alejandro Munoz Date: Thu, 26 Feb 2026 07:57:37 -0500 Subject: [PATCH 2/2] Fix latest version query --- .../repositories/ExtensionJooqRepository.java | 14 +++++++------- .../ExtensionVersionJooqRepository.java | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java index 83ec85efc..d4eb11b9d 100644 --- a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java +++ b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionJooqRepository.java @@ -33,9 +33,11 @@ public class ExtensionJooqRepository { private final DSLContext dsl; + private final ExtensionVersionJooqRepository extensionVersionRepo; - public ExtensionJooqRepository(DSLContext dsl) { + public ExtensionJooqRepository(DSLContext dsl, ExtensionVersionJooqRepository extensionVersionRepo) { this.dsl = dsl; + this.extensionVersionRepo = extensionVersionRepo; } public List findAllActiveById(Collection ids) { @@ -405,12 +407,10 @@ public List findSimilarExtensionsByLevenshtein( maxDisplayNameDistance.cast(Integer.class) ); - // Only compare against the latest (most recent) active version's display name, - // not historical versions that may have had different display names - var latestVersionId = DSL.select(DSL.max(EXTENSION_VERSION.ID)) - .from(EXTENSION_VERSION) - .where(EXTENSION_VERSION.EXTENSION_ID.eq(EXTENSION.ID)) - .and(EXTENSION_VERSION.ACTIVE.eq(true)); + var latestQuery = extensionVersionRepo.findLatestQuery(null, false, true); + latestQuery.addSelect(EXTENSION_VERSION.ID); + latestQuery.addConditions(EXTENSION_VERSION.EXTENSION_ID.eq(EXTENSION.ID)); + var latestVersionId = latestQuery.asField().coerce(Long.class); var displayNameSimilaritySubquery = DSL.selectOne() .from(evLatest) diff --git a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java index 3970b16e3..e2a483238 100644 --- a/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java +++ b/server/src/main/java/org/eclipse/openvsx/repositories/ExtensionVersionJooqRepository.java @@ -1224,7 +1224,7 @@ public ExtensionVersion findLatestForAllUrls( }); } - private SelectQuery findLatestQuery( + SelectQuery findLatestQuery( String targetPlatform, boolean onlyPreRelease, boolean onlyActive