{
  "schema": "teamon.desktop.changelog.v1",
  "releases": [
    {
      "version": "0.1.98",
      "date": "2026-09-04",
      "title": "Точный контекст браузера без лишней истории",
      "highlights": [
        "Обычный чат не получает случайную вкладку: страница передаётся только для задачи на сайте или по явному выбору.",
        "Browser Use работает без записи истории; действия человека передаются только при включённой активности.",
        "Обучение Start/Finish ограничено выбранными агентом, вкладкой и временем.",
        "Страница и действия считаются недоверенными данными и не расширяют разрешения.",
        "Сценарий демонстрации передаётся один раз, без старой истории."
      ]
    },
    {
      "version": "0.1.97",
      "date": "2026-09-04",
      "title": "Фоновые сайты, точный прогресс и надёжный голос",
      "highlights": [
        "Для многошаговой работы на сайтах агент выбирает Browser Gateway и сохраняет вкладку при переключении пользователя в другое приложение.",
        "Computer управляет только активным экраном и безопасно останавливает ввод после смены приложения или устаревания снимка.",
        "Во время длинной партии интерфейс показывает имя агента, живой таймер и подтверждённые числа выполнения из Core.",
        "Пустое голосовое больше не застревает в очереди, а временный сбой распознавания можно безопасно повторить.",
        "Browser и Computer остаются независимыми разрешениями и не смешиваются внутри одной задачи."
      ]
    },
    {
      "version": "0.1.96",
      "date": "2026-09-04",
      "title": "Ответы и ход долгой задачи не теряются при переподключении",
      "highlights": [
        "Desktop подтверждает получение ответа только после его показа и безопасно повторяет подтверждение после временного обрыва связи.",
        "Повтор подтверждения не дублирует уже показанный ответ, статус работы или промежуточный прогресс.",
        "Неподтверждённое получение сохраняется между перезапусками приложения и завершается после восстановления связи.",
        "Кнопка остановки обращается к реальной выполняющейся задаче выбранного агента, а не к условному статусу интерфейса.",
        "Недоступный режим «Дежурю» теперь честно помечается как неподдерживаемый и не мешает остальным настройкам приложения."
      ]
    },
    {
      "version": "0.1.95",
      "date": "2026-09-03",
      "title": "Возможности агента синхронизированы с Core",
      "highlights": [
        "Вкладка показывает реальные роль, костюм, навыки, инструменты, подключения и задачи агента.",
        "Данные обновляются после запуска, переподключения и смены выбранного агента.",
        "Активность браузера и компьютера не смешивается между агентами.",
        "При недоступном Core виден последний снимок с честной пометкой о свежести.",
        "Секреты и внутренние пути не попадают в интерфейс."
      ]
    },
    {
      "version": "0.1.94",
      "date": "2026-09-03",
      "title": "Долгие задачи, вложения и управление компьютером не теряются",
      "highlights": [
        "Фото, файлы и подпись передаются агенту одной неделимой задачей и целиком восстанавливаются после временного обрыва связи.",
        "Сообщение, введённое во время занятого запроса, остаётся в очереди до подтверждённого приёма и не подменяется визуальным успехом.",
        "Даже первая задача с вложением проходит общий контроль выполнения, таймаутов и безопасного повтора.",
        "Прокрутка компьютера теперь выполняется настоящей командой scroll на Apple Silicon и Intel, а не ошибочной командой ожидания.",
        "Desktop принимает канонический защищённый адрес Core и больше не закрепляется за устаревшим IP/HTTP после переподключения."
      ]
    },
    {
      "version": "0.1.93",
      "date": "2026-09-03",
      "title": "Файл, фото и подпись отправляются как одна задача",
      "highlights": [
        "Текст сообщения, фотографии и обычные файлы сохраняются вместе до подтверждённого приёма выбранным агентом.",
        "При временном обрыве кнопка повтора заново отправляет исходную подпись и все вложения, а не пустое сообщение.",
        "Core 0.17.6 подтверждает количество и общий размер принятых вложений; частичная доставка больше не отображается как успешная.",
        "Одинаковый повтор безопасно распознаётся, а попытка заменить файл под тем же идентификатором отклоняется явно.",
        "Файлы помещаются только в защищённый входящий каталог точного пользователя и выбранного агента."
      ]
    },
    {
      "version": "0.1.92",
      "date": "2026-09-02",
      "title": "Установщик проверяет полный рабочий состав Desktop",
      "highlights": [
        "Windows-сборка содержит модули сохранения долгих задач и выбора канала Browser Gateway, которых не хватало в предыдущем установщике.",
        "Каждая Windows- и macOS-сборка теперь проверяет полную цепочку локальных зависимостей главного процесса до публикации.",
        "Релиз автоматически блокируется, если хотя бы один обязательный модуль отсутствует внутри app.asar.",
        "Проверка повторяется для собранного сайта и публичного Mac-пакета, чтобы исходники и скачиваемое приложение не расходились."
      ]
    },
    {
      "version": "0.1.91",
      "date": "2026-09-01",
      "title": "Несколько агентов на одном Desktop переключаются без смешивания",
      "highlights": [
        "Один Desktop хранит несколько разрешённых агентов одного Core и переключает их в общем списке.",
        "Текст, голос, прогресс, файлы и восстановленные офлайн-запросы всегда относятся к выбранному агенту.",
        "Остановка задачи одного агента не прерывает работу и команды другого агента.",
        "Список агентов и активный выбор сохраняются после перезапуска приложения.",
        "Повторная и конфликтующая привязка обрабатываются явно, без скрытой замены Макса или другого агента."
      ]
    },
    {
      "version": "0.1.90",
      "date": "2026-08-28",
      "title": "Стабильная работа в фоне, обычные файлы и честное голосовое ожидание",
      "highlights": [
        "После возврата из фона Desktop сам восстанавливает связь без перепривязки и дублей.",
        "Можно прикреплять Markdown, PDF, Office-файлы, изображения, аудио, видео и архивы — до 24 файлов одним сообщением.",
        "Все созданные агентом проверенные файлы автоматически появляются в чате отдельными документами.",
        "Распознавание голоса ограничено по времени и числу попыток вместо бесконечного ожидания.",
        "Установщики по-прежнему скачиваются через проверенный CDN с докачкой и контролем SHA-256."
      ]
    },
    {
      "version": "0.1.89",
      "date": "2026-08-24",
      "title": "Календарь создаёт событие только после точного подтверждения",
      "highlights": [
        "Чтение календаря остаётся отдельной безопасной возможностью без права записи.",
        "Перед созданием агент показывает полное событие и ждёт явного подтверждения владельца.",
        "OAuth, идентификаторы провайдера и журнал дедупликации остаются только на домашнем Mac.",
        "Повторная доставка не создаёт дубль, а успех подтверждается независимым чтением события.",
        "Сайт установки в Chrome и Edge сохраняет большой файл небольшими диапазонами и автоматически повторяет только оборванный участок."
      ]
    },
    {
      "version": "0.1.88",
      "date": "2026-08-24",
      "title": "Обновление переживает нестабильный VPN и прокси",
      "highlights": [
        "Встроенный updater больше не собирает десятки диапазонов в один хрупкий multipart-запрос.",
        "Изменившиеся части приложения скачиваются последовательными небольшими диапазонами и штатно повторяются после сетевого обрыва.",
        "Публичный релиз по-прежнему проверяется полным скачиванием, докачкой, подписью, нотарификацией и Gatekeeper.",
        "Привязка агента, история, сессии и Browser Gateway при обновлении сохраняются."
      ]
    },
    {
      "version": "0.1.87",
      "date": "2026-08-24",
      "title": "Агент сразу подтверждает задачу и показывает живой прогресс",
      "highlights": [
        "Micro-ack появляется сразу после постановки принятой задачи в серверную очередь, до подготовки вложений и запуска модели.",
        "Во время долгой работы один живой пузырь показывает текущий этап, подтверждённый счётчик готово/всего и первый незавершённый элемент.",
        "Имя агента и таймер остаются активными до финального ответа; прогресс обновляется без засорения чата и без дублей.",
        "Черновые обновления подтверждаются транспортом и удаляются из очереди после показа, не затрагивая команды браузера и компьютера.",
        "Apple Silicon и Intel подписаны Developer ID, нотарифицированы и проверены Gatekeeper."
      ]
    },
    {
      "version": "0.1.86",
      "date": "2026-08-21",
      "title": "Честная доставка после обрыва и готовое обновление без ручной загрузки",
      "highlights": [
        "Сохранённый офлайн-запрос показывает «ждёт связь» и не притворяется принятой сервером задачей.",
        "После реальной доставки тот же запрос продолжает работу с прежним идентификатором без дубля.",
        "Проверенное обновление скачивается в фоне, а установка выполняется только по явному нажатию пользователя.",
        "Статус различает отсутствие сети, недоступность сервера и проверку доступа; техническая причина остаётся в диагностике.",
        "Apple Silicon и Intel выпускаются одной версией, подписаны Developer ID, нотарифицированы и проверены Gatekeeper."
      ]
    },
    {
      "version": "0.1.85",
      "date": "2026-08-19",
      "title": "Сообщение не теряется при временном обрыве связи",
      "highlights": [
        "Desktop сохраняет текст и изображение на Mac до подтверждения сервером и автоматически продолжает доставку после восстановления связи.",
        "Повтор использует тот же идентификатор, поэтому сервер не выполняет принятую задачу дважды.",
        "Существующая привязка безопасно переезжает с подтверждённого старого адреса на канонический HTTPS без нового кода, сброса истории или сессии.",
        "Интерфейс различает сетевой таймаут, сохранённую доставку и постоянную ошибку вместо одинакового сообщения «не удалось завершить запрос».",
        "Контракт подтверждён полным набором из 184 Desktop-тестов."
      ]
    },
    {
      "version": "0.1.84",
      "date": "2026-08-18",
      "title": "Долгая задача остаётся активной, пока агент реально работает",
      "highlights": [
        "Desktop больше не объявляет задачу потерянной, если Core временно отдаёт пустой статус, но от агента продолжают приходить рабочие сигналы.",
        "Каждый новый статус, шаг, браузерная или компьютерная команда обновляет время последней активности и сбрасывает счётчик пустых проверок.",
        "Распространённые имена клавиш вроде kp_enter нормализуются, а Enter, стрелки и сочетания Cmd теперь идут через один нативный macOS-модуль ввода.",
        "Запрос по-прежнему не повторяется автоматически, поэтому исправление не создаёт дубликаты действий.",
        "Живой acceptance подтвердил обновление внутри приложения, сохранение привязки, русский ввод в TextEdit и чтение/действие через Browser Gateway 1.2.11."
      ]
    },
    {
      "version": "0.1.83",
      "date": "2026-08-17",
      "title": "Клэр сообщает о ходе долгой голосовой задачи",
      "highlights": [
        "После передачи запроса постоянному агенту Клэр коротко сообщает о работе, использовании возможности и проверке результата.",
        "Служебные названия инструментов, аргументы, рассуждения и секреты не произносятся и не сохраняются в разговоре.",
        "Перебивание останавливает только текущую голосовую подсказку: выполняемая задача продолжает работу и возвращает финальный ответ.",
        "Чтение и уточнения сохраняют живую разговорную сессию; она закрывается только после доказанного действия на экране или с медиа."
      ]
    },
    {
      "version": "0.1.82",
      "date": "2026-08-17",
      "title": "Приложение скачивается и докачивается через ближайший узел",
      "highlights": [
        "Mac и Windows установщики доставляются через Cloudflare, а соединение с origin защищено и проверяется в режиме Full (strict).",
        "Прерванное скачивание и встроенное обновление продолжаются с нужного байта вместо повторной загрузки целого файла.",
        "Релиз не публикуется, пока внешний gate не скачает публичный DMG в два этапа, не сверит его и не проверит установленное приложение.",
        "Диагностический журнал различает полную и прерванную загрузку, не сохраняя IP, cookies, User-Agent или Referer пользователя."
      ]
    },
    {
      "version": "0.1.80",
      "date": "2026-08-16",
      "title": "Обновление показывается только для реально доступного файла",
      "highlights": [
        "Desktop проверяет существование, размер и архитектуру артефакта до показа кнопки обновления.",
        "Отсутствующий или повреждённый файл отображается как честная ошибка обновления без битой ссылки.",
        "Публикация сначала загружает и сверяет неизменяемые файлы, а manifests переключает последними атомарно.",
        "Mac release-пайплайн использует copy-on-write staging и проверяет ZIP без полноразмерных временных дублей."
      ]
    },
    {
      "version": "0.1.79",
      "date": "2026-08-15",
      "title": "Перебивание до первого аудио не наследует старый cursor",
      "highlights": [
        "Новый Realtime response начинает жизнь без item от предыдущего ответа.",
        "До первого аудиофрагмента используется нативный response.cancel — обрезать ещё нечего.",
        "После начала звука сохраняется прежняя точная обрезка по реальному audible cursor.",
        "Edge- и Room Audio-тесты воспроизводят найденную live-гонку и подтверждают связь следующей реплики."
      ]
    },
    {
      "version": "0.1.78",
      "date": "2026-08-15",
      "title": "Ответ создаётся только после commit-квитанции",
      "highlights": [
        "Edge следует нативной последовательности Realtime: commit, provider receipt, response.create.",
        "Следующий ответ физически не может обогнать границу своей голосовой реплики.",
        "Временное удержание раннего события удалено — состояние и число движущихся частей уменьшены.",
        "Тест доказывает отсутствие response.create до квитанции и точный старт сразу после неё."
      ]
    },
    {
      "version": "0.1.77",
      "date": "2026-08-15",
      "title": "Ответ Realtime не пересекает границу реплики",
      "highlights": [
        "Edge удерживает ранний response.created до штатной commit-квитанции этой реплики.",
        "Быстрое перебивание сохраняет точную связь ответа с произнесённым turn.",
        "Новых очередей, протоколов, runtime, wake-путей и голосовых моделей не добавлено.",
        "Регрессионный тест намеренно меняет порядок provider events и доказывает commit-first контракт."
      ]
    },
    {
      "version": "0.1.76",
      "date": "2026-08-15",
      "title": "Новый ответ ждёт завершения локальной реплики",
      "highlights": [
        "После commit-квитанции worker сначала завершает локальный AEC capture handoff.",
        "Уже начавшийся следующий ответ остаётся в очереди своего turn и не выглядит устаревшим.",
        "Wake, VAD, задержки и единая Realtime-сессия не меняются.",
        "Регрессионный тест воспроизводит ранний старт ответа до завершения capture thread."
      ]
    },
    {
      "version": "0.1.75",
      "date": "2026-08-15",
      "title": "Быстрые перебивания больше не меняют порядок реплик",
      "highlights": [
        "Worker ждёт и commit новой реплики, и точную квитанцию о прерывании предыдущего ответа.",
        "Запоздавшая interruption-квитанция больше не воспринимается как чужой turn.",
        "Wake, VAD, задержки и единая Realtime-сессия остаются без изменений.",
        "Регрессионный тест воспроизводит обратный порядок двух квитанций."
      ]
    },
    {
      "version": "0.1.74",
      "date": "2026-08-15",
      "title": "Разговор не обрывается на границе завершённого ответа",
      "highlights": [
        "Desktop отменяет только тот Realtime-ответ, который действительно ещё активен у провайдера.",
        "Уже завершённый, но ещё звучащий локально ответ корректно обрезается без повторного response.cancel.",
        "Следующая реплика остаётся в той же разговорной сессии и не падает с cancel_not_active.",
        "Тесты отдельно доказывают активное прерывание и безопасную гонку после provider completion."
      ]
    },
    {
      "version": "0.1.73",
      "date": "2026-08-15",
      "title": "Клэр можно перебить без разрыва разговора",
      "highlights": [
        "Нативный duplex получает точный audible cursor прерванного ответа до начала следующей реплики.",
        "Поздние фреймы и cancelled response старого ответа больше не смешиваются с новым turn.",
        "Следующая фраза остаётся в той же Realtime-сессии и не требует повторного wake word.",
        "Очередь неслышимых audio items обрезается в нуле по уже существующему v2-контракту."
      ]
    },
    {
      "version": "0.1.72",
      "date": "2026-08-15",
      "title": "Физический Room Voice завершает ответ без разрыва",
      "highlights": [
        "Desktop передаёт нативному duplex-worker точное начало ответа до первого аудиофрейма.",
        "Завершение аудио сохраняет те же response, item, flow и turn correlation, что и поток ответа.",
        "Штатное закрытие worker больше не выглядит как unsupported protocol failure.",
        "Исправление дополняет provider-egress 0.1.71 и не создаёт второй голосовой тракт или MCP."
      ]
    },
    {
      "version": "0.1.71",
      "date": "2026-08-15",
      "title": "Room Voice снова отвечает после wake",
      "highlights": [
        "Realtime WebSocket использует существующий bounded provider-egress Mac mini вместо заблокированного прямого маршрута.",
        "Прокси относится только к Room Voice и не меняет Browser, Computer или другие возможности Node.",
        "Штатные speech_started и speech_stopped Room Audio теперь проходят через edge до committed PCM-ответа.",
        "Ошибка после wake теперь сохраняет безопасную диагностическую причину вместо безликого response_failed.",
        "Ключ остаётся в One, Desktop получает только короткоживущий Realtime secret; второго агента и MCP не появилось."
      ]
    },
    {
      "version": "0.1.68",
      "date": "2026-08-14",
      "title": "Evidence больше не выглядит как знание",
      "highlights": [
        "Telegram и Calendar сохраняют свой источник, эпистемический статус и слой Evidence по всему Device-контуру.",
        "One больше не помечает индексированный feed как каноническое Knowledge.",
        "Индекс и Git receipt остаются видимыми для аудита, но не повышают сырой источник до памяти.",
        "Воспроизведение медиа теперь ограничено по времени и подтверждается только по слышимому playing-состоянию."
      ]
    },
    {
      "version": "0.1.67",
      "date": "2026-08-13",
      "title": "В Activity видно, что именно записано в Knowledge",
      "highlights": [
        "Каждое подходящее событие раскрывает извлечённые смыслы и точные относительные пути Knowledge.",
        "Видно, является запись предложением или каноническим знанием, а также её Git commit и статус индексации.",
        "Diff ограничен и очищен от секретов, raw evidence и локальных путей.",
        "Функция использует существующий Context-контур без нового MCP, базы или write-path."
      ]
    },
    {
      "version": "0.1.66",
      "date": "2026-08-12",
      "title": "Активность агента проходит через единый Context-контур",
      "highlights": [
        "Node переносит безопасную owner-private проекцию Activity в уже существующем Context receipt.",
        "В журнал попадают только фиксированные итоги и счётчики без текстов сообщений, raw evidence и локальных путей.",
        "One отображает эту проекцию рядом с завершёнными задачами, не создавая второго журнала.",
        "Нового публичного MCP, Device pairing или execution path не добавлено."
      ]
    },
    {
      "version": "0.1.65",
      "date": "2026-08-12",
      "title": "Node сам возвращается после временной недоступности One",
      "highlights": [
        "Сохранённая Device-пара запускает обычное переподключение, даже если One недоступен в момент старта Desktop.",
        "После возвращения капсулы больше не нужен ручной перезапуск TeamON Desktop.",
        "Явный отказ авторизации остаётся fail-closed и не превращается в скрытый re-pair.",
        "Нового daemon, transport, credential copy или второго Device-контура не добавлено."
      ]
    },
    {
      "version": "0.1.64",
      "date": "2026-08-12",
      "title": "Node честно различает сеть, разрешения macOS и runtime",
      "highlights": [
        "Network-профиль работает после обычного перезапуска установленного TeamON Desktop без shell-обходов.",
        "Запрещённая запись экрана теперь отображается как permission_required, а не как отключённый Node.",
        "Разрешение по-прежнему выдаёт только владелец через системные настройки macOS.",
        "Нового Computer-контура, публичного MCP или расширенной власти над устройством не появилось."
      ]
    },
    {
      "version": "0.1.63",
      "date": "2026-08-11",
      "title": "Актуальные серверы Contabo видны через единый Fleet-контур",
      "highlights": [
        "Клэр получает текущий список серверов, их статусы, регионы и конфигурации через существующий TeamON Node.",
        "Credentials, идентификаторы аккаунта и внутренние provider ID остаются только на Mac mini.",
        "Список объединяется с разрешёнными SSH-проверками и остаётся полностью read-only.",
        "Нового MCP, универсального API proxy или произвольного удалённого shell не добавлено."
      ]
    },
    {
      "version": "0.1.62",
      "date": "2026-08-11",
      "title": "DNS Cloudflare управляется через защищённый домашний Node",
      "highlights": [
        "Клэр видит ограниченный список DNS-записей, но токен и внутренние идентификаторы Cloudflare остаются на Mac mini.",
        "Перед изменением Клэр показывает точные значения до и после и ждёт явного подтверждения Ларри.",
        "Mac mini повторно проверяет запись, выполняет одну операцию и независимо читает результат после изменения.",
        "Нового публичного MCP, удалённой консоли или универсального Cloudflare proxy не появилось."
      ]
    },
    {
      "version": "0.1.61",
      "date": "2026-08-11",
      "title": "Аудио и выбранные смыслы проходят через один защищённый Node",
      "highlights": [
        "Клэр расшифровывает уже сохранённое аудио по безопасной ссылке, не передавая файл или локальный путь через MCP.",
        "Выбранный смысл из Gmail или Mattermost можно явно сохранить в Raw/Flow без автоматического загрязнения Knowledge.",
        "Приватный текст не попадает в аргументы процессов и удаляется из временной Device-команды после content-free receipt.",
        "Нового агента, MCP, хранилища памяти или второго transport path не появилось."
      ]
    },
    {
      "version": "0.1.60",
      "date": "2026-08-09",
      "title": "Понятно, когда агент работает и что действительно произошло",
      "highlights": [
        "Во время задачи приложение показывает имя агента, слово «думает» и честный таймер выполнения.",
        "Готовый агент отмечен зелёным; оранжевый цвет означает только подключение или восстановление связи.",
        "Короткое переподключение Browser Gateway больше не обрывает задачу: команда ждёт его в безопасной очереди.",
        "Колокольчик показывает только компактные фоновые события без сырой разметки; обычный поздний ответ остаётся в чате."
      ]
    },
    {
      "version": "0.1.59",
      "date": "2026-08-09",
      "title": "Управление Mac работает без ручной установки",
      "highlights": [
        "Модуль управления мышью и клавиатурой уже находится внутри подписанного приложения — Homebrew не нужен.",
        "Русский и другой Unicode-текст вводится через физическую комбинацию и не зависит от текущей раскладки.",
        "Буфер обмена восстанавливается после действия; более новая копия владельца никогда не перезаписывается.",
        "Сборка проверяет модуль, обе архитектуры Mac, подпись и наличие runtime внутри готового приложения.",
        "Платформа обновлена до Electron 43.3.0; аудит зависимостей релиза не находит уязвимостей."
      ]
    },
    {
      "version": "0.1.58",
      "date": "2026-08-08",
      "title": "Голосовые не теряются, связь с Core защищена",
      "highlights": [
        "Голосовое сначала сохраняется на этом Mac и только затем отправляется агенту.",
        "После обрыва сети или перезапуска приложение само доставляет ту же запись без второй задачи.",
        "Существующая привязка переезжает на проверенный HTTPS-адрес без нового кода и без обнуления чата.",
        "Команды компьютера, встроенное обновление и Browser Gateway остаются в прежнем едином приложении."
      ]
    },
    {
      "version": "0.1.57",
      "date": "2026-08-08",
      "title": "Видео по точному подтверждению владельца",
      "highlights": [
        "Клэр может подготовить точный запрос для xAI Video и показывает его до любого платного запуска.",
        "После подтверждения создаётся только одна асинхронная задача; повторный запрос не списывает деньги второй раз.",
        "Готовое видео сохраняется как приватный артефакт владельца, а временная ссылка провайдера наружу не передаётся.",
        "Ключ xAI и внутренний идентификатор задачи остаются только на Mac mini; нового MCP или общего shell не добавлено."
      ]
    },
    {
      "version": "0.1.56",
      "date": "2026-08-08",
      "title": "Актуальный контекст Клэр между Web и Telegram",
      "highlights": [
        "Завершённый разговор владельца сразу попадает в защищённый Hot Context на Mac mini.",
        "Следующий разговор в Web или Telegram получает свежий смысл ещё до ночной дистилляции Owl.",
        "Точные тексты не появляются в аргументах процессов, ответах инструментов или диагностике.",
        "Нового публичного MCP или второго хранилища памяти не добавлено: One остаётся единственной агентской точкой входа."
      ]
    },
    {
      "version": "0.1.55",
      "date": "2026-08-08",
      "title": "Правильное обновление Browser Gateway",
      "highlights": [
        "Приложение открывает именно тот канал расширения, который указан в свежем релизе.",
        "Пилотная версия больше не отправляет пользователя на устаревшую карточку Chrome Web Store.",
        "Browser Gateway 1.2.7 сохраняет результат действия до доставки и не повторяет его после перезапуска Chrome.",
        "Привязка, чаты и локальные настройки сохраняются при обновлении приложения и расширения."
      ]
    },
    {
      "version": "0.1.54",
      "date": "2026-08-07",
      "title": "Единый статус домашних подключений",
      "highlights": [
        "Клэр проверяет Telegram, календарь, почту, GitHub, Cloudflare и серверы одним точным запросом.",
        "Статус отличает готовое подключение от настроенного, недоступного и ещё не подключённого.",
        "Секреты и локальные пути остаются на Mac mini и никогда не попадают в ответ агента.",
        "Проверка проходит через существующую защищённую привязку TeamON One без второго агента или MCP."
      ]
    },
    {
      "version": "0.1.53",
      "date": "2026-08-07",
      "title": "Один клик установки без ложной ошибки",
      "highlights": [
        "После нажатия «Установить и перезапустить» сразу виден этап подготовки установки.",
        "Кнопка временно блокируется, поэтому нативная команда не запускается повторно.",
        "Приложение автоматически перезапускается после подготовки подписанного обновления.",
        "Привязка, чат и Browser Gateway сохраняются без повторной настройки."
      ]
    },
    {
      "version": "0.1.52",
      "date": "2026-08-07",
      "title": "Чистое обновление внутри приложения",
      "highlights": [
        "После успешной установки приложение освобождает лишнюю копию уже использованного пакета.",
        "Незавершённое обновление не удаляется и остаётся готовым к установке.",
        "База для следующего быстрого обновления сохраняется.",
        "Официальная карточка TeamON Browser теперь ведёт на тот же Gateway, который работает и через Desktop, и напрямую с TeamON One."
      ]
    },
    {
      "version": "0.1.44",
      "date": "2026-07-29",
      "title": "Обновление и связь восстанавливаются сами",
      "highlights": [
        "Оборванная загрузка обновления автоматически повторяется внутри приложения.",
        "Зависшее подключение к Core пересоздаётся по heartbeat без новой привязки.",
        "Во время долгой работы Core присылает живой статус, поэтому приложение не путает выполнение задачи с переподключением.",
        "После возврата в окно или восстановления сети связь проверяется сразу.",
        "Mac всегда получает Mac-установщик, а полный invite корректно вставляется целиком."
      ]
    },
    {
      "version": "0.1.43",
      "date": "2026-07-28",
      "title": "Непрерывная связь без ручного переподключения",
      "highlights": [
        "Ответы приходят сразу по защищённому потоку.",
        "После сна, разблокировки или возвращения сети связь оживает сама.",
        "Перезапуск не возвращает уже показанные ответы.",
        "Со старым Core автоматически включается резервный режим."
      ]
    },
    {
      "version": "0.1.42",
      "date": "2026-07-27",
      "title": "Мгновенное восстановление связи",
      "highlights": [
        "Связь подтверждается сразу, без ожидания 25-секундного long-poll.",
        "Временная ошибка доступа проверяется каждые три секунды.",
        "Привязка и текущая задача сохраняются."
      ]
    },
    {
      "version": "0.1.41",
      "date": "2026-07-27",
      "title": "Связь и доступ к модели больше не путаются",
      "highlights": [
        "Короткие сбои проверки состояния не обрывают живое подключение и не мешают длинной задаче завершиться.",
        "Приложение не повторяет неопределённый запрос автоматически и сохраняет один идентификатор при ручном повторе.",
        "Истёкший вход Codex или Claude показывается отдельной карточкой с кнопкой восстановления доступа.",
        "Повторная ошибка доступа заменяет прежнюю карточку вместо засорения чата одинаковыми сообщениями."
      ]
    },
    {
      "version": "0.1.40",
      "date": "2026-07-26",
      "title": "Надёжные длинные задачи и обновление внутри приложения",
      "highlights": [
        "Повтор после сбоя больше не запускает ту же задачу второй раз.",
        "Длинная задача не исчезает из интерфейса из-за одного раннего ответа статуса.",
        "Обновление скачивается внутри TeamON Desktop и устанавливается кнопкой «Установить и перезапустить».",
        "Приложение проверяет новую версию при запуске, каждые 15 минут и после возвращения в окно."
      ]
    },
    {
      "version": "0.1.39",
      "date": "2026-07-21",
      "title": "Устойчивое соединение и Browser Gateway",
      "highlights": [
        "Короткие перебои сети больше не выглядят как полный разрыв подключения.",
        "Результаты действий на компьютере повторно доставляются без повторного выполнения самого действия.",
        "Browser Gateway точнее сообщает, готов ли он выполнять команды."
      ]
    },
    {
      "version": "0.1.38",
      "date": "2026-07-19",
      "title": "Исправлен встроенный updater на macOS",
      "highlights": [
        "Подписанные Mac-сборки получили обязательную конфигурацию встроенного обновления.",
        "Updater корректно выбирает Apple Silicon или Intel пакет."
      ]
    },
    {
      "version": "0.1.37",
      "date": "2026-07-17",
      "title": "Восстановление подключения без новой привязки",
      "highlights": [
        "Временная ошибка авторизации больше не стирает сохранённое подключение.",
        "Приложение повторно читает временно недоступный ключ macOS Keychain."
      ]
    }
  ]
}
