Политика конфиденциальности Spikenex
Последнее обновление: 23 августа 2026 г.
Эта политика относится к текущей публичной Android-версии Spikenex (com.spikentra.app). По вопросам о данных можно написать на ceo@llmlm.net.
Кратко
- Spikenex работает по принципу local-first. История разговоров, задачи, память, карточки, личный словарь и результаты анализа хранятся на устройстве.
- Именная учётная запись Spikenex не требуется. Пользователь может добровольно связать установку с подтверждённым Web-кабинетом; это не передаёт историю, память, задачи, файлы, настройки или API-ключи. Managed Pro по-прежнему использует отдельный анонимный профиль установки для entitlement и квоты.
- В приложении нет рекламы и рекламных идентификаторов, crash-отчёты не отправляются разработчику автоматически. Добровольная Google Analytics for Firebase в закрытой beta выключена до явного согласия, описанного ниже.
- Облачные функции используют ключ/endpoint пользователя либо, для пользователя с подходящим Pro-доступом, процессор, разрешённый активной серверной конфигурацией Spikenex и описанный ниже.
- Зашифрованная резервная копия и диагностический лог передаются только через системное меню «Поделиться» получателю, которого выбирает пользователь.
Данные на устройстве
Spikenex может локально обрабатывать и хранить:
- аудио с микрофона во время живого перевода или голосовой записи;
- текстовые расшифровки, переводы и импортированные тексты;
- историю разговоров, заметки, задачи, напоминания, досье, карточки, личный словарь, обратную связь по рекомендациям и результаты анализа;
- настройки приложения и сведения о готовности загруженных офлайн-моделей;
- ограниченные технические журналы для диагностики.
Аудио живой сессии и голосовой записи обрабатывается потоково в памяти и не сохраняется Spikenex как аудиофайл; в историю попадает текст. Фото для OCR и импортированный аудиофайл обрабатываются по запросу пользователя. Временные декодированные файлы удаляются после обработки по мере возможностей ОС.
Содержимое истории, задачи, память, карточки, анализы и личный словарь находятся в локальной базе SQLCipher. Ключ базы создаётся и хранится в защищённом системном хранилище. Обычные настройки без API-ключей хранятся в локальном хранилище приложения. Android Backup для приложения отключён.
Когда данные покидают устройство
1. Облачный перевод, ассистент и анализ с собственным ключом
Пользователь сам выбирает облачный провайдер и вводит собственный API-ключ:
- Google Gemini —
generativelanguage.googleapis.com;
- OpenAI —
api.openai.com;
- пользовательский OpenAI-совместимый endpoint — адрес, указанный пользователем.
При запуске соответствующей функции аудио, текст вопроса, выбранные фрагменты истории и/или инструкции передаются напрямую выбранному провайдеру по TLS. Они не проходят через сервер Spikenex и не сохраняются разработчиком Spikenex. Провайдер обрабатывает данные по своим условиям, настройкам аккаунта и правилам хранения. Не отправляйте конфиденциальные данные в провайдер, условия которого вам не подходят. Условия Google Gemini доступны на ai.google.dev/gemini-api/terms, а сведения об обработке данных OpenAI API — на platform.openai.com/docs/models/default-usage-policies-by-endpoint.
Проверка API-ключа запрашивает у выбранного провайдера список доступных моделей, но не отправляет содержимое разговоров.
2. Добровольная связь с Web-кабинетом
Подтверждённый пользователь Web-кабинета может создать одноразовую ссылку, действующую пять минут, и открыть её на телефоне. До первого сетевого запроса приложение показывает границу данных; затем отдельно просит сверить шестизначную контрольную фразу. Окончательная активация выполняется ещё одним подтверждением в Web-кабинете.
Для этой функции managed-сервис получает только уже существующий случайный идентификатор установки и её анонимного service profile, версию приложения, непрозрачный случайный идентификатор Web-аккаунта, идентификаторы challenge и связи, состояние и технические временные метки. Секрет одноразовой ссылки хранится сервером только как криптографический хэш. Google email, имя, Google subject, Web-cookie и Web-профиль не передаются managed-сервису. Обычно Web-кабинет видит только платформу Android, версию приложения, состояние и дату связи. Если отдельно включена read-only проекция и к аккаунту привязана ровно одна активная установка, кабинет временно получает также фиксированный источник Google Play, состояние/срок entitlement и, при наличии текущего периода, агрегированные budget/reserved/spent units и дату их сброса. Он не получает purchase token, заказ, product/base plan, идентификатор устройства/профиля, credential или сырые биллинговые события и не сохраняет этот ответ в истории, аналитике или D1.
Связь не читает и не передаёт SQLCipher-базу, историю, память, задачи, файлы, настройки, резервные копии, API-ключи, install credential или refresh token. Read-only проекция ничего не покупает, не выдаёт Web-доступ и не объединяет автоматически подписки Google Play и Web. Связь можно отозвать из приложения или Web-кабинета; отзыв оставляет локальные данные на телефоне. Незавершённая ссылка истекает или отменяется. Функции выключены, если отсутствуют их отдельные серверные конфигурации.
Отдельный default-off Web-ассистент может быть включён только после явного подтверждения в браузере и только по /internal/v1/web-managed-inference/assistant. Браузер передаёт через сайт лишь язык ответа и выбранный материал с задачей. Worker выводит непрозрачный account_id из подтверждённой Web-сессии, сам добавляет idempotency и одну утверждённую пару модели и processor, после чего отправляет отдельный HMAC-подписанный запрос. Backend допускает только ровно одну активную связанную Android-установку: при нуле или нескольких связях результата нет; при одной он использует существующий managed-ассистент, его entitlement, квоту, policy и один разрешённый processor. В браузер не возвращаются идентификаторы subject/device, Android credential, provider key, purchase token, заказ, product/base plan или сырые биллинговые данные. Выбранный материал и результат не сохраняются в D1, истории, аналитике, application log или crash report; backend хранит только уже существующие не содержащие контента operation/quota metadata. Это не создаёт Web-подписку, checkout, перенос покупки или отдельное Web-entitlement.
Отдельный default-off Web billing может использовать Dodo Payments только в Test Mode. Пользователь выбирает в браузере только месячный период; годового тарифа и годового checkout нет. Worker добавляет непрозрачный account_id, подтверждённый email Google-сессии, необязательное отображаемое имя и серверный request id. Backend сам выбирает настроенный тестовый product id и возвращает только hosted checkout Dodo. Spikenex не получает и не хранит номер карты или банковские реквизиты. Email и имя передаются Dodo для checkout, но не записываются в Spikenex PostgreSQL; там остаются только непрозрачная связь с Dodo customer, идентификаторы checkout/subscription, текущее тестовое состояние и минимальный ledger webhook-id/type/timestamp/hash без сырого payload, адреса или payment method. Возврат из checkout не выдаёт доступ. Подписанный payment.succeeded должен совпасть с checkout-сессией, созданной backend, а подписанное событие жизненного цикла подписки — подтвердить состояние до показа Test Pro. Временные данные возможности hosted checkout и метаданные запроса удаляются через 24 часа. Отдельная не содержащая контента корреляционная запись (непрозрачные идентификаторы checkout-session/account/customer и фиксированные product/period), минимальные сведения о доставке webhook и несвязанные pending-проекции пакетно удаляются через 180 дней. Test Mode не списывает реальные деньги, не выдаёт production- или Android-права и не объединяет Google Play с Web.
После успешного удаления Web-аккаунта отдельно от необратимого tombstone account_id Spikenex на фиксированные ограниченные 180 дней сохраняет только SHA-256-хэши известных Dodo identifier checkout-session, customer и subscription, разделённые по виду identifier. В этих записях нет ни исходного provider identifier, ни account id. Совпавший поздний подписанный payment- или subscription-webhook после минимальной ledger-записи подтверждается, но затем игнорируется: он не может создать pending-проекцию или Test entitlement.
subscription.update_payment_method — обычное событие subscription lifecycle projection/sync. В Test Mode refund.succeeded остаётся только в ledger и не меняет entitlement, пока отдельно не будут одобрены Live Mode refund policy и authoritative mapping.
3. Managed Pro-доступ
Managed Pro-доступ необязателен и остаётся выключенным, пока его одновременно не включат сборка приложения, серверная конфигурация и подходящий entitlement Google Play. Сам Managed Pro не создаёт именную учётную запись Spikenex и не связывается с Web-кабинетом без отдельного добровольного подтверждения выше. По TLS приложение передаёт managed-сервису случайный идентификатор установки/устройства, версию приложения, запросы entitlement и квоты и ограниченные операционные метаданные.
Для managed-перевода в реальном времени сервис выдаёт короткоживущий ограниченный credential Gemini. После этого аудио и содержимое live-сессии идут напрямую между приложением и Google Gemini; сервис Spikenex их не ретранслирует и не хранит.
Для managed-ассистента, анализа разговоров и Tone Coach промпт и результат транзитно проходят через Spikenex к одному разрешённому процессору, выбранному активной серверной конфигурацией для этой операции и модели. Это может быть Google или разрешённый OpenAI-совместимый сервис семейства openai, openrouter, deepseek, qwen, moonshot или custom-openai. Включённая конфигурация выбирает один процессор для запроса; поддержка семейства в коде не означает, что оно включено в production. Spikenex держит содержимое только в памяти запроса и не пишет его в базу, журналы приложения, аналитику или crash-отчёты. В базе остаются только HMAC-отпечаток запроса, состояние операции, измеренное использование, ledger квоты и стабильные метаданные ошибки.
Managed-генерация модулей — отдельный конфигурируемый путь /v1/modules/generate. Когда его разрешают клиентский и серверный флаги, а пользователь согласился на облачную обработку, приложение отправляет описание желаемого модуля (intent), язык, версию контракта и, при наличии, текущие manifest и blueprint. Выбранный managed-процессор возвращает сгенерированные manifest и blueprint с метаданными валидации и использования. Spikenex не сохраняет intent, исходные manifest/blueprint или сгенерированную спецификацию; проверенный пакет сохраняется локально на устройстве.
В приложении и backend реализован эксперимент изображений по текстовому prompt через /v1/media/images/generate. По умолчанию серверный путь выключен, а checked-in staging-конфигурация его включает; наличие мобильного контракта и опциональной capability не означает, что функция разрешена в публичной сборке или production. После отдельного cloud consent и подтверждения действия случайный идентификатор установки-владельца, текстовый prompt, idempotency-данные и фиксированное квадратное соотношение сторон проходят через Spikenex к одному процессору, выбранному серверной конфигурацией MEDIA_IMAGE_PROVIDER: Google Gemini (gemini) или заранее разрешённому OpenAI-совместимому процессору (custom-openai). Выбранный процессор возвращает один PNG. Его credential остаётся на сервере и поступает из Google Secret Manager; приложение и website Vault его не получают. Исходное фото не отправляется. Spikenex не хранит исходный prompt. Для повтора ответа после сетевого сбоя PNG хранится с envelope-шифрованием AES-256-GCM на настроенный TTL (24 часа в текущих defaults и checked-in staging, допустимый диапазон — от минуты до семи дней); затем maintenance стирает ciphertext, wrapped key, IV и authentication tag. Ограниченные метаданные — отпечатки артефакта/владельца, модель, формат, размер, разрешение, hash, состояние операции и время — остаются без содержимого.
Один явный выбор участия в закрытой beta может включить два раздельных пути улучшения продукта. У них нет общего хранилища или срока хранения. Первый путь — описанный здесь агрегат под управлением Spikenex. После точного согласия spikentra.beta.evidence-consent.v1 аутентифицированное приложение может отправить на /v1/beta/evidence накопительный снимок календарного месяца. Передаются только агрегаты: ограниченные счётчики продуктовых сигналов, активные дни, ограниченные итоги исходов и стоимости, маркеры consent/contract и ключевые отпечатки idempotency/request. В нём нет содержимого, аудио, транскрипций, prompt, email, идентификаторов устройства или установки, исходной личности subject и дневных дат. Spikenex выводит purpose-separated псевдоним только из аутентифицированного subject, не использует этот маршрут для entitlement, квоты, billing или provider dispatch и хранит агрегат с ledger 90 дней после последнего принятого накопительного изменения. При удалении профиля эти строки удаляются в одной транзакции.
В backend также реализована основа истории Agent-событий за маршрутом /v1/agent/exchange. Production-сетевой адаптер недоступен, и путь нельзя активировать до утверждения срока хранения, whole-stream scrub и удаления вместе с профилем. Если после обновления политики и Data Safety путь будет активирован, тела Agent-событий для восстановления соединения будут храниться постоянно, а не ephemeral: AES-256-GCM под случайным ключом каждой сессии, обёрнутым Cloud KMS. Это описание реализованного, но заблокированного хранения, а не включённой публичной функции.
Выбранный провайдер обрабатывает managed-содержимое по применимым к нему условиям. Стандартные сетевые сервисы могут получать метаданные соединения: IP-адрес, время, размер запроса и User-Agent. Не используйте managed-обработку для данных, чьи требования к конфиденциальности несовместимы с активным процессором.
Оплату и платёжные данные обрабатывает Google Play. Приложение и сервис Spikenex получают идентификаторы продукта/base plan, непрозрачный purchase token, состояние и срок подписки, а также integrity/notification-метаданные, нужные для проверки, восстановления, отзыва и ограничения Pro-доступа. Spikenex не получает номер карты или банковские реквизиты.
4. Добровольная Firebase Analytics в закрытой beta
Google Analytics for Firebase по умолчанию выключена и включается только после того же явного объединённого согласия на закрытую beta, которое включает описанный выше backend-агрегат. Один выбор сохраняет два раздельных актуальных контракта согласия на измерение: spikentra.beta.evidence-consent.v1 для backend-агрегата и spikentra.firebase-analytics-consent.v1 для Firebase. Та же beta CTA сохраняет раздельные processor-specific cloud consents для текущих получателей Assistant и Tone Coach и включает полную диагностику на текущую сессию. Это независимые пути, описанные в других разделах политики; диагностический лог остаётся на устройстве, пока пользователь сам его не отправит. Отказ или отзыв beta-пакета не блокирует обычную локальную работу приложения.
Пока согласие действует, Spikenex передаёт Google случайный app-instance ID и фиксированный низкокардинальный allowlist собственных событий: именованные экраны приложения, продуктовые действия, состояние жизненного цикла и ограниченные машинные коды ошибок без содержимого. Analytics User-ID не задаётся. В эти события Spikenex не помещает текст разговоров или другой пользовательский текст, аудио, изображения, транскрипции, prompts, ответы моделей, email-адреса, URL или идентификаторы Spikenex/managed-сессий.
SDK Google Analytics также может автоматически собирать свои стандартные lifecycle/session events, взаимодействия с уведомлениями и события покупок или подписок Google Play с product ID, названием продукта и ценой. Из маскированного сетевого IP-адреса он выводит примерное местоположение; точное/GPS-местоположение Spikenex в Analytics не передаёт. Автоматический сбор экранов, Android Advertising ID и SSAID/Android ID, реклама и персонализация рекламы выключены. Данные используются только для продуктовой аналитики и шифруются при передаче Google.
Отзыв согласия прекращает новый сбор, очищает локальные данные Firebase Analytics для приложения и сбрасывает app-instance ID. Он не отзывает автоматически уже доставленные Google события. Операционное требование Spikenex к Google Analytics property — два месяца для user-level и event-level данных, но эта внешняя настройка не задаётся приложением и должна быть проверена до внешней beta. По документации Google этот срок не применяется к стандартным агрегированным отчётам. Ранее отправленные данные поэтому подчиняются фактически настроенным в Google Analytics правилам хранения и удаления. См. раскрытие данных Google Analytics for Firebase, управление сбором Analytics и срок хранения Google Analytics.
5. Локальные ML-функции и загрузка моделей
Офлайн-распознавание речи, локальный семантический поиск и локальный ассистент работают на устройстве после загрузки модели. Файлы моделей скачиваются по действию пользователя с huggingface.co; этот хост может получить стандартные сетевые сведения запроса, например IP-адрес и User-Agent, по своим правилам.
Google ML Kit выполняет OCR и перевод содержимого на устройстве: входные фото, текст и результаты не отправляются Google. При этом SDK ML Kit может отправлять Google по HTTPS технические сведения о приложении и устройстве, идентификатор установки, типы событий, конфигурацию API, размеры входа/выхода, показатели производительности и коды ошибок для диагностики и аналитики использования SDK. Подробности: Условия и конфиденциальность ML Kit и раскрытие данных ML Kit для Android.
6. Экспорт, поддержка и системные действия
- Резервная копия. По запросу создаётся защищённый паролем файл
.ltbackup. Он открывается в системном меню «Поделиться»; Spikenex не загружает его в Google Drive или другой сервис автоматически. Временная копия удаляется из кэша приложения после передачи системному меню.
- Диагностический лог. Лог остаётся на устройстве и ограничен по размеру. Обычный режим скрывает ключи и содержимое. Явно включённый полный диагностический режим может записать фрагменты разговора и выключается после перезапуска. Лог уходит только если пользователь сам выбрал «Прикрепить лог» и адресата в системном меню.
- Поддержка. Кнопка связи открывает почтовый клиент; письмо отправляет сам пользователь.
- Календарь — обычное локальное действие. После подтверждения задачи приложение открывает системный Android-экран создания события с подготовленным заголовком и заметкой. Этот путь не загружает данные календаря в Spikenex.
- Google Calendar sandbox — конфигурируемый эксперимент. Сервер реализует отдельный create-only маршрут
/v1/connectors/google-calendar/events. По умолчанию в коде он выключен; checked-in staging-конфигурация включает sandbox, но это само по себе не означает доступность в публичном приложении или production. Если путь открыт конфигурацией приложения и сервера, а пользователь подтвердил действие, приложение отправляет через Spikenex в Google Calendar заголовок, время начала, длительность, часовой пояс и необязательное место. Оно не отправляет заметку или описание события. Connector создаёт событие только в выделенном вторичном календаре, не может читать список, изменять или удалять события и отклоняет основной календарь. Spikenex не хранит исходные поля события или OAuth-материалы — только HMAC-отпечатки запроса/idempotency, созданный event id, ограниченные state/outcome/error-данные и время. Событие остаётся в Google Calendar по правилам аккаунта, пока его не удалят там.
Разрешения
- Микрофон — перевод и распознавание речи, в том числе в фоне с постоянным уведомлением во время активной сессии.
- Камера и выбранные файлы — OCR и инициированный пользователем импорт.
- Bluetooth и управление аудио — работа с гарнитурой и маршрутом звука.
- Уведомления — индикатор активной записи и локальные напоминания.
- Календарь — создание подтверждённого пользователем события.
- Биометрия — локальная блокировка приватных экранов; биометрические шаблоны приложению не передаются.
- Интернет — облачные функции, проверка ключей, загрузка офлайн-моделей и аналитика закрытой beta после согласия.
Хранение, удаление и резервные копии
По умолчанию история хранится 90 дней; срок можно изменить в настройках. Отдельные записи, задачи и ключи можно удалять в приложении. Удаление приложения удаляет его локальные данные и модели с устройства. Файлы резервных копий, которые пользователь сохранил во внешнем приложении или облаке, удаляются им в этом месте. Данные у Google, OpenAI, Google Play или пользовательского endpoint удаляются по правилам соответствующего провайдера и аккаунта.
Добровольную связь с Web-кабинетом можно отозвать отдельно с телефона или из кабинета; это не удаляет локальные данные и не отменяет Google Play. При удалении Web-аккаунта сайт сначала должен отозвать активные связи и отменить ожидающие challenge; если managed-сервис недоступен, удаление не должно заявляться завершённым. Managed-сервис удаляет записи связи и хранит не более 30 дней только не позволяющий восстановить account_id хэш-квитанцию удаления для безопасного повторения запроса.
Анонимный managed-профиль можно удалить внутри приложения на экране Pro. Когда нет других активных managed-операций, которые нельзя безопасно отменить, сервис сразу отзывает все связанные устройства, стирает install-credential и refresh/replay-секреты, а приложение блокирует автоматическое повторное создание профиля. Тот же запрос можно отправить по адресу ниже.
У двух добровольных beta-путей разные сроки хранения. Backend-агрегат Spikenex и receipt ledger подчиняются описанному выше 90-дневному правилу. Для user-level и event-level данных Firebase Analytics операционный целевой срок — два месяца; эту внешнюю настройку нужно проверить до внешней beta. Отзыв согласия очищает локальное состояние Firebase и сбрасывает app-instance ID, но уже отправленные Google данные остаются до удаления по фактическим настройкам Google; стандартные агрегированные отчёты Analytics не подчиняются event-level сроку.
Содержимое генерации модуля Spikenex не хранит; обезличенные записи операции и квоты подчиняются описанным здесь правилам managed-метаданных. Удаление профиля Spikenex не удаляет уже созданное событие Google Calendar. Image-эксперимент пока не открыт публично. Проверенная локальная версия backend при удалении профиля транзакционно отменяет его незавершённые image-операции и синхронно стирает зашифрованный replay payload; до публичного включения этот путь должен быть развёрнут и повторно проверен на staging. Новая reservation разделяет блокировку удаления профиля, поэтому поздний ответ провайдера не может снова записать или вернуть изображение. Сам сетевой запрос у провайдера может физически завершиться, но его результат отбрасывается. Заблокированный Agent-путь нельзя активировать, пока его зашифрованный поток событий нельзя удалить по сроку хранения и стереть либо отозвать при удалении профиля; обычное обещание немедленного удаления выше не разрешает хранение Agent-данных.
Удаление профиля не отменяет оплату Google Play: управлять подпиской или отменить её нужно отдельно в Google Play. Оно также не отменяет внешнюю подписку Dodo: перед удалением Test Web-аккаунта связующие строки Spikenex и тестовый entitlement удаляются, но отмена выполняется отдельно в Dodo Customer Portal. Явное восстановление подтверждённой покупки, в том числе после переустановки, может создать или повторно активировать псевдонимный профиль. Псевдонимные сведения об оплате, entitlement, квотах, неизменяемом учёте использования и проверке покупки хранятся только пока нужны для активной подписки, восстановления покупки, предотвращения мошенничества, разбора спора, бухгалтерских или юридических обязанностей. Для рекламы и профилирования они не используются.
Безопасность
Сетевые обращения к встроенным облачным провайдерам и managed-сервису используют TLS. API-ключи, managed refresh-credential и ключ SQLCipher хранятся в Android Keystore/SecureStore. Managed access-токены короткоживущие, provider-credential ограничен и остаётся в памяти. Экспорт резервной копии шифруется паролем пользователя. Если заблокированная Agent-история будет активирована, тела событий будут защищены envelope-шифрованием AES-256-GCM, описанным выше. Ни одна мера безопасности не исключает риск полностью; пользователь отвечает за защиту устройства, API-ключей и пароля резервной копии.
Дети
Приложение не предназначено для детей и не рассчитано на аудиторию младше 18 лет.
Изменения
При изменении функций или способов обработки данных политика и дата обновления будут изменены до публикации соответствующей версии.
Контакты
Вопросы о конфиденциальности и удалении данных: ceo@llmlm.net.
Spikenex Privacy Policy
Last updated: August 23, 2026
This policy applies to the current public Android version of Spikenex (com.spikentra.app). For data questions, contact ceo@llmlm.net.
Summary
- Spikenex is local-first. Conversation history, tasks, memory, cards, the personal lexicon, and analysis results are stored on the device.
- Spikenex does not require a named account. A user may voluntarily link an installation to a verified Web account; this does not transfer history, memory, tasks, files, settings, or API keys. Managed Pro continues to use a separate anonymous installation profile for entitlement and quota.
- The app contains no ads or advertising identifiers and does not automatically send crash reports to the developer. Optional Google Analytics for Firebase measurement in the closed beta is off until the explicit consent described below.
- Cloud features either use a provider key/endpoint supplied by the user or, for an eligible Pro user, a managed processor allowed by Spikenex's active server configuration as described below.
- An encrypted backup and a diagnostic log leave the app only through the system share sheet to a recipient selected by the user.
Data on the device
Spikenex may process and store locally:
- microphone audio during live translation or voice recording;
- transcripts, translations, and imported text;
- conversation history, notes, tasks, reminders, dossiers, cards, personal lexicon entries, recommendation feedback, and analysis results;
- app preferences and the readiness state of downloaded offline models;
- bounded technical logs for diagnostics.
Live-session and voice-recorder audio is processed as an in-memory stream and is not saved by Spikenex as an audio file; text is saved to history. OCR photos and imported audio are processed when the user asks. Temporary decoded files are deleted after processing on a best-effort basis.
History content, tasks, memory, cards, analyses, and the personal lexicon are in a local SQLCipher database. Its key is generated and kept in protected system storage. Ordinary preferences that do not contain API keys are kept in local app storage. Android Backup is disabled for the app.
When data leaves the device
1. Cloud translation, assistant, and analysis with your own key
The user selects a cloud provider and supplies their own API key:
- Google Gemini —
generativelanguage.googleapis.com;
- OpenAI —
api.openai.com;
- a custom OpenAI-compatible endpoint — the address entered by the user.
When the user starts the relevant feature, audio, question text, selected history excerpts, and/or instructions are sent directly to the selected provider over TLS. They do not pass through a Spikenex server and are not stored by the Spikenex developer. The provider processes data under its own terms, account settings, and retention rules. Do not submit confidential data to a provider whose terms do not meet your needs. See the Google Gemini API Terms and OpenAI API data controls.
API-key validation asks the selected provider for a list of available models and does not send conversation content.
2. Optional Web-account linking
A verified Web-account user can create a one-time link that lasts five minutes and open it on the phone. Before the first network request, the app shows the data boundary; it then separately asks the user to compare a six-digit control phrase. Final activation requires one more confirmation in the Web account.
For this feature, the managed service receives only the existing random installation and anonymous service-profile identifiers, app version, an opaque random Web account identifier, challenge and link identifiers, state, and technical timestamps. The server stores the one-time link secret only as a cryptographic hash. Google email, name, Google subject, Web cookie, and Web profile are not sent to the managed service. Ordinarily, the Web account sees only the Android platform, app version, link state, and link date. If a separate read-only projection is enabled and exactly one active installation is linked to the account, it also transiently receives the fixed Google Play source, entitlement state/expiry and, where a current period exists, aggregate budget/reserved/spent units and reset date. It receives no purchase token, order, product/base plan, device/profile identifier, credential, or raw billing event, and does not store that response in D1, history, or analytics.
Linking does not read or transfer the SQLCipher database, history, memory, tasks, files, settings, backups, API keys, install credential, or refresh token. The read-only projection buys nothing, grants no Web access, and does not automatically merge Google Play and Web subscriptions. The link can be revoked in the app or Web account; revocation leaves local phone data in place. An unfinished link expires or can be cancelled. The features are disabled when their separate server configurations are absent.
A separate default-off Web assistant may be enabled only after explicit browser confirmation and only through /internal/v1/web-managed-inference/assistant. The browser sends the website only response language and the selected material with its task. The Worker derives an opaque account_id from the verified Web session, generates idempotency, fixes one approved model/processor pair, and sends a separate HMAC-signed request. The backend permits exactly one active linked Android installation: zero or several links return no result; one link invokes the existing managed assistant with its entitlement, quota, policy, and one allowlisted processor. The browser receives no subject/device identifier, Android credential, provider key, purchase token, order, product/base plan, or raw billing data. Selected material and output are not stored in D1, history, analytics, application logs, or crash reports; the backend retains only the existing content-free operation/quota metadata. This does not create a Web subscription, checkout, purchase transfer, or separate Web entitlement.
A separate default-off Web billing path may use Dodo Payments only in Test Mode. The browser chooses monthly billing only; there is no annual plan or annual checkout. The Worker adds the opaque account_id, verified Google-session email, optional display name, and a server request id. The backend selects the configured test product id and returns only Dodo's hosted checkout. Spikenex does not receive or store card or bank credentials. Email and name are sent to Dodo for checkout but are not written to Spikenex PostgreSQL; it retains only the opaque Dodo customer mapping, checkout/subscription identifiers, current test state, and a minimal webhook id/type/timestamp/payload-hash ledger without the raw payload, address, or payment method. Returning from checkout grants nothing. A signed payment.succeeded must match a checkout session created by the backend, and a signed subscription lifecycle event must confirm the state before Test Pro is shown. Temporary hosted-checkout capability and request metadata are removed after 24 hours. A separate content-free correlation record (opaque checkout-session/account/customer identifiers and fixed product/period), minimal webhook delivery metadata, and unlinked pending projections are batch-removed after 180 days. Test Mode charges no real money, grants no production or Android rights, and does not merge Google Play with Web.
After a successful Web-account deletion, separately from the non-reversible account_id tombstone, Spikenex retains for a fixed, bounded 180 days only SHA-256 hashes of known Dodo checkout-session, customer, and subscription identifiers, namespaced by identifier kind. These deletion-guard entries contain neither a raw provider identifier nor an account id. A matching late signed payment or subscription webhook is acknowledged after its minimal ledger entry but then ignored, so it cannot create a pending projection or Test entitlement.
subscription.update_payment_method is a normal subscription-lifecycle projection/sync event. In Test Mode, refund.succeeded remains ledger-only and does not change an entitlement unless a separate Live Mode refund policy and authoritative mapping are approved.
3. Managed Pro access
Managed Pro access is optional and stays disabled unless the app build, server configuration, and an eligible Google Play entitlement all enable it. It does not itself create a named Spikenex account and does not link to a Web account without the separate voluntary confirmation above. The app sends a random installation/device identifier, app version, entitlement and quota requests, and bounded operational metadata to the Spikenex managed service over TLS.
For managed live translation, the service issues a short-lived, constrained Gemini credential. Audio and live-session content then travel directly between the app and Google Gemini; the Spikenex service does not relay or store that content.
For the managed assistant, conversation analysis, and Tone Coach, the prompt and generated result pass transiently through Spikenex to the one allowlisted processor selected for that operation and model by active server configuration. The processor may be Google or an allowlisted OpenAI-compatible service in the openai, openrouter, deepseek, qwen, moonshot, or custom-openai family. An enabled configuration selects one processor for a request; the code's support for a family does not mean that family is enabled in production. Spikenex keeps the content only in request memory and does not put it in its database, application logs, analytics, or crash reports. Its database stores only an HMAC request fingerprint, operation state, measured usage, quota ledger, and stable error metadata.
Managed module generation is a separate configurable path at /v1/modules/generate. When both client and server gates permit it and the user has accepted cloud processing, the app sends the authoring description (intent), locale, contract version, and optionally the current module manifest and blueprint. The selected managed processor returns a generated manifest and blueprint with validation and usage metadata. Spikenex does not persist the intent, input manifest/blueprint, or generated specification; the validated package is stored locally on the device.
The app and backend implement a text-prompt image experiment at /v1/media/images/generate. Its server default is off and checked-in staging configuration enables it; the presence of a mobile route contract and optional capability does not mean that it is enabled in a public build or production. After separate cloud consent and action confirmation, the random installation owner id, text prompt, idempotency data, and fixed square aspect ratio travel through Spikenex to the one processor selected by the server-side MEDIA_IMAGE_PROVIDER configuration: Google Gemini (gemini) or an allowlisted OpenAI-compatible processor (custom-openai). The selected processor returns one PNG. Its credential stays server-side and is supplied from Google Secret Manager; neither the app nor the website Vault receives it. No input photo is sent. Spikenex does not retain the raw prompt. For lost-response replay, the generated PNG is stored with AES-256-GCM envelope encryption for a configured TTL (24 hours in current defaults and checked-in staging, bounded between one minute and seven days); maintenance then scrubs the ciphertext, wrapped key, IV, and authentication tag. Content-free artifact/owner fingerprints, model, format/size/dimensions/hash, operation state, and timestamps remain as bounded operational metadata.
One explicit closed-beta choice can enable two separate product-improvement paths. They do not share storage or retention. The first path is the Spikenex-managed aggregate described here. After the user gives the exact consent spikentra.beta.evidence-consent.v1, the authenticated app may send /v1/beta/evidence with a cumulative calendar-month snapshot. The snapshot is aggregate-only: bounded product-signal counters, active days, bounded outcome and cost totals, the consent/contract markers, and keyed idempotency/request fingerprints. It contains no content, audio, transcript, prompt, email, device or install identifier, raw subject identity, or daily date. Spikenex derives a purpose-separated pseudonym from the authenticated profile subject, does not use this path for entitlement, quota, billing, or provider dispatch, and retains the aggregate and receipt ledger for 90 days after the last accepted cumulative change. Profile deletion removes these rows transactionally.
The backend also contains an Agent event-history foundation behind /v1/agent/exchange. Its production network adapter is unavailable and the path must not be activated until an approved retention period, whole-stream scrub, and profile-deletion workflow exist. If activated after the required policy and Data Safety update, Agent event bodies used for reconnect/recovery would be persistent rather than ephemeral: they would be encrypted with AES-256-GCM under a random per-run key wrapped by Cloud KMS. This paragraph describes implemented, currently blocked storage, not an enabled public feature.
The selected provider processes managed content under its applicable terms. Standard network services may receive connection metadata such as IP address, timestamps, request size, and user agent. Do not use managed cloud processing for content whose confidentiality requirements are incompatible with the active processor.
Google Play handles checkout and payment credentials. The app and Spikenex service receive product/base-plan identifiers, an opaque purchase token, subscription state and expiry, and integrity/notification metadata needed to verify, restore, revoke, and limit Pro access. Spikenex does not receive a card number or bank credential.
4. Optional Firebase Analytics in the closed beta
Google Analytics for Firebase is disabled by default and is enabled only after the same explicit combined closed-beta consent that enables the aggregate backend path above. That one choice records two separate current consent contracts for measurement: spikentra.beta.evidence-consent.v1 for the backend aggregate and spikentra.firebase-analytics-consent.v1 for Firebase. The same beta CTA also records separate processor-specific cloud consents for the current Assistant and Tone Coach recipients and enables full diagnostics for the current session. Those are independent paths described elsewhere in this policy; the diagnostic log stays on the device unless the user manually shares it. Refusing or withdrawing the beta bundle does not block ordinary local app use.
While enabled, Spikenex supplies Google with a randomly generated app-instance ID and a fixed, low-cardinality custom-event allowlist covering named app screens, product actions, app lifecycle state, and bounded non-content error codes. Spikenex does not set an Analytics User-ID or put conversation or user-authored text, audio, images, transcripts, prompts, model responses, email addresses, URLs, or Spikenex/managed session IDs into those events.
The Google Analytics SDK can also automatically collect its standard app-lifecycle/session events, notification interactions, and Google Play purchase or subscription events with product ID, product name, and price. It derives approximate location from a masked network IP address; Spikenex does not give Analytics precise/GPS location. Automatic screen reporting, Android Advertising ID and SSAID/Android ID collection, ads, and ad personalization are disabled. The data is used only for product analytics and is encrypted in transit to Google.
Withdrawing consent stops new collection, clears Firebase Analytics data stored locally for this app, and resets its app-instance ID. It does not automatically recall events already delivered to Google. Spikenex's operational requirement for the Google Analytics property is two months of user-level and event-level retention, but this setting is external to the app and must be verified before an external beta. Google notes that the retention control does not apply to standard aggregated reports. Previously sent data therefore follows the actual configured Google Analytics retention and deletion controls. See Google Analytics for Firebase data disclosure, Analytics collection controls, and Google Analytics data retention.
5. Local ML features and model downloads
Offline speech recognition, local semantic search, and the local assistant run on the device after a model download. Model files are downloaded at the user's request from huggingface.co; that host may receive standard request metadata, such as an IP address and User-Agent, under its own rules.
Google ML Kit performs OCR and translation content processing on the device: input photos, text, and results are not sent to Google. The ML Kit SDK may still send Google, over HTTPS, technical app and device information, an installation identifier, event types, API configuration, input/output sizes, performance metrics, and error codes for SDK diagnostics and usage analytics. See ML Kit Terms & Privacy and the ML Kit Android data disclosure.
6. Export, support, and system actions
- Backup. On request, the app creates a password-protected
.ltbackup file and opens the system share sheet. Spikenex does not automatically upload it to Google Drive or another service. The temporary app-cache copy is deleted after it is handed to the share sheet.
- Diagnostic log. The log remains on the device and is size-limited. Normal mode redacts keys and content. Explicitly enabled full diagnostics may record conversation fragments and turns off after restart. A log leaves only when the user selects “Attach log” and a recipient in the system share sheet.
- Support. The contact action opens an email client; the user sends the message.
- Calendar — ordinary local action. After task confirmation, the app opens the Android system event editor with a prepared title and note. This path does not upload calendar data to Spikenex.
- Google Calendar sandbox — configurable experiment. The server implements a separate create-only path at
/v1/connectors/google-calendar/events. Its code default is off; a checked-in staging configuration enables the sandbox, which does not by itself mean it is enabled in the public app or production. If both app and server configuration expose it and the user confirms the action, the app sends the event title, start time, duration, time zone, and optional location through Spikenex to Google Calendar. It does not send a note or event description. The connector can create only in a dedicated secondary calendar; it cannot read, list, update, or delete events and rejects the primary calendar. Spikenex stores no raw event fields or OAuth material, only HMAC request/idempotency fingerprints, the generated event id, bounded state/outcome/error data, and timestamps. The created event remains in Google Calendar under the account's rules until it is removed there.
Permissions
- Microphone — translation and speech recognition, including in the background with a persistent notification during an active session.
- Camera and selected files — OCR and user-initiated import.
- Bluetooth and audio control — headset and audio-route operation.
- Notifications — active-recording indication and local reminders.
- Calendar — creation of a user-confirmed event.
- Biometrics — local locking of private screens; biometric templates are not given to the app.
- Internet — cloud features, key validation, offline-model downloads, and consented closed-beta analytics.
Retention, deletion, and backups
History is retained for 90 days by default; the period can be changed in settings. Individual records, tasks, and keys can be removed in the app. Uninstalling the app removes its local data and models from the device. Backup files saved by the user in another app or cloud service must be deleted there by the user. Data held by Google, OpenAI, Google Play, or a custom endpoint is deleted under that provider's and account's rules.
The optional Web-account link can be revoked separately from the phone or Web account; this does not delete local data or cancel Google Play. When the Web account is deleted, the site must first revoke active links and cancel pending challenges; if the managed service is unavailable, deletion must not be reported as complete. The managed service deletes the link records and keeps only a non-reversible deletion-receipt hash, from which account_id cannot be recovered, for at most 30 days to make retries safe.
The Pro screen can delete the anonymous managed profile in-app. Once no other managed operation that cannot be safely cancelled is active, the service immediately revokes all linked devices, scrubs install credentials and refresh/replay secrets, and the app blocks automatic profile recreation. The same request can also be made using the contact below.
The two optional closed-beta measurement paths have separate retention. The Spikenex backend aggregate and receipt ledger use the 90-day rule described above. Firebase Analytics has an operational target of two months for user-level and event-level data; that external property setting must be verified before an external beta. Withdrawal clears the local Firebase state and resets the app-instance ID, while data already sent to Google remains subject to the actual Google configuration; standard aggregated Analytics reports are not governed by the event-level retention setting.
Module-generation content is not retained by Spikenex, but content-free operation and quota records follow the managed metadata rules described here. Deleting a Spikenex profile does not delete an event already created in Google Calendar. The image experiment is not publicly enabled. The locally verified backend version transactionally cancels its unfinished image operations and synchronously scrubs any encrypted replay payload during profile deletion; this path must be deployed and re-verified on staging before public enablement. New reservations share the profile-deletion lock, so a late provider response cannot persist or return the image again. The upstream network request may physically finish, but its result is discarded. The currently blocked Agent path cannot be activated until its encrypted event stream can be expired/scrubbed and removed or revoked through profile deletion; the ordinary immediate-deletion statement above does not authorize retained Agent data.
Profile deletion does not cancel Google Play billing. Managing or canceling the subscription remains a separate Google Play action. It also does not cancel an external Dodo subscription: Spikenex removes its account mapping and Test Web entitlement before Web-account deletion, while cancellation remains a separate Dodo Customer Portal action. An explicit restore of a verified purchase (including after reinstall) may create or reactivate a pseudonymous profile. Pseudonymous payment, entitlement, quota, immutable usage, and billing-verification metadata may be retained only while needed for an active subscription, purchase restoration, fraud prevention, dispute handling, accounting, or a legal obligation. It is not used for advertising or profiling.
Security
Connections to built-in cloud providers and the managed service use TLS. API keys, managed refresh credentials, and the SQLCipher key are stored in Android Keystore/SecureStore. Managed access tokens are short-lived; provider credentials are constrained and kept in memory. Backup exports are encrypted with the user's password. If the blocked Agent history is later activated, its event bodies use AES-256-GCM envelope encryption as described above. No security measure eliminates all risk; the user is responsible for protecting the device, API keys, and backup password.
Children
The app is not intended for children and is not directed at users under 18.
Changes
When features or data practices change, this policy and its update date will be changed before the corresponding version is published.
Contact
Privacy and data-deletion questions: ceo@llmlm.net.
Politika privatnosti aplikacije Spikenex
Poslednje ažuriranje: 23. avgust 2026.
Ova politika se odnosi na trenutnu javnu Android verziju aplikacije Spikenex (com.spikentra.app). Za pitanja o podacima obratite se na ceo@llmlm.net.
Rezime
- Spikenex je local-first aplikacija. Istorija razgovora, zadaci, memorija, kartice, lični leksikon i rezultati analize čuvaju se na uređaju.
- Spikenex ne zahteva nalog sa imenom. Korisnik može dobrovoljno da poveže instalaciju sa verifikovanim Web nalogom; time se ne prenose istorija, memorija, zadaci, datoteke, podešavanja ni API ključevi. Managed Pro i dalje koristi poseban anonimni profil instalacije za pravo korišćenja i kvotu.
- Aplikacija ne sadrži reklame ni reklamne identifikatore i ne šalje automatski izveštaje o padovima programeru. Opciono merenje pomoću Google Analytics for Firebase u zatvorenoj beta verziji isključeno je sve do izričite saglasnosti opisane u nastavku.
- Cloud funkcije koriste ili ključ/endpoint provajdera koji obezbedi korisnik, ili, za Pro korisnika koji ispunjava uslove, managed procesor dozvoljen aktivnom serverskom konfiguracijom aplikacije Spikenex, kako je opisano u nastavku.
- Šifrovana rezervna kopija i dijagnostički log napuštaju aplikaciju samo preko sistemskog menija za deljenje, ka primaocu koga izabere korisnik.
Podaci na uređaju
Spikenex može lokalno da obrađuje i čuva:
- zvuk sa mikrofona tokom prevoda uživo ili snimanja glasa;
- transkripte, prevode i uvezeni tekst;
- istoriju razgovora, beleške, zadatke, podsetnike, dosijee, kartice, stavke ličnog leksikona, povratne informacije o preporukama i rezultate analize;
- podešavanja aplikacije i stanje spremnosti preuzetih offline modela;
- ograničene tehničke logove za dijagnostiku.
Zvuk sesije uživo i snimača glasa obrađuje se kao tok u memoriji i Spikenex ga ne čuva kao audio datoteku; u istoriju se čuva tekst. OCR fotografije i uvezeni zvuk obrađuju se kada korisnik to zatraži. Privremene dekodirane datoteke brišu se nakon obrade, u meri u kojoj je to moguće.
Sadržaj istorije, zadaci, memorija, kartice, analize i lični leksikon nalaze se u lokalnoj SQLCipher bazi podataka. Njen ključ se generiše i čuva u zaštićenom sistemskom skladištu. Uobičajena podešavanja koja ne sadrže API ključeve čuvaju se u lokalnom skladištu aplikacije. Android Backup je za aplikaciju isključen.
Kada podaci napuštaju uređaj
1. Cloud prevod, asistent i analiza sa sopstvenim ključem
Korisnik bira cloud provajdera i unosi sopstveni API ključ:
- Google Gemini —
generativelanguage.googleapis.com;
- OpenAI —
api.openai.com;
- prilagođeni endpoint kompatibilan sa OpenAI-jem — adresa koju unese korisnik.
Kada korisnik pokrene odgovarajuću funkciju, zvuk, tekst pitanja, izabrani izvodi iz istorije i/ili uputstva šalju se direktno izabranom provajderu preko TLS-a. Ne prolaze kroz Spikenex server i programer aplikacije Spikenex ih ne čuva. Provajder obrađuje podatke prema sopstvenim uslovima, podešavanjima naloga i pravilima čuvanja. Nemojte slati poverljive podatke provajderu čiji uslovi ne odgovaraju vašim potrebama. Pogledajte Uslove Google Gemini API-ja i kontrole podataka OpenAI API-ja.
Provera API ključa od izabranog provajdera traži spisak dostupnih modela i ne šalje sadržaj razgovora.
2. Opciono povezivanje sa Web nalogom
Korisnik verifikovanog Web naloga može da napravi jednokratnu vezu koja važi pet minuta i da je otvori na telefonu. Pre prvog mrežnog zahteva aplikacija prikazuje granicu podataka; zatim posebno traži od korisnika da uporedi šestocifrenu kontrolnu frazu. Za konačnu aktivaciju potrebna je još jedna potvrda u Web nalogu.
Za ovu funkciju managed servis prima samo postojeće nasumične identifikatore instalacije i anonimnog servisnog profila, verziju aplikacije, neprozirni nasumični identifikator Web naloga, identifikatore izazova i veze, stanje i tehničke vremenske oznake. Server čuva tajnu jednokratne veze isključivo kao kriptografski heš. Google e-pošta, ime, Google subject, Web kolačić i Web profil ne šalju se managed servisu. Web nalog u uobičajenom slučaju vidi samo Android platformu, verziju aplikacije, stanje veze i datum veze. Ako je uključena zasebna projekcija samo za čitanje i sa nalogom je povezana tačno jedna aktivna instalacija, on dodatno privremeno prima fiksni izvor Google Play, stanje i rok važenja prava korišćenja i, ako postoji tekući period, zbirne jedinice budžeta/rezervisane/potrošene jedinice i datum resetovanja. Ne prima token kupovine, narudžbinu, proizvod/osnovni plan, identifikator uređaja/profila, akreditive ni sirove događaje naplate, i taj odgovor ne čuva u D1, istoriji ni analitici.
Povezivanje ne čita niti prenosi SQLCipher bazu, istoriju, memoriju, zadatke, datoteke, podešavanja, rezervne kopije, API ključeve, akreditiv instalacije ni refresh token. Projekcija samo za čitanje ništa ne kupuje, ne daje pristup Webu i ne spaja automatski pretplate Google Play i Web. Vezu je moguće opozvati u aplikaciji ili Web nalogu; opoziv ostavlja lokalne podatke na telefonu. Nedovršena veza ističe ili se može otkazati. Funkcije su isključene kada nedostaju njihove zasebne serverske konfiguracije.
Poseban Web asistent, podrazumevano isključen, može se uključiti tek nakon izričite potvrde u pregledaču i samo preko /internal/v1/web-managed-inference/assistant. Pregledač šalje samo jezik odgovora specifičan za veb-sajt i izabrani materijal sa zadatkom. Worker izvodi neprozirni account_id iz verifikovane Web sesije, generiše idempotentnost, fiksira jedan odobreni par model/procesor i šalje poseban zahtev potpisan HMAC-om. Backend dozvoljava tačno jednu aktivnu povezanu Android instalaciju: nula ili više veza ne vraćaju rezultat; jedna veza poziva postojeći managed asistent sa njegovim pravom korišćenja, kvotom, politikom i jednim procesorom sa liste dozvoljenih. Pregledač ne prima identifikator subjekta/uređaja, Android akreditiv, ključ provajdera, token kupovine, narudžbinu, proizvod/osnovni plan niti sirove podatke o naplati. Izabrani materijal i izlaz ne čuvaju se u D1, istoriji, analitici, logovima aplikacije ni izveštajima o padovima; backend zadržava samo postojeće metapodatke operacije/kvote bez sadržaja. Time se ne stvaraju Web pretplata, naplata, prenos kupovine ni zasebno Web pravo korišćenja.
Poseban Web put naplate, podrazumevano isključen, može koristiti Dodo Payments isključivo u Test Mode-u. Pregledač bira samo mesečnu naplatu; ne postoji godišnji plan ni godišnja naplata. Worker dodaje neprozirni account_id, e-poštu iz verifikovane Google sesije, opciono prikazno ime i serverski identifikator zahteva. Backend bira konfigurisani test identifikator proizvoda i vraća samo Dodo hostovanu naplatu (hosted checkout). Spikenex ne prima niti čuva podatke o kartici ili bankovne akreditive. E-pošta i ime šalju se Dodou radi naplate, ali se ne upisuju u Spikenex PostgreSQL; zadržava se samo neprozirno mapiranje Dodo klijenta, identifikatori naplate/pretplate, trenutno test stanje i minimalna evidencija webhook-a (identifikator/tip/vremenska oznaka/heš sadržaja) bez sirovog sadržaja, adrese i načina plaćanja. Povratak sa naplate ništa ne odobrava. Potpisani payment.succeeded mora odgovarati sesiji naplate koju je kreirao backend, a potpisani događaj životnog ciklusa pretplate mora potvrditi stanje pre nego što se prikaže Test Pro. Privremena mogućnost hostovane naplate i metapodaci zahteva uklanjaju se nakon 24 sata. Zasebna evidencija korelacije bez sadržaja (neprozirni identifikatori sesije naplate/naloga/klijenta i fiksni proizvod/period), minimalni metapodaci isporuke webhook-a i nepovezane privremene projekcije uklanjaju se grupno nakon 180 dana. Test Mode ne naplaćuje pravi novac, ne daje produkciona ni Android prava i ne spaja Google Play sa Webom.
Nakon uspešnog brisanja Web naloga, odvojeno od nepovratnog zapisa o brisanju account_id, Spikenex tokom fiksnih, ograničenih 180 dana zadržava samo SHA-256 heševe poznatih Dodo identifikatora sesije naplate, klijenta i pretplate, razdvojene prostorom imena prema vrsti identifikatora. Ovi unosi za zaštitu od brisanja ne sadrže ni sirov identifikator provajdera ni identifikator naloga. Poklapajući, kasno stigli potpisani webhook za plaćanje ili pretplatu potvrđuje se nakon svog minimalnog unosa u evidenciju, ali se zatim ignoriše, tako da ne može da stvori privremenu projekciju ni Test pravo korišćenja.
subscription.update_payment_method je običan događaj projekcije/sinhronizacije životnog ciklusa pretplate. U Test Mode-u refund.succeeded ostaje samo u evidenciji i ne menja pravo korišćenja, osim ako se odobri zasebna politika povraćaja za Live Mode i autoritativno mapiranje.
3. Managed Pro pristup
Managed Pro pristup je opcion i ostaje isključen osim ako ga ne uključe build aplikacije, serverska konfiguracija i odgovarajuće pravo korišćenja Google Play-a. On sam po sebi ne stvara Spikenex nalog sa imenom i ne povezuje se sa Web nalogom bez posebne dobrovoljne potvrde opisane gore. Aplikacija šalje nasumični identifikator instalacije/uređaja, verziju aplikacije, zahteve za pravo korišćenja i kvotu i ograničene operativne metapodatke Spikenex managed servisu preko TLS-a.
Za managed prevod uživo servis izdaje kratkotrajan, ograničen Gemini akreditiv. Zvuk i sadržaj sesije uživo zatim putuju direktno između aplikacije i Google Gemini-ja; Spikenex servis taj sadržaj ne prosleđuje niti čuva.
Za managed asistenta, analizu razgovora i Tone Coach, upit i generisani rezultat prolaze privremeno kroz Spikenex do jednog procesora sa liste dozvoljenih, koji za tu operaciju i model bira aktivna serverska konfiguracija. Procesor može biti Google ili dozvoljeni servis kompatibilan sa OpenAI-jem iz porodice openai, openrouter, deepseek, qwen, moonshot ili custom-openai. Uključena konfiguracija bira jedan procesor za zahtev; to što kod podržava neku porodicu ne znači da je ta porodica uključena u produkciji. Spikenex čuva sadržaj samo u memoriji zahteva i ne upisuje ga u svoju bazu podataka, logove aplikacije, analitiku ni izveštaje o padovima. Njegova baza čuva samo HMAC otisak zahteva, stanje operacije, izmerenu potrošnju, evidenciju kvote i stabilne metapodatke o greškama.
Managed generisanje modula je poseban konfigurabilan put na /v1/modules/generate. Kada ga dozvole i klijentska i serverska kapija i korisnik prihvati cloud obradu, aplikacija šalje opis izrade (intent), lokalizaciju, verziju ugovora i, opciono, trenutni manifest i nacrt modula. Izabrani managed procesor vraća generisani manifest i nacrt sa metapodacima o validaciji i potrošnji. Spikenex ne čuva trajno namenu (intent), ulazni manifest/nacrt ni generisanu specifikaciju; validirani paket se čuva lokalno na uređaju.
Aplikacija i backend implementiraju eksperiment sa slikama na osnovu tekstualnog upita na /v1/media/images/generate. Njegova serverska podrazumevana vrednost je „isključeno“, a uključuje ga konfiguracija staginga koja je u repozitorijumu; postojanje mobilnog ugovora o ruti i opcione mogućnosti ne znači da je on uključen u javnoj verziji ili produkciji. Nakon posebne cloud saglasnosti i potvrde radnje, nasumični identifikator vlasnika instalacije, tekstualni upit, podaci o idempotentnosti i fiksni kvadratni odnos stranica putuju kroz Spikenex do jednog procesora izabranog serverskom konfiguracijom MEDIA_IMAGE_PROVIDER: Google Gemini (gemini) ili dozvoljenog procesora kompatibilnog sa OpenAI-jem (custom-openai). Izabrani procesor vraća jedan PNG. Njegov akreditiv ostaje na serveru i isporučuje se iz Google Secret Manager-a; ni aplikacija ni Vault veb-sajta ga ne primaju. Ne šalje se nijedna ulazna fotografija. Spikenex ne zadržava sirov upit. Radi ponovne isporuke izgubljenog odgovora, generisani PNG se čuva uz AES-256-GCM envelope šifrovanje tokom konfigurisanog TTL-a (24 sata u trenutnim podrazumevanim vrednostima i u stagingu iz repozitorijuma, ograničeno između jednog minuta i sedam dana); zatim održavanje briše šifrat, umotani ključ, IV i autentifikacioni tag. Otisci artefakta/vlasnika bez sadržaja, model, format/veličina/dimenzije/heš, stanje operacije i vremenske oznake ostaju kao ograničeni operativni metapodaci.
Jedan izričit izbor u zatvorenoj beta verziji može uključiti dva zasebna puta za unapređenje proizvoda. Oni ne dele skladište ni rok čuvanja. Prvi put je zbirni podatak koji upravlja Spikenex, opisan ovde. Nakon što korisnik da tačnu saglasnost spikentra.beta.evidence-consent.v1, autentifikovana aplikacija može da pošalje /v1/beta/evidence sa kumulativnim snimkom za kalendarski mesec. Snimak je isključivo zbirni: ograničeni brojači proizvodnih signala, aktivni dani, ograničeni zbirovi ishoda i troškova, oznake saglasnosti/ugovora i ključani otisci idempotentnosti/zahteva. Ne sadrži sadržaj, zvuk, transkript, upit, e-poštu, identifikator uređaja ili instalacije, sirov identitet subjekta ni dnevni datum. Spikenex izvodi pseudonim odvojene namene iz subjekta autentifikovanog profila, ne koristi ovaj put za pravo korišćenja, kvotu, naplatu ni usmeravanje ka provajderu, i zadržava zbirni podatak i evidenciju potvrda 90 dana nakon poslednje prihvaćene kumulativne promene. Brisanje profila uklanja ove redove transakciono.
Backend takođe sadrži osnovu za istoriju Agent događaja iza /v1/agent/exchange. Njegov produkcioni mrežni adapter nije dostupan i taj put se ne sme aktivirati dok ne postoje odobren rok čuvanja, brisanje celog toka i tok rada za brisanje profila. Ako bi se aktivirao nakon potrebnog ažuriranja politike i Data Safety obrasca, tela Agent događaja koja se koriste za ponovno povezivanje/oporavak bila bi trajna, a ne prolazna: bila bi šifrovana AES-256-GCM-om pod nasumičnim ključem po pokretanju, umotanim pomoću Cloud KMS-a. Ovaj stav opisuje implementirano, trenutno blokirano skladištenje, a ne uključenu javnu funkciju.
Izabrani provajder obrađuje managed sadržaj prema svojim važećim uslovima. Standardne mrežne usluge mogu primati metapodatke veze, kao što su IP adresa, vremenske oznake, veličina zahteva i korisnički agent. Nemojte koristiti managed cloud obradu za sadržaj čiji su zahtevi poverljivosti nespojivi sa aktivnim procesorom.
Google Play obrađuje naplatu i platne akreditive. Aplikacija i Spikenex servis primaju identifikatore proizvoda/osnovnog plana, neprozirni token kupovine, stanje i rok važenja pretplate i metapodatke o integritetu i obaveštenjima koji su potrebni za proveru, obnavljanje, opoziv i ograničavanje Pro pristupa. Spikenex ne prima broj kartice ni bankovni akreditiv.
4. Opciona Firebase analitika u zatvorenoj beta verziji
Google Analytics for Firebase je podrazumevano isključen i uključuje se tek nakon iste izričite objedinjene saglasnosti za zatvorenu beta verziju koja uključuje i gore opisani zbirni backend put. Taj jedan izbor beleži dva odvojena važeća ugovora o saglasnosti za merenje: spikentra.beta.evidence-consent.v1 za zbirni backend i spikentra.firebase-analytics-consent.v1 za Firebase. Isti beta CTA beleži i odvojene saglasnosti za cloud, specifične za procesor, za trenutne primaoce Assistant-a i Tone Coach-a, i uključuje potpunu dijagnostiku za tekuću sesiju. To su nezavisni putevi opisani na drugim mestima u ovoj politici; dijagnostički log ostaje na uređaju osim ako ga korisnik ručno ne podeli. Odbijanje ili povlačenje beta paketa ne blokira uobičajeno lokalno korišćenje aplikacije.
Dok je uključena, Spikenex šalje Google-u nasumično generisan ID instance aplikacije i fiksnu listu dozvoljenih prilagođenih događaja niske kardinalnosti, koja obuhvata imenovane ekrane aplikacije, radnje u proizvodu, stanje životnog ciklusa aplikacije i ograničene šifre grešaka bez sadržaja. Spikenex ne postavlja Analytics User-ID niti u te događaje stavlja razgovor ili tekst koji je napisao korisnik, zvuk, slike, transkripte, upite, odgovore modela, adrese e-pošte, URL-ove ili Spikenex/managed ID-jeve sesija.
Google Analytics SDK takođe može automatski da prikuplja svoje standardne događaje životnog ciklusa aplikacije/sesije, interakcije sa obaveštenjima i događaje kupovine ili pretplate u Google Play-u sa ID-jem proizvoda, nazivom proizvoda i cenom. Približnu lokaciju izvodi iz maskirane mrežne IP adrese; Spikenex ne daje Analytics-u preciznu/GPS lokaciju. Automatsko izveštavanje o ekranima, prikupljanje Android Advertising ID-ja i SSAID-a/Android ID-ja, reklame i personalizacija reklama su isključeni. Podaci se koriste samo za analitiku proizvoda i šifrovani su u prenosu ka Google-u.
Povlačenje saglasnosti zaustavlja novo prikupljanje, briše lokalno sačuvane podatke Firebase Analytics-a za ovu aplikaciju i resetuje njen ID instance aplikacije. Ono ne opoziva automatski događaje koji su već isporučeni Google-u. Operativni zahtev aplikacije Spikenex za Google Analytics svojstvo jeste dva meseca čuvanja na nivou korisnika i događaja, ali je ovo podešavanje izvan aplikacije i mora se proveriti pre spoljne beta verzije. Google napominje da se kontrola čuvanja ne odnosi na standardne zbirne izveštaje. Ranije poslati podaci stoga podležu stvarno konfigurisanim kontrolama čuvanja i brisanja u Google Analytics-u. Pogledajte objavljivanje podataka Google Analytics for Firebase, kontrole prikupljanja Analytics-a i čuvanje podataka u Google Analytics-u.
5. Lokalne ML funkcije i preuzimanje modela
Offline prepoznavanje govora, lokalna semantička pretraga i lokalni asistent rade na uređaju nakon preuzimanja modela. Datoteke modela preuzimaju se na zahtev korisnika sa huggingface.co; taj host može primiti standardne metapodatke zahteva, kao što su IP adresa i User-Agent, prema sopstvenim pravilima.
Google ML Kit obavlja OCR i obradu sadržaja prevoda na uređaju: ulazne fotografije, tekst i rezultati ne šalju se Google-u. ML Kit SDK ipak može da šalje Google-u, preko HTTPS-a, tehničke podatke o aplikaciji i uređaju, identifikator instalacije, tipove događaja, konfiguraciju API-ja, veličine ulaza/izlaza, metrike performansi i šifre grešaka radi dijagnostike SDK-a i analitike korišćenja. Pogledajte ML Kit uslove i privatnost i ML Kit objavljivanje podataka za Android.
6. Izvoz, podrška i sistemske radnje
- Rezervna kopija. Na zahtev aplikacija pravi datoteku
.ltbackup zaštićenu lozinkom i otvara sistemski meni za deljenje. Spikenex je ne otprema automatski na Google Drive niti drugi servis. Privremena kopija u kešu aplikacije briše se nakon predaje meniju za deljenje.
- Dijagnostički log. Log ostaje na uređaju i ograničene je veličine. U normalnom režimu ključevi i sadržaj su redigovani. Izričito uključena potpuna dijagnostika može da beleži fragmente razgovora i isključuje se nakon ponovnog pokretanja. Log napušta uređaj samo kada korisnik izabere „Priloži log“ i primaoca u sistemskom meniju za deljenje.
- Podrška. Radnja kontakta otvara klijent e-pošte; poruku šalje korisnik.
- Kalendar — uobičajena lokalna radnja. Nakon potvrde zadatka aplikacija otvara Android sistemski uređivač događaja sa pripremljenim naslovom i beleškom. Ovaj put ne otprema podatke kalendara Spikenex-u.
- Google Calendar sandbox — konfigurabilan eksperiment. Server implementira poseban put samo za kreiranje na
/v1/connectors/google-calendar/events. Podrazumevana vrednost u kodu je „isključeno“; konfiguracija staginga iz repozitorijuma uključuje sandbox, što samo po sebi ne znači da je uključen u javnoj aplikaciji ili produkciji. Ako ga izlože i konfiguracija aplikacije i konfiguracija servera i korisnik potvrdi radnju, aplikacija šalje naslov događaja, vreme početka, trajanje, vremensku zonu i opcionu lokaciju preko Spikenex-a u Google Calendar. Ne šalje belešku ni opis događaja. Konektor može da kreira samo u posebnom sekundarnom kalendaru; ne može da čita, izlistava, ažurira ni briše događaje i odbija primarni kalendar. Spikenex ne čuva sirova polja događaja ni OAuth materijal, već samo HMAC otiske zahteva/idempotentnosti, generisani identifikator događaja, ograničene podatke o stanju/ishodu/grešci i vremenske oznake. Kreirani događaj ostaje u Google Calendar-u pod pravilima naloga dok se tamo ne ukloni.
Dozvole
- Mikrofon — prevod i prepoznavanje govora, uključujući rad u pozadini sa stalnim obaveštenjem tokom aktivne sesije.
- Kamera i izabrane datoteke — OCR i uvoz koji pokreće korisnik.
- Bluetooth i upravljanje zvukom — rad sa slušalicama i usmeravanje zvuka.
- Obaveštenja — prikaz aktivnog snimanja i lokalni podsetnici.
- Kalendar — kreiranje događaja koji je korisnik potvrdio.
- Biometrija — lokalno zaključavanje privatnih ekrana; biometrijski šabloni se ne daju aplikaciji.
- Internet — cloud funkcije, provera ključeva, preuzimanje offline modela i analitika zatvorene beta verzije uz saglasnost.
Čuvanje, brisanje i rezervne kopije
Istorija se podrazumevano čuva 90 dana; period se može promeniti u podešavanjima. Pojedinačni zapisi, zadaci i ključevi mogu se ukloniti u aplikaciji. Deinstalacijom aplikacije lokalni podaci i modeli uklanjaju se sa uređaja. Rezervne kopije koje je korisnik sačuvao u drugoj aplikaciji ili cloud servisu korisnik mora sam da obriše tamo. Podaci koje drže Google, OpenAI, Google Play ili prilagođeni endpoint brišu se prema pravilima tog provajdera i naloga.
Opciona veza sa Web nalogom može se zasebno opozvati sa telefona ili iz Web naloga; time se lokalni podaci ne brišu niti se otkazuje Google Play. Kada se Web nalog briše, sajt prvo mora da opozove aktivne veze i otkaže izazove na čekanju; ako managed servis nije dostupan, brisanje se ne sme prijaviti kao završeno. Managed servis briše zapise veza i zadržava samo nepovratni heš potvrde o brisanju, iz koga se account_id ne može povratiti, najviše 30 dana kako bi ponovni pokušaji bili bezbedni.
Ekran Pro omogućava brisanje anonimnog managed profila u samoj aplikaciji. Čim ne bude aktivna nijedna druga managed operacija koja se ne može bezbedno otkazati, servis odmah opoziva sve povezane uređaje, briše akreditive instalacije i tajne za osvežavanje/ponavljanje, a aplikacija blokira automatsko ponovno kreiranje profila. Isti zahtev može se podneti i putem kontakta navedenog u nastavku.
Dva opciona puta merenja u zatvorenoj beta verziji imaju zasebne rokove čuvanja. Zbirni podaci i evidencija potvrda Spikenex backenda koriste pravilo od 90 dana opisano gore. Firebase Analytics ima operativni cilj od dva meseca za podatke na nivou korisnika i događaja; to podešavanje svojstva izvan aplikacije mora se proveriti pre spoljne beta verzije. Povlačenje saglasnosti briše lokalno Firebase stanje i resetuje ID instance aplikacije, dok podaci koji su već poslati Google-u i dalje podležu stvarnoj konfiguraciji Google-a; standardni zbirni Analytics izveštaji ne podležu podešavanju čuvanja na nivou događaja.
Spikenex ne zadržava sadržaj generisanja modula, ali evidencije operacija i kvote bez sadržaja podležu pravilima o managed metapodacima opisanim ovde. Brisanje Spikenex profila ne briše događaj koji je već kreiran u Google Calendar-u. Eksperiment sa slikama nije javno uključen. Lokalno verifikovana verzija backenda transakciono otkazuje svoje nedovršene operacije sa slikama i sinhrono briše svaki šifrovani sadržaj za ponovnu isporuku tokom brisanja profila; ovaj put se mora postaviti i ponovo verifikovati na stagingu pre javnog uključivanja. Nove rezervacije dele bravu brisanja profila, tako da kasni odgovor provajdera ne može ponovo da sačuva ili vrati sliku. Upstream mrežni zahtev može fizički da se završi, ali se njegov rezultat odbacuje. Trenutno blokirani Agent put ne može se aktivirati dok se njegov šifrovani tok događaja ne može isteći/obrisati i ukloniti ili opozvati kroz brisanje profila; gore navedena izjava o uobičajenom trenutnom brisanju ne odobrava zadržane Agent podatke.
Brisanje profila ne otkazuje naplatu u Google Play-u. Upravljanje pretplatom ili njeno otkazivanje ostaje zasebna radnja u Google Play-u. Ono takođe ne otkazuje spoljnu Dodo pretplatu: Spikenex uklanja svoje mapiranje naloga i Test Web pravo korišćenja pre brisanja Web naloga, dok otkazivanje ostaje zasebna radnja u Dodo Customer Portal-u. Izričito obnavljanje verifikovane kupovine (uključujući nakon ponovne instalacije) može da kreira ili ponovo aktivira pseudonimni profil. Pseudonimni metapodaci o plaćanju, pravu korišćenja, kvoti, nepromenljivoj potrošnji i verifikaciji naplate mogu se zadržati samo dok su potrebni za aktivnu pretplatu, obnavljanje kupovine, sprečavanje prevare, rešavanje sporova, računovodstvo ili zakonsku obavezu. Ne koriste se za oglašavanje ni profilisanje.
Bezbednost
Veze sa ugrađenim cloud provajderima i managed servisom koriste TLS. API ključevi, managed akreditivi za osvežavanje i SQLCipher ključ čuvaju se u Android Keystore/SecureStore. Managed pristupni tokeni su kratkotrajni; akreditivi provajdera su ograničeni i drže se u memoriji. Izvozi rezervnih kopija šifrovani su lozinkom korisnika. Ako se blokirana Agent istorija kasnije aktivira, tela njenih događaja koriste AES-256-GCM envelope šifrovanje kako je opisano gore. Nijedna mera bezbednosti ne otklanja sve rizike; korisnik je odgovoran za zaštitu uređaja, API ključeva i lozinke rezervne kopije.
Deca
Aplikacija nije namenjena deci i nije usmerena na korisnike mlađe od 18 godina.
Izmene
Kada se promene funkcije ili prakse u vezi sa podacima, ova politika i datum njenog ažuriranja biće izmenjeni pre objavljivanja odgovarajuće verzije.
Kontakt
Pitanja o privatnosti i brisanju podataka: ceo@llmlm.net.