-
released this
2026-09-23 12:59:58 +00:00 | 4 commits to main since this releaseksqlite 0.1.2 → 0.1.3
Поднята зависимость
pw.binom.db:ksqliteс 0.1.2 до 0.1.3 в шести модулях
(:vector-index-ksqlite,:journal-ksqlite,:context-ksqlite,
:reflection-ksqlite,:standalone,:memory-md-vector).В Maven Central опубликованы POM, Gradle Module Metadata и JAR — резолв
pw.binom.db:ksqlite-jvm:0.1.3подтверждён через./gradlew :journal-ksqlite:dependencies.Расширение контракта :journal-api
В интерфейс
JournalStoreдобавлены два метода:suspend fun count(conversationId: String): Long— total число сообщений в диалогеsuspend fun count(conversationId: String, after: Instant): Long— строгоcreatedAt > after
Реализации:
:journal-ksqlite— pre-prepared SELECT COUNT(*) statement'ы, O(1) SQL:journal-inmemory— O(N) под Mutex
HTTP-фасад :server
Новые endpoint'ы в
journalRoutes:GET /conversations/{id}/count— totalGET /conversations/{id}/count?after=— count after cursor
Один endpoint с опциональным параметром
after(симметрично существующемуmessages).
Тело ответа — JSON{"count": <Long>}через@Serializable CountResponse.HTTP-клиент :client
HttpJournalStore.count/HttpJournalStore.count(after)реализованы через новые endpoint'ы.Тесты
server/JournalRoutesCountTest— 5 кейсов через embedded CIO + реальныйInMemoryJournalStore:
total, after-cursor, unknown-conv (0), JSON shape, cross-conv isolationBearerTokenTestinline-stub дополненcountметодами
Build
./gradlew jvmTest: 425/0/0 ✅./gradlew :standalone:shadowJar: ✅ (245M fatjar):server:jvmTest10/0,:standalone:jvmTest129/0,:journal-ksqlite:jvmTest25/0,
:journal-inmemory:jvmTest19/0
Коммит:
f191387Downloads