История переводов и конфиденциальность: что остаётся на вашем устройстве
История переводов — это локальный артефакт. Каждая запись истории хранится в локальной базе данных SQLite на устройстве, управляемой Drift, плюс миниатюра JPEG исходного фото. Ничего не загружается на сервер. В этой статье подробно объясняется, что хранится, что удаляется и какова модель конфиденциальности приложения.\n\n## Что хранит история\n\nКаждая запись истории содержит:\n\n- Исходное фото в виде миниатюры JPEG, уменьшенное до максимальной стороны. Фото в полном разрешении отбрасывается после уменьшения, чтобы ограничить объём хранилища.\n- Язык источника, определённый OCR (или установленный вручную).\n- Язык назначения, выбранный для захвата.\n- Блоки OCR с их ограничивающими прямоугольниками, распознанным текстом и уверенностью.\n- Переводы по блокам и объединённый полный абзац перевода.\n- Временная метка создания для упорядочивания и отображения.\n\nТекстовые переводы не сохраняются автоматически. Страница перевода текста показывает результат в области результатов, пока вы не нажмёте «Очистить» или не уйдёте. Снимки камеры и импортированные фото можно сохранить в историю со страницы результатов.\n\n## Где это хранится\n\nИстория хранится в двух местах:\n\n- База данных. Локальная база данных SQLite на устройстве, управляемая Drift. Файл базы данных находится в песочнице приложения; он недоступен другим приложениям.\n- Фотографии. Миниатюры JPEG в файловой системе песочницы приложения в каталоге, специфичном для истории.\n\nОба удаляются при удалении приложения.\n\n## Что никогда не загружается\n\n- Фотографии. Не загружаются, не синхронизируются, не резервируются.\n- Текст OCR. Не загружается.\n- Текст перевода. Не загружается.\n- Записи истории. Не загружаются, не синхронизируются, не резервируются.\n- Языковые предпочтения. Не загружаются.\n\nВся история находится на устройстве. Облачной копии для очистки нет.\n\n## Удаление необратимо\n\n- Удалить одну. Кнопка удаления в строке страницы истории удаляет запись и её миниатюру фото. Действие защищено диалогом подтверждения для предотвращения случайного удаления.\n- Удалить все. Удаление приложения удаляет всю базу данных истории как часть удаления платформы.\n- Облачной копии нет. Удаление необратимо. Состояния на стороне облака для очистки нет.\n\n## Аналитика\n\nПриложение отправляет анонимные отчёты о сбоях и агрегированные счётчики (например, «переводов в день») с целью понимания стабильности приложения и моделей использования. Они не включают:\n\n- Содержимое фото\n- Текст OCR\n- Текст перевода\n- Записи истории\n\nЕсли будущий отчёт когда-либо будет содержать содержимое, это будет ошибкой и должно быть сообщено.\n\n## Практическая модель угроз\n\nПриложение предназначено для пользователей, которые хотят переводить конфиденциальные документы, не отправляя их третьим лицам. Соответствующие угрозы:\n\n- Утечка в облако. Невозможна, поскольку ничего не загружается.\n- Межприложный доступ. Невозможен, поскольку песочница изолирует базу данных и файлы фото.\n- Утечка резервных копий. Невозможна, поскольку песочница исключена из автоматического облачного резервного копирования устройства.\n- Потеря устройства. История теряется вместе с устройством, если не сделана ручная резервная копия устройства; ручная резервная копия зашифрована и доступна только владельцу устройства.\n\nДля пользователей, чья модель угроз включает государственных противников, локальный конвейер устраняет сетевую поверхность атаки, но не защищает от скомпрометированного устройства. Применяется стандартное усиление защиты устройства.\n\n## Резюме в одном предложении\n\nИстория локальна. Фото локальны. Переводы локальны. Удаление записи удаляет её с устройства; облачной копии для удаления нет.