feat(journal-ksqlite): add :journal-ksqlite module with KsqliteJournalStore implementation
ci / JVM build + tests (push) Failing after 1m10s
ci / JVM build + tests (push) Failing after 1m10s
- Introduced a new `:journal-ksqlite` module implementing `:journal-api` with Ksqlite backend. - Added a minimal schema (message table + 1 index) for append-only audit logs, eliminating modifications and ensuring immutable storage. - Provides `KsqliteJournalStore` for appending, listing, and clearing messages with JSON-encoded payloads. - Autonomous schema migration (`Schema.migrate`) and in-memory tests validate functionality. - Partial duplication of `:storage-ksqlite/KsqliteMessageStore`; consumers will transition gradually.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
plugins {
|
||||
alias(libs.plugins.kotlin.multiplatform)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
// KMP-реализация :journal-api (JournalStore / MutableJournalStore) поверх ksqlite.
|
||||
// Минимальная — только таблица `message` для append-only audit log'а.
|
||||
// ConversationStore / ReflectionStore / WorkingMemoryStore живут в своих
|
||||
// собственных ksqlite-модулях.
|
||||
//
|
||||
// Цели сборки — jvm() + linuxX64() + mingwX64(); Apple targets auto-disabled
|
||||
// на Linux (см. KDoc :storage-ksqlite).
|
||||
|
||||
kotlin {
|
||||
jvmToolchain(21)
|
||||
|
||||
jvm()
|
||||
linuxX64()
|
||||
mingwX64()
|
||||
|
||||
sourceSets {
|
||||
commonMain.dependencies {
|
||||
implementation("pw.binom.db:ksqlite:0.1.1-SNAPSHOT")
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
|
||||
api(project(":journal-api"))
|
||||
}
|
||||
commonTest.dependencies {
|
||||
implementation(kotlin("test"))
|
||||
implementation(libs.kotlinx.coroutines.test)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user