# ADR-009: История — только на устройстве, в IndexedDB ## Контекст История, живущая на сервере, делает сервер архивом и целью атак. У Bare история — собственность устройства. ## Решение Клиент хранит историю в IndexedDB. messageId — ULID/UUIDv7: хронологическая сортировка и идемпотентный merge. Составной индекс (chatId, messageId). Пагинация курсором по ~50 сообщений, виртуализация списка в DOM. При старте — `navigator.storage.persist()`; занятое место показывается через `storage.estimate()`. ## Следствия - Зашёл с другого устройства — там только новые сообщения. - Потеря устройства без экспорта — потеря истории. - Браузер может вычистить storage; `persist()` снижает риск, но не исключает его.