61f8205f40
Новый KMP-модуль :storage-inmemory с тред-безопасными (Mutex) in-memory имплами для всех 4 store'ов из :storage-core: - InMemoryConversationStore (Map по id, sortedByDescending(updatedAt)) - InMemoryMessageStore (List per conversation, с tokenStats) - InMemoryWorkingMemoryStore (List с order_idx, atomic compact + summary) - InMemoryReflectionStore (List по conversationId, FIFO для listRecent) Фабрика InMemoryStorage.create() возвращает готовый StorageBundle. Семантика 1:1 с SQLite-имплами — параллельные suspend-вызовы атомарны через kotlinx.coroutines.sync.Mutex (lost-update race невозможен, как в SQLite-driver-locked версии). Тесты: 35 новых, проверяют round-trip всех CRUD-операций, тред-безопасность, tokenStats агрегацию, compact+summary, events-flow. Планируемое использование: - :standalone тесты (вместо SqliteStores.inMemory() с JDBC) - Android ART-сборка (commit 7+; SQLite требует JDBC драйвера, недоступного в Android base classes) - embedded/cold-start сценарии без SQLite-инициализации Tests: 299/299 green (264 ранее + 35 новых в :storage-inmemory)
31 lines
803 B
Kotlin
31 lines
803 B
Kotlin
plugins {
|
||
alias(libs.plugins.kotlin.multiplatform)
|
||
}
|
||
|
||
kotlin {
|
||
jvmToolchain(21)
|
||
|
||
// Зеркалит набор :storage-core — in-memory импл, чтобы тесты и embedded
|
||
// (Android) запуски не зависели от SQLite/JDBC. Совпадает по семантике
|
||
// с :storage-sqlite (тред-безопасность через Mutex, AutoCloseable).
|
||
jvm()
|
||
macosX64()
|
||
macosArm64()
|
||
iosX64()
|
||
iosArm64()
|
||
iosSimulatorArm64()
|
||
linuxX64()
|
||
linuxArm64()
|
||
mingwX64()
|
||
|
||
sourceSets {
|
||
commonMain.dependencies {
|
||
api(project(":storage-core"))
|
||
}
|
||
commonTest.dependencies {
|
||
implementation(kotlin("test"))
|
||
implementation(libs.kotlinx.coroutines.test)
|
||
}
|
||
}
|
||
}
|