61f8205f40c40b3332e35a16351970a9519df5d8
Новый 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)
Description