| Аккаунт: адрес электронной почты, дата регистрации и последнего входа. Supabase, который обеспечивает для нас вход, хранит для каждого открытого сеанса полное название твоего браузера (его user agent) и IP-адрес, с которого сеанс был открыт, и ведёт журнал входов | Вход по коду, отправленному на почту | Пока существует аккаунт; сеанс — до его закрытия (свои сеансы можно увидеть и закрыть в разделе Настройки › Безопасность) |
| Профиль: тариф и дата продления, фильтр контента включён или нет, дата твоего подтверждения «мне есть 18 лет», возможная блокировка, выбранный аватар (сид не длиннее 64 символов, а не фото), цвет интерфейса | Применять права твоего тарифа, показывать твой интерфейс на каждом устройстве | Пока существует аккаунт |
| Оплата: идентификатор клиента Stripe, статус подписки, автопополнение (порог, сумма, идентификатор карты в Stripe), использованные подарочные коды, идентификаторы уже обработанных событий Stripe | Выставлять счета, управлять подпиской, никогда не обрабатывать платёж дважды | Пока существует аккаунт; счета — в Stripe, как требует закон о бухгалтерском учёте |
Кредиты: каждое начисление (сумма, источник, срок действия) и каждое списание — с суммой, датой и причиной, где указана оплаченная функция или модель (например, chat:claude-opus-5.5, confessional, debate:contract, research:…, image:…, media:…). Поэтому по этому журналу видно, в какие дни ты оплачивал сеанс Исповедальни, но в нём нет ничего из сказанного там | Держать баланс точным, возвращать кредиты за неудавшееся создание | Пока существует аккаунт |
| Счётчики использования: вид действия (сообщение, изображение, поиск…) и время, привязанные к твоему аккаунту; для посетителя без аккаунта — к случайному пробному идентификатору и к отпечатку его IP-адреса, вычисленному с секретным ключом (для адреса IPv6 — по всей его сети /64, то есть по блоку адресов одного подключения, а не по одному адресу); для бесплатного аккаунта изображения, чтение вслух и диктовка также считаются по этому отпечатку, в отдельном счётчике без идентификатора аккаунта (бесплатные аккаунты одного подключения делят общий лимит) | Лимиты за скользящие 24 часа и 30-дневный календарь в разделе «Моя подписка» | Аккаунт: хранятся 31 дн. (только числа, без содержимого), затем удаляются каждый час. Посетитель без аккаунта: каждый час удаляются те, что старше 48 часов. Счётчики последней минуты, ограничивающие всплески запросов, — через час |
| Стоимость использования, включённого в тариф: сумма в долларах, вид (чат, изображение, голос…) и время, привязанные к твоему аккаунту, а у посетителя без аккаунта — к его пробному идентификатору или к отпечатку его IP-адреса | Дневной потолок расходов каждого тарифа | Аккаунт: каждый час удаляются те, что старше 35 дней. Посетитель без аккаунта: старше 48 часов |
| Долгие генерации (видео, музыка, звуковые эффекты): модель, статус, даты, зарезервированные кредиты, номер задачи у провайдера и, для видео, тот факт, что оно создано из импортированного изображения | Отслеживать генерацию и оплатить её один раз | Пока существует аккаунт, без описания и без файла у нас; по номеру задачи провайдер может найти полученное им описание, пока он его хранит |
| Ссылки на чаты: зашифрованный текст (нечитаемый для нас), его размер, даты создания и истечения срока, аккаунт, который создал ссылку | Чтобы тот, у кого есть ссылка, мог её прочитать | До выбранного тобой срока (1, 7 или 30 дней) или пока ты её не удалишь, затем удаляются в течение часа |
| Резервная копия: один файл, зашифрованный твоей фразой-паролем, его размер и дата | Вернуть свои данные на другом устройстве | Пока ты её не удалишь или не заменишь |
| Зашифрованная синхронизация: каждый зашифрованный элемент (нечитаемый для нас) с его непрозрачным идентификатором, версией, размером, округлённым до 256 байт, временем и устройством, которое его записало; ключ данных, обёрнутый твоим ключом доступа, твоим ключом восстановления и для каждого одобренного устройства; использованное место | Получить твои данные на других устройствах | Пока ты не отключишь синхронизацию или не удалишь аккаунт; удалённый элемент оставляет след без содержимого на 180 дней |
| Спонтанные сообщения компаньонов: для каждого компаньона случайный непрозрачный идентификатор (но не то, какой это персонаж), выбранная частота, время следующего сообщения, твой часовой пояс и тихие часы, день последнего уведомления и ждёт ли новое; его имя только если ты разрешил показывать его в уведомлении. Ни слова из чата: сообщение пишется на твоём устройстве, когда ты открываешь приложение | Отправить уведомление без содержимого («NeverNo», «Лена думает о тебе» или «Тебя ждёт сообщение») | Пока ты не отключишь их для этого компаньона или для аккаунта, не начнёшь отношения заново или не удалишь аккаунт |
| Ключи API: их название, первые 12 символов и отпечаток SHA-256 (но не сам ключ), дата последнего использования | Распознавать твои вызовы API | Пока существует аккаунт (у отозванного ключа сохраняется дата отзыва) |
| Оценки ответов: счётчики по дням, моделям, оценкам и причинам | Настройка режима «Авто» | Бессрочно, но без аккаунта, без идентификатора и без текста: ничто не связывает их с тобой |
| Журнал администрирования: каждое действие администратора с аккаунтом (начисление кредитов, блокировка…) и некоторые автоматические действия (окончание подписки, заказ в криптовалюте с указанной страной и страной подключения, сброс синхронизации, удаление неактивного аккаунта) | Контроль и безопасность | Хранится даже после удаления аккаунта, без его идентификатора; максимальный срок пока не установлен |
| Статистика использования: названия событий из фиксированного списка, шаблон страницы, домен источника, метки кампании, страна, тип устройства, язык, отпечаток дня (ключ стирается каждую ночь); для аккаунта — день регистрации, источник, первая оплата и итоги выручки и затрат | Понимать, что улучшать, измерять регистрации и маржу | Исходные события 90 дней, затем только анонимные дневные итоги; данные аккаунта — пока ты не выключишь эту статистику или не удалишь аккаунт |
| Уведомление о неактивности: идентификатор аккаунта, дата отправки письма-уведомления и запланированная дата удаления, для бесплатного аккаунта, не использовавшегося три года | Выполнение обещания политики конфиденциальности: предупреждение за 30 дней, одно удаление теми же шагами, что и «Удалить аккаунт», и только один раз | До твоего следующего входа (уведомление снимается) или до удаления аккаунта |
| Известные браузеры аккаунта: название браузера и системы («Chrome, Windows»), когда он был замечен впервые и в последний раз, дата письма с оповещением | Оповестить тебя по почте, когда входит новый браузер | Пока существует аккаунт (не более 30 браузеров) |
| Подтверждение важного действия кодом: для сеанса, который его запрашивает, — отпечаток 6-значного кода, число попыток и отправок, время последней отправки и конец окна подтверждения | Убедиться, что это действительно ты, прежде чем завершить другие твои сеансы или отключить оповещения о входе | Код: 10 минут; строка без кода: до одного из следующих запросов кода, более чем через 24 часа, или до удаления аккаунта |
| Пробы платных функций: счётчик на аккаунт и на отпечаток IP-адреса, по функции и по месяцу (или один раз — для проб, которые даются однократно); для пробной миссии — её дата | Дать каждую пробу один раз, чтобы ферма аккаунтов не могла её размножить | Отпечаток IP-адреса: текущий месяц, удаляется в первую ночь следующего. Аккаунт: месячные счётчики хранятся не более 3 месяцев; однократные пробы (Исповедальня, видео, агенты, миссии, ответы Claude Opus…) — пока существует аккаунт; всё стирается вместе с аккаунтом |
| Заказы, оплаченные криптовалютой: тариф, цена, статус, даты, указанная страна, страна подключения, НДС и номер заказа в CoinGate | Открыть оплаченный тариф и вести бухгалтерию и учёт НДС, которых требует закон | Оплаченный заказ: 10 лет, срок по закону, отвязывается от аккаунта при его удалении (автоматическое удаление по истечении срока пока не настроено); неоплаченный заказ исчезает вместе с аккаунтом |
| Договорные подтверждения: дата отправки подтверждений и чеков, версия показанного уведомления и отмеченный перед покупкой отказ от права отменить её в срок, отведённый на возврат | Доказать, что было принято и отправлено, как требует законодательство о защите потребителей | Пока существует аккаунт; подтверждения по оплаченному криптозаказу остаются, без аккаунта |
| Выданные тарифы и возвращённые кредиты: тариф, выданный администратором, со свободной заметкой; кредиты, изъятые после возврата платежа или его оспаривания; автоматические исправления резервирований (причина, суммы) | Применить выданный тариф, изъять кредиты за возвращённый платёж, закрыть резервирование, оставшееся открытым | Выданный тариф: до его окончания; изъятые кредиты: пока существует аккаунт; исправления: 365 дней |
| Автопополнение: последняя ошибка платежа (начало сообщения Stripe) и каждая попытка (сумма, статус, номер счёта, дата) | Никогда не списывать дважды, остановиться после трёх неудач | Пока существует аккаунт |
| Подписка разработчика: идентификатор подписки в Stripe, её статус и дата окончания периода | Применять права тарифа для разработчиков | Пока существует аккаунт |
| Миссии, устройства и уведомления: для каждого устройства — его открытые ключи, название, статус и даты; журнал одобрений и отзывов; адрес подписки на уведомления твоего браузера | Шифровать результаты только для твоих устройств, уведомлять тебя без содержимого | Пока существует устройство или подписка; устройство, которое так и не одобрили: 30 дней; отозванное устройство оставляет след без ключей на 90 дней; журнал: 90 дней |
| Миссии, коннекторы: доступ к каждому подключённому сервису (зашифрован ключом сервера миссий, который может прочитать его, чтобы действовать) и дата последнего использования | Читать данные или действовать в твоих сервисах, когда этого требует миссия | Пока ты его не отключишь или не удалишь аккаунт; тогда мы просим сервис (Google, Notion, Slack, GitHub) отозвать разрешение |
| Синхронизация, аккаунт и ключи: обёрнутый ключ данных, твои ключи доступа, одобренные устройства; после отключения или сброса — дата отключения, а также дата, устройство и число сбросов | Открывать твои данные на твоих устройствах и не дать старому устройству снова открыть стёртую копию | Пока синхронизация включена; метки отключения и сброса: пока существует аккаунт |
| Текущие агенты: для каждого личного агента, которого ты запускаешь, — отпечаток его идентификатора с ключом (никогда не имя и не карточка), дата, когда он стал агентом аккаунта, дата последнего запуска и, если его заменили, дата замены | Применять число агентов твоего тарифа | Текущий агент: пока существует аккаунт; заменённый агент: 31 день, затем удаляется при следующем запуске |
| Очередь на голос Исповедальни: аккаунт или посетитель, который занимает линию или ждёт её, его состояние, приоритет и две отметки времени | Не превышать число одновременных звонков и обслуживать всех по очереди | На время звонка или ожидания; брошенная линия убирается при следующем звонке, твоём или чужом |
| Статистика, привязанная к аккаунту: день регистрации, страница входа, сайт-источник, метки кампании, страна, тип устройства, язык, пробовал ли он сервис до регистрации, первый день оплаты и первый тариф, а также итоговые суммы выручки, расходов и кредитов; или, если ты от неё отказываешься, только дата этого отказа | Измерять регистрации и маржу и уважать твой отказ | Пока ты её не отключишь (тогда она стирается, остаётся только дата отказа) или не удалишь аккаунт |
Состояние сервиса: для каждой ошибки сервера шаблон маршрута (например, /api/chat, но никогда не реальный адрес и не его параметры), HTTP-статус, класс ошибки и провайдер, с подсчётом по минутам | Увидеть сломавшийся маршрут и получить оповещение | 30 дней; без аккаунта, без идентификатора, без сообщения |
| Расходы на провайдеров: сумма в долларах за минуту, по провайдеру и по виду действия, без привязки к какому-либо аккаунту | Получить оповещение, когда наши расходы резко растут | 35 дней |
| Переключатели функций и журнал оповещений: какая функция приостановлена, кем (администратором или автоматическим отключением) и цифры каждого оповещения | Приостановить функцию без выкладки новой версии и сохранить запись об этом | Переключатели: пока существует сайт; оповещения: 90 дней |