diff --git a/.editorconfig b/.editorconfig index 31deac5..6915df1 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,6 +18,11 @@ ktlint_standard_no-wildcard-imports = enabled # single-line `{ a; b }` blocks, and expression bodies kept on one line where they fit. ktlint still gates # imports, indentation, spacing, blank lines, and the 120-column limit. ktlint_standard_function-naming = disabled +# ktlint 14 introduced class-signature and function-signature, which collapse a multi-line parameter +# list onto one line whenever it fits and push the supertype onto its own line. That is the aggressive +# wrapping this file already opted out of by choosing intellij_idea over ktlint_official, so it stays off. +ktlint_standard_class-signature = disabled +ktlint_standard_function-signature = disabled ktlint_standard_function-signature = disabled ktlint_standard_statement-wrapping = disabled ktlint_standard_if-else-bracing = disabled diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 24623f2..251262b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ serialization = "1.11.0" ktor = "3.5.1" junit = "6.1.2" testcontainers = "2.0.5" -ktlint = "12.1.2" +ktlint = "14.2.0" detekt = "1.23.8" kover = "0.9.9" kotest = "6.2.3" diff --git a/kdrant-core/src/main/kotlin/dev/kdrant/internal/DefaultQdrantClient.kt b/kdrant-core/src/main/kotlin/dev/kdrant/internal/DefaultQdrantClient.kt index 136bde3..ae80dd0 100644 --- a/kdrant-core/src/main/kotlin/dev/kdrant/internal/DefaultQdrantClient.kt +++ b/kdrant-core/src/main/kotlin/dev/kdrant/internal/DefaultQdrantClient.kt @@ -144,8 +144,10 @@ internal class DefaultQdrantClient( ) { val built = FilterBuilder().apply(filter).build() require( - !built.must.isNullOrEmpty() || !built.should.isNullOrEmpty() || - !built.mustNot.isNullOrEmpty() || built.minShould != null, + !built.must.isNullOrEmpty() || + !built.should.isNullOrEmpty() || + !built.mustNot.isNullOrEmpty() || + built.minShould != null, ) { "delete-by-filter requires at least one condition; an empty filter would match every point" } diff --git a/kdrant-spring-ai/src/main/kotlin/dev/kdrant/springai/KdrantVectorStore.kt b/kdrant-spring-ai/src/main/kotlin/dev/kdrant/springai/KdrantVectorStore.kt index 04385bf..176d68a 100644 --- a/kdrant-spring-ai/src/main/kotlin/dev/kdrant/springai/KdrantVectorStore.kt +++ b/kdrant-spring-ai/src/main/kotlin/dev/kdrant/springai/KdrantVectorStore.kt @@ -56,11 +56,9 @@ public class KdrantVectorStore( runBlocking { client.delete(collectionName, idList.map { PointId.uuid(it) }) } } - override fun delete(filterExpression: Filter.Expression) { - throw UnsupportedOperationException( - "kdrant-spring-ai does not yet support delete by a metadata filter expression", - ) - } + override fun delete(filterExpression: Filter.Expression): Unit = throw UnsupportedOperationException( + "kdrant-spring-ai does not yet support delete by a metadata filter expression", + ) override fun similaritySearch(request: SearchRequest): List { if (request.hasFilterExpression()) {