Что нового
Что нового в VoiceHotKey — заметки о выпусках для Mac, Windows, iOS, Android и Linux. Фильтруйте по своей платформе.
Блёстки в строке меню при действиях ИИ
- Анимация блёсток для действий ИИ на иконке в строке меню.
Исправление кириллической вставки в Telegram
- Исправление
кириллическая вставка в Telegram — мульти-форматный буфер обмена (CF_TEXT + CF_UNICODETEXT), HGLOBAL-ы GMEM_FIXED, ANSI-кодовая страница с учётом письменности.
- Имена микрофонов в UI: убран локализованный префикс «Microphone» для чистоты списка.
- В комплекте идёт ScSignTool, поэтому подписание релиза больше не зависит от системного PATH.
- Повторная проверка буфера обмена после закрытия и таймер восстановления на 1 с.
- Новый пункт меню «Голос в текст» с умной обработкой клика по строке состояния.
- Настройка «Show Floating Animation» позволяет скрыть оверлей во время записи.
- Исправление
место вставки при диктовке в Notion.
- Отмена транскрипции тапом по вращающейся анимации (с льготным периодом 1 с).
- «Cancelled» отображается красным в истории.
- Улучшение
таймаут чтения/записи OkHttp уменьшен с 2 мин до 1 мин.
Настраиваемые цвета Air Button
- Настраиваемые градиентные цвета для Air Button, с выбором цвета прямо в настройках.
- Иконка в строке меню стала анимированным SwiftUI-представлением в стиле AirButton.
- Исправление
полосы амплитуды замирали после заполнения аудио-буфера.
- Вся строка инструментов ИИ теперь кликабельна для переключения каждого чекбокса.
Выбор цвета
- Выбор цвета в настройках для кастомизации цветов микрофона и градиента анимации.
- Динамические цвета Material You для микрофона.
- Живой предпросмотр при перетаскивании ползунков цвета.
- Опция показа кнопки отмены во время записи.
Жестовое меню ИИ, анимации как на macOS
- Рефакторинг процесса записи — выбор действия ИИ после записи через жесты.
- Радиальная анимация OK для записи, как на macOS.
- Иконка AirButton, как на macOS.
- Вращающийся дуговой спиннер, как на macOS.
- Опция ставить звук других приложений на паузу во время записи.
- Переключение между буфером обмена и прямой вставкой текста для диктовки.
- Правый клик в любом месте оверлея записи отменяет её (левый клик больше не отменяет).
- Радиальные полосы амплитуды теперь начинаются сразу за кругом OK для лучшей видимости шёпота.
- Archive script: исправление нотаризации с помощью notarytool submit, stapling и проверки.
Air Button становится по умолчанию
- Air Button по умолчанию отображается размером 32 px, диапазон ползунка 16–32 px.
- В подстановки добавлена опция чувствительности к регистру.
- Кнопки ретранскрипции по каждому языку в элементах истории.
- Вращающийся дуговой спиннер в стиле macOS.
- Программная иконка Air Button с концентрическими окружностями (больше не PNG).
- Правый клик для отмены записи в анимационном оверлее.
Air Button, перетаскиваемый оверлей, вращающийся спиннер
- Air Button стал перетаскиваемым; оверлей записи унифицирован и перепозиционируем.
- Вращающийся дуговой спиннер заменяет точки транскрибирования.
- Радиальные полосы амплитуды заменяют круговые кольца громкости во время записи.
- Кнопка OK и круговая анимация громкости заменяют волновую форму записи.
- Улучшение
отзывчивость непрерывной речи.
- Исправление
периодический сбой вставки (Cmd+V теперь отправляется синхронно).
- Автовыбор модели по умолчанию с сервера (убран захардкоженный gpt-4o-mini).
- Исправление
вход по email-ссылке (long-poll теперь действительно работает).
- Исправление
диктуемый текст вставлялся в неправильное место при курсоре в середине предложения.
- Исправление
диктовка не сохранялась в Google Keep.
- Air Button переработан с программными концентрическими окружностями и тремя разрывами во внешнем кольце.
- Постобработочные хоткеи camelCase и Title Case.
- Использует источники ввода клавиатуры для выбора языков транскрипции по умолчанию при первом запуске.
- Исправление
внешний USB-микрофон перекрывался встроенным микрофоном MacBook.
- Чередование цветов строк в списке хоткеев с учётом темы.
- Настройка «Show press-and-hold option» — скрыть чекбокс «удержание» по умолчанию.
- Исправление
отображение хоткеев показывало модификаторы после обычных клавиш (например, 1+Ctrl).
- Исправление
вставка печатала одну букву вместо Ctrl+V на русской раскладке.
- Исправление
пустой список хоткеев после свежего входа.
- Перетаскивание для изменения порядка хоткеев с индикатором цели.
- Многострочный ввод для полей замены в подстановках.
- Чередование цветов строк для групп хоткеев.
- Исправление
падение при отключении аудиоустройства во время активной записи.
- Улучшение
пакетная передача evdev и кеширование XID X11-оверлея снижают нагрузку на конвейер ввода.
- Исправление
падение в процессе авторизации при уходе приложения в фон.
- Исправление
падение при пустом списке AI-серверов.
- Исправление
падение при повторной доставке long-poll запроса авторизации.
- Сохраняется «последний рабочий» API-сервер для переключения при сбое эндпоинта.
- Автоматическое копирование ретранскрибированного текста в буфер обмена в истории.
- Исправление
артефакты пунктуации/пробелов/регистра после пустых подстановок.
Резервирование API везде
- Резервирование API-серверов для всех сборок — приложение переживает отказ отдельных эндпоинтов.
- Переименовано «Manage» → «Manage subscription» во всех 59 переводах.
- Улучшена логика надписи на кнопке подписки с использованием серверных флагов.
- Исправление
кнопка Manage subscription не открывала браузер из-за пробелов в URL.
- Исправление
подстановки не работали для нелатинских языков (русский, CJK и т. д.).
- Обработчик падений улучшен для случаев повреждения кучи/стека.
- Дампы падений теперь включаются в ручные отчёты о проблемах.
- Резервирование API-серверов с захардкоженными значениями по умолчанию и api_version=2.
- К deviceId добавлен ANDROID_ID для уникальной идентификации устройства.
- Уменьшены задержки GTK во вкладке истории, чтобы предотвратить зависание хоткея.
- Исправление
хоткей навсегда умирал после задержек главного потока GTK.
- Исправление
хоткей не отвечал 3–6 с (операции X11-оверлея перенесены с главного потока GTK).
- Защитные ограничители записи, предотвращающие случайные короткие/дублирующиеся записи.
- Исправление
зависание кнопки отчёта (таймауты подпроцессов и исправление двойного логирования).
Стабильность захвата аудио
- Финализация потока vorbis до отключения устройства WASAPI, чтобы предотвратить повреждение кучи.
- Отключён WASAPI AUTOCONVERTPCM для устройств захвата.
- Отмена всех HTTP-запросов через CancelToken.
- Исправление
хоткеи умирали после отключения клавиатуры (циклы переподключения).
- Исправление
падение из-за повреждения кучи при остановке записи на Windows 10 14393.
- Исправление
состояние гонки в аудио-коллбэке при остановке захвата.
- Скрытие микрофона, когда устройство неактивно (блокировка, doze, Always-on Display).
- К отображаемым именам кнопок мыши добавлен префикс «Mouse».
- Исправление
режим удержания кнопки мыши.
Релиз в Mac App Store
- Диалог согласия на обработку данных для MAS Guidelines 5.1.1(i) / 5.1.2(i).
- Единое имя пакета «VoiceHotKey» для MAS и Direct-дистрибутивов.
- Имя пакета лаунчера закреплено как «VoiceHotKey Launcher» во всех локалях.
- Нейтральный текст «Continue» заменяет директивные запросы разрешений для проверки MAS.
Хоткеи мыши, вкладка AI, вкладка Files
- Поддержка хоткеев на кнопки мыши.
- Поддержка буфера обмена X11 и режима удержания.
- udev-правило uinput и запрос на перезагрузку установщика при добавлении в группу input.
- Вкладка AI с управлением пользовательскими промптами (только для моделей completion).
- Вкладка Files для транскрипции аудио/видеофайлов.
- Вкладка About с информацией о приложении, копирайтом и соц-ссылками.
- Проверки целостности установки.
- Резервирование API-сервера с использованием списка api_servers, предоставленного сервером.
- Переключение при не-JSON ответах API (ошибки nginx/прокси).
- Исправление разбора ответа SSE-потока при транскрипции файла.
- Скрытие оверлея при блокировке устройства или Always-on Display.
- Резервирование API-серверов.
- Резервирование API-серверов для всех API-вызовов (со значением api2.voicehotkey.com по умолчанию).
- Предупреждение при сбое хоткеев из-за отсутствия прав на группу input.
- Автоматическая проверка подписки при запуске через entitlements StoreKit 2.
- Встроенное руководство по accessibility заменяет отдельное окно обучения.
- Внепроцессный AccessibilityStatusHelper для точного состояния разрешений TCC.
- Настройка переименована в «Restore Clipboard After Pasting» (значение по умолчанию инвертировано).
- Проверка хэша SHA256 для автообновлений.
- Полная замена хоткеев, управляемая сервером (логика слияния убрана).
- Настройка — останавливать запись на вкладке Files хоткеями.
- Перетаскивание для изменения порядка хоткеев.
- Оверлей больше не мешает листам покупок App Store.
- Восстановление подписки теперь использует original_transaction_id для обнаружения конфликтов.
- Год в копирайте обновлён на 2026.
- Перетаскивание для изменения порядка хоткеев на главной вкладке.
- Убрано понятие «основной хоткей» — все хоткеи теперь равноправны.
- Серверные URL релизов для проверок обновлений по регионам.
- Пустая строка хоткея при первом запуске, когда хоткеи не заданы.
13 новых языков интерфейса
- 13 новых переводов интерфейса с переключением языка в реальном времени.
- Кеширование аудиоустройств, чтобы избежать повторного перечисления ALSA.
- Точное определение дистрибутива и окружения рабочего стола для отчётов об ошибках.
- Новое действие хоткея PasteLast — вставить последний результат из истории.
- Упрощённое меню Intelligence с отдельными действиями Translate и Fix Layout.
- Язык и модель по умолчанию для действий перевода с серверной заменой модели.
- Исправление
китайские кавычки в zh.rc вызывали ошибки компилятора RC.
X11 + Wayland, x86_64 + aarch64
- Исправления совместимости с Linux Mint; интеграция с иконками/меню Cinnamon; поддержка emoji-шрифтов.
- 4-сборочная архитектура — X11 + Wayland для x86_64 и aarch64.
- Поддержка удалённой сборки через SSH для кросс-архитектурного деплоя.
- Резервный механизм автовставки на X11 через xdotool.
- Убрано «Upgrade Pro» для пользователей, уже подписанных на Pro.
- Исправление
дата окончания использовала локальную дату.
- Поддержка мульти-архитектур x86_64 и aarch64.
- Неразрывные автообновления применяются, когда приложение простаивает.
- Логи перенесены в постоянное место с ротацией по размеру.
- Кеширование балансировщика для устойчивости в офлайне.
- Повтор по конкретному языку, dev-режим, обновления только на повышение версии.
- Определение пакетов ALSA для Ubuntu 24.04+.
Автоустановка и автообновление
- Инфраструктура автоустановки и автообновления с проверкой SHA256 и сжатием UPX.
- Иконка микрофона заменена на кастомную, вдохновлённую macOS.
- Транскрипция и обработка ИИ объединены в один запрос.
- Глобальное устройство и параллельные операции для снижения задержки вставки.
- Оверлей записи с анимацией волны и всплывающей историей.
- Вкладка Substitutions для правил замены текста.
- Вкладка Report Problem для отправки отчётов об ошибках.
- Реальные уровни звука во время записи.
- Сохранение/восстановление размера окна при перезапуске.
- Устанавливает и CLIPBOARD, и PRIMARY-выделение при вставке.
Linux MVP
- Первый клиент для Linux — хоткеи, история, вставка из буфера, вход, подстановки, действия ИИ, языки.
Чёрная тема
- Чёрная тема.
- Добавление хоткея через кнопку «+» на главной вкладке.
- Корректная обработка перезапуска/выхода из системы Windows.
- Кнопка повтора при ретранскрипции.
- Сообщение об ошибке при смене режима с недействительной лицензией.
- Исправление
записи зависали в обработке после отменённой загрузки.
- Диктовка теперь вставляет текст в середину существующего, а не заменяет его.
- Обработка множественной пунктуации; условная вставка префикса/суффикса.
- Снижен рост CPU во время записи (таймер перенесён в AppState во избежание циклов удержания).
- Сброс appStatus из коллбэков для гарантии состояния `.idle` после операций.
- Панель записи выводится вперёд сразу, как только становится доступна.
- Блокируются события реактивации, не инициированные пользователем; дополнительное логирование вокруг реактивации.
- Сворачивание окна вместо выхода из приложения при закрытии.
- Исправление
сообщение об ошибке лицензии скрывается при её обновлении.
Нажмите Esc, чтобы остановить запись
- Добавлена опция останавливать запись нажатием Escape.
- Событие Esc поглощается при отмене, чтобы не распространяться на другие приложения.
- Резервный механизм и расширенное логирование для периодической видимости анимации транскрибирования.
Запись через Bluetooth
- Опция записи через Bluetooth с дифференцированной обработкой аудиоисточника.
- Вибро-отклик.
- Защита при выключенном Bluetooth.
- Исправление
скачок вёрстки на устройствах Samsung.
- Подавление непреднамеренной активации приложения в течение 1,5 с после пробуждения или смены источника питания.
- Резервная логика позиционирования при отсутствии `kCGWindowBounds` — оверлей всегда появляется.
- Уменьшен размер канала для предотвращения высокого потребления памяти.
- Исправление
множественные потенциальные падения при инициализации.
Микс голоса и наушников в текст
- Микс аудио — голос и наушники транскрибируются вместе, нормализуются и сбрасываются каждую секунду.
- Исправление
состояние гонки при микшировании аудио.
- Обходной путь для приложений с непостоянным фокусом, таких как ChatGPT Atlas и Notion.
- Экономия батареи, когда пользователь не вошёл или вышел из приложения.
- Email включён в имя лог-файла; длина имени ограничена 255 символами.
- Инструмент ИИ «translate» добавлен в меню Air Button.
- Расположение инструментов ИИ по кругу с поддержкой клика мышью.
- Обновлено несколько библиотек.
- Обучение временно отключено.
- Исправление
нижняя кнопка истории не была видна, если у пользователя есть нав-бар.
- Исправления производительности процесса записи.
- Индикатор загрузки во время запроса покупки.
- Обновлена версия библиотеки billing.
- Исправление
падение из-за доступа из главного потока и изменяемости.
- Добавлен `PowerSourceMonitor` для сопоставления подключений зарядки с активациями приложения.
Air Button выходит на Windows
- Air Button — первое появление на Windows (совпадает с дизайном macOS).
- Снижена частота опроса микрофона во избежание сбоев CoreAudio и неполных списков устройств.
- Исправление
падение из-за принудительного разворачивания координат оверлея.
- В сборке Mac App Store не регистрируется Open at Login по умолчанию.
- Кнопки Terms of Service и Privacy Policy перенесены в меню About.
- Добавлена опция удаления аккаунта (сборка 467).
- Изменения кода в ответ на «Missing Screen Recording Usage Explanation».
- Исправление
утерянные сетевые разрешения из-за правки entitlements.
Ручной выбор языка речи
- Опция ручного выбора языка речи.
- Принудительный повтор на другом сервере при любой ошибке транскрипции.
- Корректное перепозиционирование при выборе языка речи.
- Один масштаб для записи и ИИ-транскрипции.
- Наблюдатели пробуждения гарантируют показ оверлея после пробуждения.
- Исправление
определение разрешений Accessibility на macOS ≥ 12 и < 15.
- Применение accessibility без перезапуска.
- Дружественная к Mac App Store обработка перезапуска для Accessibility.
- Убраны зависимости AlamoFire, Moya и KeyboardKit.
- Библиотека KeyboardShortcuts обновлена до 2.4.
- Анимации записи и транскрипции в стиле Mac.
- Логика выбора сервера.
- Не показывать опцию языка, если пользователь говорит только на одном языке.
- В первый раз показывать подсказку «stop speaking».
- Определение отозванных разрешений Accessibility во время выполнения и безопасный перезапуск приложения вместо заморозки системы CGEvent.
- Автоматическая активация приложения при отключении разрешений Accessibility в рантайме.
Совместимость с API v2
- Совместимость с API v2 и более жёстким контролем доступа.
- Debounce для `LoginResourceService.refreshUserInfo()`.
- Автоопределение выдачи Accessibility и перезапуск приложения для применения.
Язык ввода на каждый хоткей
- Добавлен выбор языка ввода на уровне `UserShortcut`.
- Новое действие ИИ «Start with an Uppercase letter».
- Исправление
падение Core Data, когда у сущности `UserShortcut` nil UUID.
- Исправление
расчёт радиуса анимации и длины волны.
- Поддержка действия upload-file.
- Показ меню языка речи во время записи.
- Сброс языка речи при остановке транскрипции.
- Подготовлено представление анимации волновой формы.
- Всплывающее окно рейтинга с троттлингом — не показывается, если пользователь уже оценил или выбрал «never rate».
- Исправление
тап в любом месте останавливал запись.
- Улучшение
скорость переключения вкладок.
- Балансировщик пропускает недоступные серверы и обновляет список, если он пуст.
- Удобный метод для API-вызовов.
- Обновление до рекомендуемых настроек проекта Xcode 26.
- Исправление
множественные предупреждения Swift concurrency и deprecation.
- Добавлена опция максимального уровня микрофона с переводами.
- Очищена система локализации (убраны неподдерживаемые Whisper языки — кыргызский, ирландский, догри, раджастани, санскрит и т. д.).
- Предотвращение состояния гонки при быстром переключении Accessibility.
- Мгновенное отображение при активации Accessibility.
- Добавлена поддержка `api_version=2` (WIP).
- Сохранение настроек через эндпоинт `/users/config`.
- Потенциальное исправление смены языка на iPhone SE.
- Номер телефона сохраняется в форме отчёта.
Переименование в Air Button и единый выбор микрофона
- «Floating Button» переименована в «Air Button» по всему приложению.
- Унифицирована логика выбора микрофона в меню.
- Контекстное меню на Floating/Air Button.
- Добавлено меню скрытия кнопки.
- Показ опции upload-file.
- Исправление
шеринг из WhatsApp (и, вероятно, других приложений).
- Предотвращение падения при парсинге ответов сервера (Gson).
- Попытка заново открыть приложение после переустановки.
- Выход из всех активностей, когда пользователь смахивает уведомление.
- Исправление
приложение нельзя было закрыть при отсутствии активной активности.
- Изменение размера кнопки и анимации из Settings избегает странных обрезаний.
- Восстановление фокуса после взаимодействий с оверлеем.
- Лёгкий тактильный отклик на ползунках.
- Предупреждение о пробной лицензии.
- Непрерывный голос-в-текст.
- Всплывающие подсказки на всех элементах при наведении.
Управление плавающей кнопкой
- Опции плавающей кнопки перенесены на отдельную вкладку с расширенными настройками.
- Ползунки прозрачности и размера плавающей кнопки, горячая перезагрузка размера/позиции.
- Разрешено перетаскивание во время записи.
- Действие ИИ «Start upper-case without terminal mark».
Выбор аудиоустройства
- Диалог выбора аудиоустройства с живым индикатором громкости (обновление 5 раз в секунду).
- Локализованное «system audio» в анимации записи.
- Копирование транскрипта в буфер обмена.
- Настройка «Pause keyboard and mouse tracking».
- Исправление
запись останавливалась через 1 минуту.
- Переключатель «Stop recording manually» с таймером.
Ребрендинг в VoiceKey
- Исполняемый файл C++-переписанного приложения переименован с VoiceHotKey в VoiceKey, чтобы отличать его от .NET-версии.
Новый процесс голосовой транскрипции
- Новый процесс голосовой транскрипции.
- Анимация звуковой волны во время записи.
- Добавлена позиция оверлея снизу по центру.
- Шеринг файлов из истории.
- Больше действий копирования в буфер обмена.
- В элементы истории добавлены пункты меню.
- Убран диалог разрешения «run at startup».
- Скрытие содержимого вкладки Main, когда пользователь не авторизован.
- Сохранение в файл из истории.
- Изменение отслеживания мыши/клавиатуры.
Плавающая кнопка + вкладка Files
- Плавающая кнопка с кнопками действий.
- Вкладка Files — ретранскрипция из истории, волновая форма во время записи.
- Кнопка отмены во время записи.
- Длительность записи отображается в истории.
- Реальный уровень голоса во время записи (вместо анимации).
- Опция удаления временных меток.
- Обновление списка аудиоустройств при добавлении/удалении/включении/отключении устройства.
- Управление размьютом и уровнем микрофона (согласовано с порогом уровня C#-приложения).
- Исправление размера окна Remind-to-use.
- Логика отмены во время транскрибирования.
- Длительность аудио отображается в истории.
Напоминание об использовании приложения
- Функция «Reminder to use app» (напоминает продиктовать, если вы много печатали).
- Скрытие нескольких неиспользуемых иконок в сборке VHK keyboard.
Поддержка iPad
- Функция удаления аккаунта.
- Поддержка iPad со скриншотами для iPad.
- Цвет кнопки верхней панели клавиатуры изменён по замечанию Apple.
- Обратная связь при воспроизведении аудио-транскрипций.
- Кнопка отмены записи.
- Опция «только сворачивать в трей».
- Обновление процесса TranscribeLast.
- Главное меню перемещено влево.
- Настройки перенесены влево; к названиям вкладок добавлены эмодзи; окно можно менять по размеру.
- Хоткей отмены (отдельный от транскрибирования).
- Опция «только сворачивать в трей».
- UI настроек длительности и таймаутов.
- Поддержка прокси.
- Тема по умолчанию — системная.
Темы + действия «Начать с»
- Поддержка тем (первая реализация).
- Действия ИИ «Start with...».
- Обработка Unauthorized.
- Новые действия ИИ.
- Действие ИИ «Start with lower case without terminal sign».
- Compose-модуль для установки дополнительных языков.
- Страница со списком установленных языков.
- Сброс состояния виртуальной клавиатуры при блокировке/разблокировке экрана.
- Оптимизация раскладки главного диалога — меньше места между главным меню и содержимым.
- В реестр добавлены Publisher и ожидаемый размер установки.
- Фокус ввода клавиатуры при навигации через главное меню.
- Вставка текста в сфокусированный контрол редактирования.
- Добавлена настройка директории записи.
- Исправления мерцания при смене DPI.
Отделение VHK Mic от клавиатуры
- Дублирование проекта для создания отдельного приложения «vhk-mic», независимого от приложения клавиатуры.
- Отдельный онбординг и поведение для mic- и keyboard-приложений.
- Вывод действия из конечного хоткея.
- Показ lottie-анимации на каждом мониторе.
- Сохранение позиции прокрутки при удалении элемента из истории.
- Исправление
дубликаты элементов в истории.
- Исправление
приоритет языков допускал дубликаты.
- Выравнивание контролов главной вкладки.
- Новые языки интерфейса — id (индонезийский), kk (казахский), uk (украинский).
- Диалог после установки.
- К отчётам пользователей прикрепляется журнал событий приложений Windows.
- Проверка системных настроек доступа к микрофону Windows перед записью.
- К отчёту пользователя добавляется список запущенных процессов.
- Автообновление самого загрузчика.
- Оптимизация памяти и исправление утечек памяти.
Вкладка Files
- Добавлена вкладка Files для транскрипции аудио/видеофайлов.
- Вкладка History — кнопка воспроизведения записи.
- Клик по элементу истории копирует в буфер обмена.
- Исправление преобразования UTC-строки даты/времени.
Вкладка History
- Вкладка History — кнопка «try again».
- Исправление
проблема с микрофоном на iOS 18.
- Исправление
не получалось остановить или запустить запись.
- Применение обновления к новой версии, когда приложение простаивает.
- Преобразование последней записи в текст.
- Диалог ИИ — реализация клавиатурных хоткеев.
- Проверка подключения к интернету перед обновлением данных или отправкой отчётов.
- Улучшенные сообщения об ошибках (меньше «Something went wrong»).
- Исправление
длинный вывод TextAI добавлялся вместо замены.
Голос-в-текст на вкладке Main
- Логика голос-в-текст на вкладке Main.
- Реализован REST-эндпоинт `/transcribe_with_ai`.
- Выбор AI-сервера для `/completions`.
Диалог ИИ
- Начальная реализация диалога ИИ.
- Нативный контрол редактирования заменён на кастомный (Direct2D).
- Кастомный контрол редактирования — однострочный режим.
Авторизация через опрос ссылки
- Авторизация через опрос ссылки.
- Увеличена длительность зелёного баннера.
- Кнопка отмены на окне анимации.
- Автообновление запускает перезапуск только когда приложение простаивает.
- В загрузчик добавлена информация о версии.
- Отправка отчётов о падениях при запуске.
- Вкладка About — Report Problem.
Подписки
- Реализация подписок.
- Действия ИИ сортируются по частоте использования.
- Экран текущей подписки.
- Настройка «Run on startup».
- Очистка предыдущей установки для чистой установки.
Установщик NSIS
- Установщик через NSIS-скрипт.
- GitHub Actions разделены на develop и release workflows.
- Гарантия одного экземпляра приложения (вывести работающий на передний план).
- Кастомный combobox с эмодзи/изображениями на главной вкладке.
- Поддержка placeholder в поле ввода.
- Обновление цветов светлой темы.
- Черновик Direct2D-редактирования (ручная обработка клавиши tab).
Предупреждения юзабилити
- Представлены «Usability Warnings» — проактивное отображение проблем с клавиатурой, микрофоном и accessibility.
- Поддержка цветных шрифтов для эмодзи.
- Отменённые записи теперь показываются в истории.
- Улучшение
перенос текста и производительность прокрутки истории.
- Дополнительные настройки для действий ИИ.
- UI приоритета языков.
- Автоопределение языка интерфейса при первом запуске.
- `refreshUserInfo()` теперь молча завершается, когда интернет-защита закрыта.
DeepL + прокси
- Поддержка перевода через DeepL.
- Поддержка HTTP-прокси.
- Клиентская проверка расширений файлов.
- Переписан процесс загрузки файлов — отмена задачи транскрипции, индикатор прогресса, хеширование SHA256.
- Mock-сервер API для интеграционного тестирования.
- Обработка UpgradePlan; ошибки балансировщика; обработка онлайн/офлайн.
- Запуск/остановка определения клавиатуры только при необходимости (экономит батарею).
- Протестировано на Vivo X70 Pro.
- UI ошибки лицензии на верхнем уровне.
- Окно всплывающих подсказок.
- Улучшения производительности определения клавиатуры.
- Исправление
потенциальный NPE.
Быстрое определение клавиатуры
- Ускорение определения клавиатуры — собирает все узлы сразу.
- Немедленная остановка поиска, как только найден редактируемый элемент в фокусе.
- Исправление
детектор клавиатуры иногда не срабатывал.
Транскрипция файлов
- Возможность транскрибировать аудио- и видеофайлы.
Авторизация через long-polling
- Long-polling авторизация (вход через email-ссылку).
- Логирование REST API.
- Обновление до Java 21 (затем откат на 17); повышение версии Kotlin.
- Печать причины последнего выхода при старте приложения.
- Исправление
потенциальный NPE, когда у пользователя нет метки истечения срока.
- Полное меню macOS «About».
- Всегда возвращаться к основному источнику ввода при отпускании клавиши записи — исправляет проблему E/T для русской раскладки.
- Реализация эндпоинта `/users/info`.
- Контрол индикатора прогресса.
Idle CPU ≤ 1%
- Улучшения производительности по всему приложению — потребление CPU в простое снижено до ≤ 1%.
- Унифицировано отображение хоткеев в рекордере, строке меню и меню dock.
- Вычисление Device ID.
- Сбор системной информации.
- Более короткая версия действия ИИ.
- Отмена действия ИИ.
- Логика срабатывания хоткеев.
- Интеграция Play Integrity.
- Email используется как account id.
- Timber для логирования.
Внутренние покупки
- Реализована функция Google Play billing.
- Сохранение чека о покупке в БД приложения.
- Активность со списком покупок; закрытие активности при успешной покупке.
- Улучшенный процесс входа.
Отмена из оверлея
- Запись, загрузку и обработку теперь можно отменить из оверлея.
- Реакция на изменение системы координат многомониторного macOS (TopLeft → BottomLeft origin).
Миграция настроек из C#
- Сохранение настроек mic, mic2, lang и theme + миграция из формата хранения C#-приложения.
- Миграция общих настроек и хоткеев из хранилища C#.
- Уровень логирования добавлен в настройки.
- Поддержка активации хоткеем на кнопке мыши для окна AI Presets.
- В логирование добавлен тест задержки для выбранного балансировщика.
- Централизованный доступ к `NSPasteboard` через ClipboardHelper.
- Активность тарифных планов.
- Покупка товаров из веба через встроенный браузер.
- Исправление
цвет микрофона некорректно отображался в светлой теме.
- Всплывающее окно billing при клике на дату истечения.
- Исправление
клавиатура скрывала поле ввода.
- Функция отправки отчёта с логированием.
Хоткеи в меню Dock
- Все хоткеи теперь доступны из иконки macOS Dock.
- Зависимость от уведомления `NSManagedObjectContextDidSave` заменена на реалтайм-решение.
- Обновление микрофона при пробуждении системы — исправляет игнорирование USB-C/TB микрофонов, подключённых к внешнему экрану.
- Сохранение настроек при переключении между голос-в-текст и копированием текста.
- Снижение потребления CPU менеджерами хоткеев за счёт меньшей зависимости от БД.
VHKToastView
- Представлен `VHKToastView` — система всплывающих сообщений с цветовой кодировкой и реакцией на тап.
Переупорядочиваемые хоткеи
- Возможность переупорядочивать хоткеи с улучшениями UX/UI.
- Поддержка хоткея на кнопке мыши для `SendReportView`.
- Улучшения логики, потока и стабильности `KeyShortcutRecorder` и `MouseShortcutManager`.
- Лучшее визуальное разделение между хоткеями.
- Перетаскивание для хоткеев.
- Опция включить микрофон, установить уровень на максимум.
- Автофокус на поле хоткея при изменении значения комбинации.
- Показывать имя клавиши «Copilot» вместо LWin+LeftShift+F23.
- Консолидация эндпоинтов.
- Принудительное локальное сохранение аудио; миграция приватности; обновление локализации.
- Реализована функциональность Paste/Dialog для Action и Translate, как в Windows.
- Исправление
обратная совместимость с macOS Monterey.
- Переработка меню Actions + AI с проверкой и отображением eligibility.
Сообщить о проблеме
- Добавлена кнопка «Report problem».
- Добавлено файловое логирование с фильтром приватности.
- Функция fix-layout для режима буфера обмена (MVP).
- Всё состояние пользователя перенесено в AccountService для корректной обработки смены лицензии.
- Миграция старых действий хоткеев в новую систему действий.
- «Use AI without closing» — правый клик по `IntelligenceResultsView`.
- Кнопка редактирования рядом с пользовательскими промптами (открывает AI Presets).
Текстовое действие ИИ + перевод
- Реализовано текстовое действие ИИ.
- Добавлены языки перевода.
- Вход обязателен для использования приложения.
- Диаризация выключена по умолчанию.
Каркас переписывания на C++
- Начальный каркас C++-проекта для Windows — начало переписывания, которое позже заменит .NET-приложение.
- Переход на Room для локальной БД.
- Переработан экран рейтинга для большей привлекательности.
- Исправление
состояние ИИ-транскрипции не отображалось.
- Исправление
сложная прокрутка вверх в истории.
- Кнопка «Action» преобразована в выпадающее меню.
- Добавлена функция рейтинга (#51).
- Тост при копировании элемента в буфер обмена (#52).
- ИИ отображается в истории.
- Флаги-эмодзи рядом с языками.
- Множественные правки UI по Material Guidelines.
Непрерывный голос-в-текст
- Поддержка непрерывного голоса-в-текст.
- Отображение языков как `Русский (Russian)` (эндоним + английское название).
- Обновления локализации и улучшения порядка действий.
- Использование динамических цветов Material YOU.
- Различение цветов ошибки/успеха в тёмной и светлой темах.
Свои промпты + история ИИ
- Пользовательские промпты (сохраняйте свои промпты ИИ).
- Клик по элементу истории копирует в буфер обмена.
- Отображение и оригинального, и транскрибированного текста в истории.
Действия ИИ
- Действия ИИ — первая реализация и интерфейс.
Скопировать текст и спросить ИИ
- Реализован процесс «Copy text and ask AI».
Переработка логики активации
- Переработана логика активации — проще и надёжнее.
- Исправления обработки хоткеев — фиксация порядка клавиш; поддержка обычных хоткеев с Control, даже когда установлен Control-хоткей.
- Редактирование пользовательских промптов прямо из диалога ИИ.
- Установщик для Windows 7 — добавлена зависимость от net45.
- Миграция критических настроек в новый формат.
- Показывать окно как можно быстрее, а затем выполнять инициализацию.
- Prejit при установке.
- Исправление
баг, когда исчезал текст при запросе разрешения на клавиатуру/мышь.
- Очистка ошибки лицензии при входе.
- Добавлено действие ИИ «Improve writing».
- Обработка ошибок запуска для директорий root, logs и recording.
- Проверка доступности балансировщика перед использованием; улучшенная логика повторов для нестабильных сетей.
- Приложение теперь можно растянуть по вертикали для увеличения секции хоткеев.
- Отображение клавиш «D1» и других цифровых как «1» (более чистое отображение хоткеев).
- Обработка отключённого микрофона в конвейере транскрипции.
- Диалог выбора микрофонов обрабатывает случай, когда нет онлайн-микрофонов.
- Исправление
утечка памяти в селекторе действий.
- Для отчётов о проблемах прикладываются ошибки Windows за последние 7 дней.
- Логирование времени работы и использования памяти.
- Добавлены встроенные промпты ИИ, поддержка перевода и тона в AI Results.
ИИ в macOS
- Реализована функциональность ИИ из версии для Windows.
- Пользователь обязан указывать детали отчёта.
- В отчёты о проблемах добавлены последние 20 ошибок падений.
Основы ИИ
- Промпты ИИ по умолчанию с сохранением «last used».
- Флаг лицензии `CanAI` заменяет eligibility по моделям.
- Настройка языков перевода на вкладке AI.
- Список языков переведён в алфавитный порядок.
- Оверлей сохраняется даже когда macOS его закрывает из-за обновлений дисплея, связанных с Handoff.
- Интеграция Firebase Crashlytics.
- Улучшения мульти-вставки.
- Поле телефона добавлено в Report Problem, сохраняется в настройках.
- Откат на микрофон по умолчанию при сбое поиска основного/вторичного.
- В основной UI добавлено меню микрофонов; более компактный UI за счёт уплотнения отступов.
Вкладка Files достигает паритета
- Вкладка отправки отчёта в About.
- Опция без удержания по умолчанию для хоткея.
- Понятная пользователю ошибка «нет интернета».
- Исправление
последняя часть аудио не транскрибировалась при завершении.
- Базовая автоматическая транскрипция (разбивка длинного аудио на чанки).
- Порог длительности тишины добавлен в настройки (по умолчанию 500 мс).
- `MouseShortcutManager` адаптирован для использования `CGEventTap`.
- Индикатор уровня при выборе микрофонов.
- Отдельный диалог для выбора микрофона.
- Опция «default» для микрофона.
- Переключение на публичный сервер.
Вкладка Files (загрузка + транскрипция)
- Первоначальный процесс загрузки и транскрипции файлов на вкладке Files.
- Отменяемая транскрипция файла с прогрессом.
- Разрешена голосовая транскрипция во время транскрипции файла.
FleksySDK
- Интеграция FleksySDK — печать и свайпы в системной клавиатуре.
- Backspace запускает функцию xmark; исправлено отображение F-клавиш.
Новая система авторизации
- Новая система авторизации с refresh-токенами.
- Поддержка непечатаемых символов Unicode Scalar + исправлена поддержка клавиши Fn.
- Поддержка `stream_progress`; убрана устаревшая опция GPT.
Собственный рекордер хоткеев
- Убрана зависимость от пакета KeyboardShortcuts — новый рекордер хоткеев построен с нуля.
- Индексация временных меток истории ускоряет базу данных.
- 60-минутный таймаут для транскрипции файла; исправлены таймауты для крупных файлов.
- Исправление
временная метка напоминания не обновлялась во время транскрипции.
- Клавиша Space как подтверждение.
- Подсказка на отключённых действиях.
- Игнорирование левого Alt; подтверждение клавишей Tab.
История
- Функция истории.
- Кнопка транскрипции в верхней части клавиатуры, настройки перенесены левее.
- Настройка хоткеев переработана в соответствии с версией для Windows.
- Отдельный пункт меню для выбора хоткеев с удержанием или без.
- Редактор хоткеев обрабатывает колесо, escape, сворачивание, закрытие, ctrl+enter (использовать как есть).
- Сохранение/загрузка подстановок, промптов ИИ и хоткеев.
- Если в приложении фокус на текстовом поле — вставлять туда; иначе — в текстовую область Files.
- Del или Backspace очищают хоткей.
- Выбор ИИ — обычное окно; сохранение размеров при закрытии; разрешена запись в окне ИИ.
- Опция задержки перед остановкой записи.
- Обновление подписки до транскрипции, если пользователь только что купил или подписка истекла.
- Добавлена опция использовать двойной (или одиночный) тап клавиши для старта и остановки записи.
Помощник юзабилити
- Usability Helper обнаруживает конфликты с Punto Switcher и подсказывает, как их разрешить.
- Доступ к списку подстановок из строки меню.
Интерфейс — тап / удержание / повторный клик
- Режимы транскрипции «нажать-удержать-отпустить» и «клик-повторный клик».
- Настройка максимальной длительности записи.
- Исправление
предупреждения компилятора.
- Выполняется команда Quit из меню Apple.
- Опция показа/скрытия иконки в dock.
Lottie-анимация микрофона
- Lottie-анимация для плавающего микрофона.
- Репозиторий для определения текущего состояния микрофона.
- Модель состояния сервиса.
- Первичный выбор языка, иконка приложения, портретный режим.
- Проверки состояния клавиатуры: включена, полный доступ, доступ к микрофону.
- Вставка транскрибированного текста в активное приложение.
Выбор действия
- Минимально рабочий выбор действия (что делать с транскрибированным текстом).
- Исправление
залипание клавиш; первая строка хоткеев (record + transcribe) теперь зафиксирована.
- Поддержка нескольких клавиш в записи.
- Откат на английский при сбое определения языка.
- Анимированный snackbar.
- Исправление
русский перевод для «Keep Running».
- Исправление
обрезание текста для «min record duration» в длинных переводах.
- Исправление
Cut, Copy, Paste теперь работают внутри приложения.
- Игнорирование настройки оптимизации батареи.
- Определение отключённого разрешения на уведомления из App Info.
- Определение hint-текста через `ACTION_SET_SELECTION`.
Первый коммит
- Каркас кастомной клавиатуры и подготовка проекта.
- Запись без удержания хоткея.
- Опция вставки в исходное (source) окно.
- Миграция логики получения позиции курсора из InsertIt.
- Словарь ключ/значение для accessibility.
- Несколько новых функций-расширений (буфер обмена, печать nodeInfo).
- Подстановки теперь фильтруются через `NSRegularExpression` — только целые слова, с учётом регистра.
- Опция интервала напоминания.
- Подстановка «замена по словам».
- Окно Upgrade Plan.
- Стиль ошибки кнопки записи под общие цвета.
- Нормализаторы русского, тайского и японского текста.
- Улучшения стабильности микрофона для внешних дисплеев и других съёмных микрофонов.
- Сохранение состояния после отключения микрофона.
- Убраны лишние пункты меню.
- Окно Remind — подсказка использовать приложение.
- Обновлён список резервных балансировщиков.
- Обработка невалидных файлов, сброшенных на вкладку Files.
- Директория записей по умолчанию.
- Prejit при установке и хуки обновления.
- Вставка теперь работает на любой раскладке клавиатуры.
- Добавлен ползунок задержки для удержания кнопки мыши; улучшения стабильности.
- Определение платформы через Win32.
- Программный рендеринг на Windows ниже 10.
- Список резервных балансировщиков при ошибке обновления.
- Запрос разрешений на автозапуск.
Разделение настроек + окно разрешений
- Порог длительности перенесён во вкладку Settings; часть настроек вынесена в отдельную вкладку.
- Окно разрешений с возможностью изменения по клику.
- Ленивые хуки.
- Общая кнопка OK.
- Не обращаться к бэкенду при запуске новых установок.
Запись мышью
- Добавлена функция записи по кнопке мыши.
- Рабочая вкладка Files — выбор и drop-файла, чекбокс диаризации, редактируемый путь к файлу.
- Валидация расширения FilePath для предотвращения некорректных отправок.
- Чекбокс для копирования транскрипта.
- Упрощена вставка — всегда через Command+V через `simulateCommandV`.
Вкладка Files + перехват мыши
- Начальная вкладка Files — выбор и drop-файла.
- Реализация перехвата мыши с отслеживанием состояния `isdown`.
- `NSAlert` заменён на `VHKAlert`.
- Опция директории записи.
- Опция вторичного микрофона.
- Исправление
взаимоблокировка.
- Добавлена поддержка `SMAppService` для macOS ≥ 13 (современный API Login Items).
- Продвижение Control (обычная запись) в Control+I (ИИ-запись) без прерывания уже начатой записи.
- Обновление микрофонов при смене количества дисплеев.
- Обновление микрофонов при пробуждении Mac из сна.
- Добавлена ссылка на YouTube; опция GPT скрыта.
- Транскрипция через GPT.
- Ссылки на соцсети.
- Использование локализованных ответов бэкенда.
- Перевод на все необходимые языки.
Русский + смена языка во время работы
- Русская локализация с переключением языка в реальном времени.
- Все строки перенесены в ресурсы.
- Запрос на покупку до окончания пробного периода.
- Размер приложения уменьшен до 40 МБ (с 54 МБ).
- Реализована логика чёрного списка.
Рабочие хоткеи
- Хоткеи по умолчанию включены в поставку.
- Реализация рабочих хоткеев.
- Особая обработка ошибок лицензии.
- Открытие настроек или истории из иконки в трее.
- Уникальный Device ID для каждой машины, OS передаётся отдельным query-параметром.
- Lottie-анимации по всему интерфейсу.
- Ежечасное обновление информации о пользователе.
- Отображение полного имени устройства, чтобы отличать Line-In от Mic.
- Сохранение списка балансировщиков в файл; обновление перед записью (но не чаще раза в 5 минут).
- Использование балансировщиков в порядке, заданном сервером.
- Отображение версии в диалоговом окне.
- Исправление
проблема масштабирования.
- Исправление
сохранённый выбор микрофона.
- Манифест winget.
- Расширенный синтаксис подстановок — regex в стиле Notepad++ (с префиксом `r'...'`).
- Использование резервного балансировщика; задержка старта записи уменьшена с 300 мс до 15 мс.
- Исправление
проблема с мьютексом.
Автообновление
- Добавлена функция автоматического обновления.
- Исправление
размеры иконок MenuBarExtra.
- Клик по иконке Dock открывает/закрывает Settings.
- Настройка Crashlytics.
- Автопереименование APK на основе git.
- Рефакторинг — общий рекордер во view model.
Перетаскиваемый микрофон с сохранением позиции
- Сохранение и загрузка размера и позиции микрофона.
- Обработчик accessibility перенесён в use case.
- Переход на внедрение зависимостей через Hilt.
- Запоминается последний использованный микрофон между запусками.
- Авторизация для незарегистрированных пользователей.
- Пинг балансировщиков и использование самого быстрого.
- Сохранение записей как OGG вместо WAV.
- Покупка подписки доступна внутри приложения.
- Формат записи переключён с WAV на OGG (лучшее сжатие).
- Проверка совместимости частоты дискретизации энкодера через `kAudioFormatOpusSamplingRate`.
- Анимация оверлея микрофона корректно работает в SideCar и многодисплейных конфигурациях.
- Обновлённый список микрофонов при открытии MenuBarExtra.
Первый коммит
- Начальный Android-проект с запросом разрешения на микрофон и настройкой Hilt.
- Добавлены кнопки Subscribe и Manage.
Вкладка History (первая версия)
- Вкладка History — первая версия.
- Обновлённая иконка приложения.
- Хоткей по умолчанию изменён на Right Control.
- Размер приложения уменьшен с 86 МБ до 51 МБ.
- Редизайн UI по отзывам пользователей — единая вкладка «Main», вкладка подстановок, кнопки удаления справа, сохранение при изменении.
- Анимация уведомления (закрытие по клику).
- Политика повторов для каждого запроса к бэкенду.
- Только HTTPS-эндпоинты.
- Авторизация по ссылке; вход по коду.
- Выбор любого языка Whisper для транскрипции.
- Прилипающее окно уведомления рядом с открытым приложением.
- Пользователь может менять пароль.
- Обновлённая иконка приложения.
- Обновление auth-токена каждые 4 часа.
- Таймаут добавлен в настройки.
Первая версия для Windows
- Минимальная реализация для Windows с записью, активацией хоткеем и вставкой при отпускании.
- Исправление
вставка не работала в некоторых приложениях; поглощение хоткея, чтобы Telegram не продолжал печатать букву.
Первый коммит
- Базовый macOS-проект с опциями строки меню.
Для этой платформы пока нет записей — загляните позже.