Skip to content

Releases: egsok/klava-nevinovata

v0.9.5-6

Choose a tag to compare

@github-actions github-actions released this 18 Aug 15:37

See Installation instructions in README.

Главное

Маленький фикс-релиз по первым впечатлениям от автообновления на v0.9.5-5.

Что исправлено

Установщик больше не пугает ошибкой во время автообновления. На Windows установщик мог стартовать раньше, чем система отпустит файл ещё закрывающегося приложения, — и показывал «Error opening file for writing» с кнопками Abort/Retry/Ignore (Retry помогал, но выглядело это страшно). Теперь установщик сам дожидается, пока файл освободится, — до 10 секунд, чего хватает с запасом.

Футер перестал слипаться. Статус проверки обновлений («Checking for updates…», прогресс загрузки) упирался вплотную в ссылку на канал, а при скачивании апдейта наезжал на неё. Теперь между блоками фиксированный зазор: длинный статус обрезается многоточием, ссылка на канал и номер версии всегда на месте.

Замечание: фикс установщика приезжает вместе с новым инсталлером, поэтому при обновлении на эту версию диалог ошибки ещё может мелькнуть один последний раз — Retry решает. Все следующие обновления пройдут уже тихо.


v0.9.5-6 — quick fixes after the first auto-update: installer and footer (English)

A small fix release based on first impressions of the v0.9.5-5 auto-update.

The installer no longer scares users during auto-update: on Windows it could start before the OS released the still-closing app's executable and popped "Error opening file for writing" with Abort/Retry/Ignore (Retry worked, but it looked alarming). The installer now waits for the file lock to clear — up to 10 seconds, plenty in practice.

The footer no longer crowds itself: the update status ("Checking for updates…", download progress) ran flush into the channel link and overlapped it during downloads. There is now a fixed gap — a long status truncates with an ellipsis while the channel link and version number stay put.

Note: the installer fix ships inside the new installer, so while updating to this version the error dialog may still flash one last time — Retry resolves it. Every update after this one is covered.

v0.9.5-5

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:38

See Installation instructions in README.

Главное

Чистый фикс-релиз: добиты хвосты аудита v0.9.5-4. Ничего нового в интерфейсе.

Что исправлено

Миграция данных больше не может замедлять каждый запуск. Если перенос данных из старой папки Handy стабильно срывался (например, антивирус держит базу истории), приложение повторяло полный прогон при каждом старте — в худшем случае это добавляло до ~10 секунд до появления окна. Теперь попыток три: после третьей неудачи миграция честно сдаётся, пишет путь к старым данным в лог и больше не мешает запуску. Свежая установка без старых данных тоже перестала проверять их наличие при каждом старте.

Апдейтер. У пользователей с выключенной проверкой обновлений кнопка проверки больше не мигает в футере на мгновение при запуске. Проверка обновлений из трея больше не может запуститься параллельно с уже идущей установкой.

Онбординг на macOS. Закрыта лазейка вокруг сброса разрешения: после успешного сброса кнопка «Предоставить разрешение» остаётся заблокированной, даже если повторный сброс не удался, а панель с кнопкой перезапуска не даёт себя спрятать, пока перезапуск действительно нужен. Главное — кнопка выдачи разрешения микрофона больше не может «протащить» онбординг мимо этой блокировки: устаревшее разрешение Accessibility, которое macOS показывает до перезапуска, больше не засчитывается.


v0.9.5-5 — audit follow-ups: migration, updater, onboarding (English)

A pure fix release finishing the follow-ups from the v0.9.5-4 audit. Nothing new in the UI.

Data migration can no longer slow down every launch: if migrating data from the old Handy folder kept failing (e.g. an antivirus holding the history database), the full run was repeated on every startup — up to ~10 seconds before the window appeared. It now gives up after three failed attempts, logs where the legacy data lives, and stops interfering. Fresh installs without legacy data no longer probe for it on every launch either.

Updater: users with update checks disabled no longer see the check button flash in the footer for a moment on launch; a tray-triggered check can no longer run in parallel with an ongoing install.

macOS onboarding: the permission-reset flow is sealed — after a successful reset the Grant button stays locked even if a later re-reset fails, the panel with the Restart button can't be hidden while a restart is actually needed, and most importantly the microphone Grant button can no longer sneak onboarding past the lock by trusting the stale Accessibility grant macOS reports until the restart.

v0.9.5-4

Choose a tag to compare

@github-actions github-actions released this 18 Aug 08:10

See Installation instructions in README.

Главное

Это релиз надёжности по итогам подробного аудита v0.9.5-3. Ничего нового в интерфейсе — зато несколько сценариев, где данные или обновления могли тихо потеряться, теперь ведут себя честно. И это первый релиз, который прилетит пользователям v0.9.5-3 автоматически — через встроенный апдейтер.

Что исправлено

Миграция данных из старой папки. Если при первом запуске антивирус держал базу истории — раньше миграция молча сдавалась, и история с настройками терялись навсегда. Теперь неудачная миграция честно повторяется при следующем запуске: перенос истории и записей догоняется, а настройки, которые вы успели изменить, никогда не перезаписываются. Необратимо повреждённая база больше не блокирует перенос всего остального.

Апдейтер. Ошибки проверки и установки обновлений больше не молчат — показывается понятное сообщение. Длинные надписи («Проверка обновлений…») больше не ломают вёрстку футера в русском интерфейсе. Выключенная проверка обновлений теперь означает тишину, а не постоянную надпись «Проверка обновлений отключена».

Онбординг на macOS. Дожаты хвосты сценария сброса разрешения: после сброса кнопка «Предоставить разрешение» блокируется до перезапуска (иначе macOS могла «зачесть» устаревшее разрешение), инструкция про удаление старых записей Handy остаётся видимой, а неудачный повторный сброс больше не выглядит успешным.

Безопасность релизного конвейера. Ключ подписи обновлений убран из пути тестовых PR-сборок — код из чужого pull request'а теперь физически не может до него дотянуться.

Линия 0.8.3 закрыта

Ветка 0.8.3 (страховочная на время переезда на базу 0.9) архивирована: релизов из неё больше не будет, последний — v0.8.3-6. Все её релизы помечены как Pre-release и остаются доступными для скачивания.


v0.9.5-4 — post-audit reliability: migration, updater, onboarding (English)

A reliability release following a deep audit of v0.9.5-3. Nothing new in the UI — but several scenarios where data or updates could quietly get lost now behave honestly. This is also the first release that v0.9.5-3 users receive automatically via the in-app updater.

Data migration: if an antivirus held the history database on first launch, the migration used to give up silently, losing history and settings forever. A failed migration now genuinely retries on the next launch — history and recordings catch up, and settings you've changed since are never overwritten. A permanently damaged database no longer blocks migrating everything else.

Updater: check/install failures now show a clear message instead of dying in the console; long labels no longer break the footer layout in Russian; disabling update checks now means silence, not a permanent "checking disabled" label.

macOS onboarding: after a permission reset the Grant button is disabled until the restart the flow asks for (macOS could otherwise accept a stale grant), the stale-entries recipe stays visible, and a failed re-reset no longer looks successful.

Release pipeline security: the update-signing key is no longer reachable from PR test builds.

The 0.8.3 line is archived: no further releases from it; the last one is v0.8.3-6, and all its releases are marked Pre-release but remain downloadable.

v0.9.5-3

Choose a tag to compare

@github-actions github-actions released this 18 Aug 06:30

See Installation instructions in README.

Главное

Приложение снова умеет обновляться само. Проверка обновлений живёт в футере окна настроек и в меню трея («Проверить обновления»); скачивание и установка — в один клик, обновления подписаны собственным ключом форка и тянутся из GitHub-релизов этого репозитория.

Важно: это первый релиз со встроенными обновлениями. Тем, кто сидит на v0.9.5-2 и старше, этот релиз нужно поставить вручную — зато следующие уже приедут сами.

Что ещё изменилось

Миграция данных стала бережнее. Модели и аудиозаписи из старой папки com.pais.handy теперь переносятся жёсткими ссылками: мгновенно, без дублирования места на диске, и оригинальный Handy (если он установлен) сохраняет все свои файлы — при этом «Клаве» больше не приходится перекачивать модели. Дополнительно: история больше не бросается молча, если файл базы оказался временно заблокирован антивирусом; копия истории проверяется на целостность перед использованием; миграция не может зависнуть на старте, даже если старое приложение продолжает писать в базу.

Онбординг на macOS. После сброса разрешения «Универсальный доступ» приложение теперь прямо ведёт к перезапуску (это единственный надёжный следующий шаг), а не обратно к кнопке «Предоставить разрешение», которая могла завершить онбординг по устаревшему состоянию системы.

macOS: известное ограничение

Пока сборки не подписаны сертификатом Apple Developer, после каждого обновления (в том числе встроенного) разрешение «Универсальный доступ» нужно выдавать заново. Кнопки «Сбросить разрешение» и «Перезапустить приложение» на экране онбординга помогают, если галочка не сохраняется.

Изменения

  • feat(updater): встроенные обновления из GitHub-релизов форка — футер настроек, пункт в трее, подпись артефактов собственным ключом.
  • fix(migration): hard-link вместо переноса файлов; честная обработка заблокированной базы истории; проверка целостности копии; ограничение по времени на снапшот базы.
  • fix(onboarding): после сброса TCC-разрешения сценарий ведёт к перезапуску приложения (все 24 языка); карточка микрофона больше не зависает на спиннере после сброса.

v0.9.5-3 — in-app updates, hardened data migration (English)

The app can update itself again. The update checker lives in the settings-window footer and in the tray menu ("Check for updates"); download-and-install is one click, updates are signed with the fork's own key and pulled from this repository's GitHub releases.

Note: this is the first release with in-app updates. If you're on v0.9.5-2 or older, install this one manually — subsequent releases will arrive on their own.

Data migration is gentler: models and recordings from the legacy com.pais.handy folder are now hard-linked — instant, no duplicated disk space, and an installed original Handy keeps every file while klava no longer re-downloads models. History migration no longer silently gives up on a temporarily locked database file, verifies the copied database's integrity before using it, and can't hang startup even if the legacy app is still writing.

macOS onboarding: after resetting the Accessibility permission the flow now steers you to restart the app (the only reliable next step) instead of back to Grant Permission.

Known macOS limitation: until builds are signed with an Apple Developer certificate, the Accessibility permission must be re-granted after every update, including in-app ones. The onboarding "Having trouble granting access?" block (permission reset + app restart) helps when the checkbox won't stick.

v0.9.5-2

Choose a tag to compare

@github-actions github-actions released this 17 Aug 19:13

See Installation instructions in README.

Главное

Приложение сменило системный идентификатор: com.pais.handyru.egorsokolov.klava-nevinovata. Старый идентификатор достался от оригинального Handy, и из-за этого macOS путала два приложения: если Handy был (или когда-то был) установлен, галочка «Универсальный доступ» для «Клавы» не сохранялась, и онбординг застревал. Теперь конфликт устранён навсегда — оба приложения могут жить на одном Mac.

Что увидят пользователи при обновлении

Все платформы. При первом запуске новая версия автоматически перенесёт данные из старой папки: настройки, историю, аудиозаписи, кастомные звуки и скачанные модели. Старая папка (com.pais.handy) не удаляется — в ней остаются копии настроек и истории, удалить её можно вручную позже. Если на компьютере установлен оригинальный Handy, модели и записи не переносятся (они нужны ему) — «Клава» скачает модели заново.

macOS. Разрешения «Универсальный доступ» и «Микрофон» придётся выдать один раз заново — для системы приложение теперь новое. Это ожидаемо. Если разрешение не выдаётся:

  1. Открой Системные настройки → Конфиденциальность и безопасность → Универсальный доступ и удали старые записи Handy / klava-nevinovata кнопкой .
  2. Нажми «Не получается выдать доступ?» на экране онбординга — там есть кнопки «Сбросить разрешение» и «Перезапустить приложение».
  3. Вручную то же самое: tccutil reset Accessibility ru.egorsokolov.klava-nevinovata в Терминале (если стоял оригинальный Handy или любой более ранний релиз — дополнительно tccutil reset Accessibility com.pais.handy).

Пока сборки не подписаны сертификатом Apple Developer, разрешение нужно будет выдавать заново после каждого обновления приложения.

Windows. Обновление ставится поверх как обычно. Издатель в «Установке и удалении программ» теперь «Egor Sokolov» (раньше отображался «pais»). Кастомная папка установки и обновление поверх старых .exe/.msi-установок отрабатывают штатно.

Linux. Папка данных переехала в ~/.local/share/ru.egorsokolov.klava-nevinovata, перенос автоматический.

Изменения

  • fix(macOS): конфликт TCC-записи с оригинальным Handy — идентификатор приложения теперь собственный.
  • feat(onboarding): блок «Не получается выдать доступ?» на шаге Accessibility — сброс TCC-записи в один клик и перезапуск приложения (все 20 языков).
  • feat(migration): одноразовый автоматический перенос данных из старой папки; история копируется консистентным SQLite-снапшотом; старые данные сохраняются как бэкап.
  • fix(installer): Windows-инсталлятор корректно обновляет установки прежних версий (включая MSI и кастомные папки) после смены издателя.
  • docs: секция Troubleshooting в README (EN и RU).

v0.9.5-2 — new app identity, macOS Accessibility fix (English)

The app's bundle identifier changed from com.pais.handy (inherited from the original Handy) to ru.egorsokolov.klava-nevinovata. This permanently fixes the macOS issue where the Accessibility checkbox wouldn't stick when the original Handy was (or had been) installed — macOS was conflating the two apps. Both apps can now coexist.

On first launch the new version migrates your data (settings, history, recordings, custom sounds, downloaded models) from the old folder automatically. The old com.pais.handy folder is not deleted — it keeps copies of your settings and history and can be removed manually later. If the original Handy is installed, models and recordings are left in place for it; models are re-downloaded.

macOS: you'll need to re-grant Accessibility and Microphone once — the app is a new identity to the system. If the permission won't stick, use the new "Having trouble granting access?" block on the onboarding screen (one-click permission reset + app restart), or run tccutil reset Accessibility ru.egorsokolov.klava-nevinovata in Terminal. Until builds are signed with an Apple Developer certificate, permissions must be re-granted after each update.

Windows: upgrades install over previous versions as usual; the Publisher shown in Add/Remove Programs is now "Egor Sokolov". Linux: the data dir moved to ~/.local/share/ru.egorsokolov.klava-nevinovata; migration is automatic.


Full Changelog: v0.9.5-1...v0.9.5-2

v0.8.3-6

v0.8.3-6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Aug 16:49

⚠️ Линия 0.8.3 архивирована / The 0.8.3 line is archived. Это её последний релиз; актуальная линия — 0.9.x (последний релиз). This is its final release; the current line is 0.9.x.

See Installation instructions in README.

Главное

Приложение сменило системный идентификатор: com.pais.handyru.egorsokolov.klava-nevinovata. Старый идентификатор достался от оригинального Handy, и из-за этого macOS путала два приложения: если Handy был (или когда-то был) установлен, галочка «Универсальный доступ» для «Клавы» не сохранялась, и онбординг застревал. Теперь конфликт устранён навсегда — оба приложения могут жить на одном Mac.

Что увидят пользователи при обновлении

Все платформы. При первом запуске новая версия автоматически перенесёт данные из старой папки: настройки, историю, аудиозаписи, кастомные звуки и скачанные модели. Старая папка (com.pais.handy) не удаляется — в ней остаются копии настроек и истории, удалить её можно вручную позже. Если на компьютере установлен оригинальный Handy, модели и записи не переносятся (они нужны ему) — «Клава» скачает модели заново.

macOS. Разрешения «Универсальный доступ» и «Микрофон» придётся выдать один раз заново — для системы приложение теперь новое. Это ожидаемо. Если разрешение не выдаётся:

  1. Открой Системные настройки → Конфиденциальность и безопасность → Универсальный доступ и удали старые записи Handy / klava-nevinovata кнопкой .
  2. Нажми «Не получается выдать доступ?» на экране онбординга — там есть кнопки «Сбросить разрешение» и «Перезапустить приложение».
  3. Вручную то же самое: tccutil reset Accessibility ru.egorsokolov.klava-nevinovata в Терминале (если стоял оригинальный Handy или любой более ранний релиз — дополнительно tccutil reset Accessibility com.pais.handy).

Пока сборки не подписаны сертификатом Apple Developer, разрешение нужно будет выдавать заново после каждого обновления приложения.

Windows. Обновление ставится поверх как обычно. Издатель в «Установке и удалении программ» теперь «Egor Sokolov» (раньше отображался «pais»). Кастомная папка установки и обновление поверх старых .exe/.msi-установок отрабатывают штатно.

Linux. Папка данных переехала в ~/.local/share/ru.egorsokolov.klava-nevinovata, перенос автоматический.

Изменения

  • fix(macOS): конфликт TCC-записи с оригинальным Handy — идентификатор приложения теперь собственный.
  • feat(onboarding): блок «Не получается выдать доступ?» на шаге Accessibility — сброс TCC-записи в один клик и перезапуск приложения (все 20 языков).
  • feat(migration): одноразовый автоматический перенос данных из старой папки; история копируется консистентным SQLite-снапшотом; старые данные сохраняются как бэкап.
  • fix(installer): Windows-инсталлятор корректно обновляет установки прежних версий (включая MSI и кастомные папки) после смены издателя.
  • docs: секция Troubleshooting в README (EN и RU).

v0.8.3-6 — new app identity, macOS Accessibility fix (English)

The app's bundle identifier changed from com.pais.handy (inherited from the original Handy) to ru.egorsokolov.klava-nevinovata. This permanently fixes the macOS issue where the Accessibility checkbox wouldn't stick when the original Handy was (or had been) installed — macOS was conflating the two apps. Both apps can now coexist.

On first launch the new version migrates your data (settings, history, recordings, custom sounds, downloaded models) from the old folder automatically. The old com.pais.handy folder is not deleted — it keeps copies of your settings and history and can be removed manually later. If the original Handy is installed, models and recordings are left in place for it; models are re-downloaded.

macOS: you'll need to re-grant Accessibility and Microphone once — the app is a new identity to the system. If the permission won't stick, use the new "Having trouble granting access?" block on the onboarding screen (one-click permission reset + app restart), or run tccutil reset Accessibility ru.egorsokolov.klava-nevinovata in Terminal. Until builds are signed with an Apple Developer certificate, permissions must be re-granted after each update.

Windows: upgrades install over previous versions as usual; the Publisher shown in Add/Remove Programs is now "Egor Sokolov". Linux: the data dir moved to ~/.local/share/ru.egorsokolov.klava-nevinovata; migration is automatic.


Full Changelog: v0.8.3-5...v0.8.3-6

v0.9.5-1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 06:32

See Installation instructions in README.

Русский

В основе этого релиза — Handy v0.9.5. Возможности, которые отличают «Клаву» от upstream, сохранены и работают на новой базе.

Что отличает «Клаву»

  • Качество распознавания. Custom transcription prompt помогает моделям Whisper распознавать имена и специальные термины, улучшает пунктуацию и позволяет задать её стиль. На Whisper Turbo эффект особенно заметен: русский prompt по умолчанию устраняет характерную для модели «стену текста» почти без знаков препинания. Контекст между 30-секундными окнами сохраняется, поэтому пунктуация не разваливается на длинных диктовках. Также работают защита от галлюцинаций Whisper и исправление склеенных кириллических слов в Breeze ASR. В бенчмарке русской IT-речи полный tuning-стек дал исходному Whisper Turbo +6,2 Q, а отдельным Turbo RU — до +19,2.
  • Полное восстановление буфера обмена. После вставки расшифровки приложение возвращает Files, Image, HTML и Text — содержимое, которое лежало в буфере до записи, не теряется.
  • Стабильные горячие клавиши и настройки. Приоритетный Windows hook, контроль состояния модификаторов и watchdog защищают хоткеи от зависаний. Настройки записываются атомарно, без гонок и случайных сбросов.
  • Собственный интерфейс. У форка отдельный визуальный стиль, иконки и компактный recording overlay.

Что нового в v0.9.5-1

  • Обновление до Handy v0.9.5. В релиз вошли исправления upstream из версий 0.9.4 и 0.9.5.
  • Стабильнее запись и вставка. Приложение восстанавливает поток микрофона после сбоя capture worker, а блокирующая работа с аудио больше не выполняется в основном потоке. Обновлён paste pipeline и исправлена надёжная вставка в Windows.
  • Исправления для Windows. Окно открывается одиночным кликом по иконке в трее, overlay правильно появляется на дополнительных мониторах, работают разворачивание окна и Aero Snap. Приложение больше не мешает завершению работы Windows.
  • Модели и настройки. Загрузки с Hugging Face получили дополнительные проверки и запасное зеркало. Добавлен выбор входного канала для многоканальных аудиоинтерфейсов, быстрые фильтры моделей и сброс ползунков к значениям по умолчанию.
  • Платформы и переводы. Добавлены предупреждение Secure Input и корректная регистрация Login Items на macOS, исправлена упаковка AppImage, появились датский и хинди.

English

This release is based on Handy v0.9.5. The features that distinguish this fork from upstream remain intact on the new base.

What makes this fork different

  • Recognition quality. The custom per-language transcription prompt helps Whisper models recognize names and specialized terminology, improves punctuation, and lets you define its style. The effect is especially visible with Whisper Turbo: the default Russian prompt fixes the model’s tendency to produce an almost punctuation-free wall of text. Decoder context is preserved across 30-second windows, keeping punctuation intact during long dictations. Whisper anti-hallucination defenses and Breeze ASR Cyrillic word-boundary repair are also included. In the Russian IT-speech benchmark, the complete tuning stack added +6.2 Q to original Whisper Turbo and up to +19.2 to some Turbo RU variants.
  • Full clipboard restoration. After inserting a transcript, the app restores Files, Image, HTML, and Text, preserving whatever was in the clipboard before recording.
  • Stable shortcuts and settings. A high-priority Windows hook, live modifier-state checks, and a watchdog prevent hotkey stalls. Settings are written atomically to avoid races and accidental resets.
  • A distinct interface. The fork has its own visual identity, icons, and compact recording overlay.

What’s new in v0.9.5-1

  • Updated to Handy v0.9.5. This release includes upstream fixes from versions 0.9.4 and 0.9.5.
  • More stable recording and paste. The app now recovers the microphone stream after a capture worker failure, while blocking audio work has been moved off the main thread. The paste pipeline has been updated, including reliable-paste fixes for Windows.
  • Windows fixes. A single tray-icon click opens the app, the overlay appears correctly on secondary monitors, and maximize and Aero Snap work as expected. The app no longer interferes with Windows shutdown.
  • Models and settings. Hugging Face downloads now include stronger validation and mirror fallback. Multi-channel audio interfaces gain input-channel selection, while model filters and slider reset buttons make settings easier to use.
  • Platform and translation updates. This release adds Secure Input warnings and proper Login Items registration on macOS, fixes AppImage packaging, and adds Danish and Hindi.

Full Changelog: v0.9.3-1...v0.9.5-1

v0.9.3-1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 14:11

See Installation instructions in README.

What's new

  • Design refresh. The app now wears the fork's own two-ink visual identity: new mark and wordmark, magenta + violet palette in both themes, restyled recording overlay.
  • Anti-hallucination defenses for Whisper models. On silence and trailing pauses Whisper (large-v3-turbo especially) could emit repetition loops ("Покажу. Покажу. Покажу.") and phrases memorized from its subtitle-heavy training data — "Продолжение следует...", subtitle credits, "[музыка]" tags. This release adds three layers:
    • the decoder's carried context is capped (max_prev_context_tokens=128), starving repetition loops without losing the cross-window punctuation carry;
    • post-processing collapses runs of identical sentences (3+ repeats at any length, pairs only for long sentences — deliberate short doubles survive);
    • known hallucinated phrases are dropped on whole-sentence match only, so real speech containing the same words is safe.
  • Upstream v0.9.3 merged: transcribe-cpp 0.1.3 (native MAX_PATH mitigation on Windows builds), Tauri 2.11.5 with macOS dock fixes, cancelable onboarding downloads, model-card and history-audio-player fixes.

Full Changelog: v0.9.1-2...v0.9.3-1

v0.9.1-2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 11:06

See Installation instructions in README.

Full Changelog: v0.9.1-1...v0.9.1-2

v0.8.3-5

v0.8.3-5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jul 11:01

See Installation instructions in README.

Full Changelog: v0.8.3-4...v0.8.3-5