From d43ffe4f8a17d2759c6a2ee5e2ef0d52125d8144 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Mon, 26 Oct 2026 23:43:56 +0300 Subject: [PATCH] chore: prepare 0.6.0 Linux and Windows release --- .gitea/workflows/release.yml | 4 +-- docs/desktop-release.md | 2 +- docs/gitea-release.md | 32 +++++++++--------- docs/release-0.6.0.md | 63 ++++++++++++++++++++++++++++++++++++ package-lock.json | 4 +-- package.json | 2 +- 6 files changed, 85 insertions(+), 22 deletions(-) create mode 100644 docs/release-0.6.0.md diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 1ae476a..ddc4c9a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,12 +1,12 @@ name: Linux desktop release -# Manual until a native Linux runner is registered. The current 0.5.2 +# Manual until a native Linux runner is registered. The current 0.6.0 # packages are built locally using the identical gates documented below. on: workflow_dispatch: inputs: tag: - description: Existing stable version tag to package (for example v0.5.2) + description: Existing stable version tag to package (for example v0.6.0) required: true type: string diff --git a/docs/desktop-release.md b/docs/desktop-release.md index 17c4ba0..02e6d1d 100644 --- a/docs/desktop-release.md +++ b/docs/desktop-release.md @@ -1,6 +1,6 @@ # Desktop builds and releases -For this fork’s Linux and Windows 0.5.2 release on Gitea, see [Gitea releases](gitea-release.md). +For this fork’s Linux and Windows 0.6.0 release on Gitea, see [Gitea releases](gitea-release.md). The three-platform GitHub process below documents the upstream reference. ## Platforms diff --git a/docs/gitea-release.md b/docs/gitea-release.md index 98b08a5..af67eb8 100644 --- a/docs/gitea-release.md +++ b/docs/gitea-release.md @@ -2,7 +2,7 @@ The release destination is https://server2.sorokin-oleg-edu.xyz/replicated/learnharness. -Version **0.5.2 targets Linux x64 and Windows x64**, with each platform built +Version **0.6.0 targets Linux x64 and Windows x64**, with each platform built and verified on its native operating system. The upstream GitHub workflow and three-platform packaging configuration remain available as reference in `.github/workflows/release.yml` and `electron-builder.yml`. @@ -48,18 +48,18 @@ node scripts/smoke-provider-runtime.mjs --standalone dist/linux-unpacked/resourc xvfb-run -a node scripts/smoke-demo-runtime.mjs --standalone dist/linux-unpacked/resources/server/standalone --runtime dist/linux-unpacked/learnharness --browser ``` -The Linux portion of 0.5.2 has these attachments: +The Linux portion of 0.6.0 has these attachments: -- `LearnHarness-0.5.2-x86_64.AppImage` -- `LearnHarness-0.5.2-amd64.deb` +- `LearnHarness-0.6.0-x86_64.AppImage` +- `LearnHarness-0.6.0-amd64.deb` - `latest-linux.yml` - `SHA256SUMS` ## Preparing Windows packages -Use a clean checkout of the same `v0.5.2` tag on Windows x64 with Node 26 and Git +Use a clean checkout of the same `v0.6.0` tag on Windows x64 with Node 26 and Git for Windows. Keep build tools and logs outside the checkout. The Windows -release checkout is `~/Documents/Gitea/learnharness-release-0.5.2`, linked to the +release checkout is `~/Documents/Gitea/learnharness-release-0.6.0`, linked to the existing repository in `~/Documents/Gitea/learnharness`. In PowerShell, stop after any failed command: @@ -85,13 +85,13 @@ node scripts/smoke-demo-runtime.mjs --standalone dist/win-unpacked/resources/ser Windows contributes three attachments: -- `LearnHarness-0.5.2-x64-setup.exe` -- `LearnHarness-0.5.2-x64-setup.exe.blockmap` +- `LearnHarness-0.6.0-x64-setup.exe` +- `LearnHarness-0.6.0-x64-setup.exe.blockmap` - `latest.yml` The combined release has **seven attachments**, including one `SHA256SUMS` covering all six other files. Verify that `latest.yml` names the Windows -installer exactly, reports version `0.5.2`, and matches the installer's actual +installer exactly, reports version `0.6.0`, and matches the installer's actual size and SHA-512. Its gzip blockmap must cover the installer and match every block checksum. Confirm the packaged `resources/app-update.yml` uses the Gitea generic provider. Windows builds follow upstream's unsigned, per-user installer @@ -102,8 +102,8 @@ configuration. Commit and push the release source, then push its exact annotated tag: ```sh -git tag -a v0.5.2 -m 'LearnHarness 0.5.2' -git push gitea main v0.5.2 +git tag -a v0.6.0 -m 'LearnHarness 0.6.0' +git push gitea main v0.6.0 ``` Supply `GITEA_TOKEN` only to the upload command. A token file may remain outside @@ -117,14 +117,14 @@ The tool requires the tag to exist in Gitea, creates or reuses one draft at that tag, uploads missing assets, and downloads every attachment to verify its actual SHA-256 against the local verified build. Existing mismatched attachments and published releases are refused. It never publishes or changes repository -visibility. Release notes come from `docs/release-0.5.2.md`. +visibility. Release notes come from `docs/release-0.6.0.md`. This uploader and its remote verifier enforce a **Linux-only** inventory. They -will refuse a combined Linux/Windows draft. For the combined 0.5.2 release, add +will refuse a combined Linux/Windows draft. For the combined 0.6.0 release, add the verified Windows attachments to the existing draft and replace `SHA256SUMS` with the combined manifest. Keep the Linux installers and feed unchanged. Check all seven attachment names and sizes against the verified local builds. For -the owner-approved 0.5.2 release, local installer/feed/blockmap validation and +the owner-approved 0.6.0 release, local installer/feed/blockmap validation and the combined checksum manifest are completed before upload. Confirm successful upload responses and publish immediately afterward; do not download attachments again or run post-upload hash checks. Do not publish until both platforms' @@ -145,12 +145,12 @@ public `latest` feed and in-app automatic updates expose this version. workflow with an existing release tag as input. It requires a native Linux x64 runner labeled `ubuntu-24.04`, the label used by upstream's Linux release job, plus the native Electron dependencies and `xvfb-run`. There were no runners -registered when 0.5.2 was prepared, so its packages are built locally. A tag push +registered when 0.6.0 was prepared, so its packages are built locally. A tag push does not queue a job that cannot run. The workflow uses the repository's ephemeral `GITEA_TOKEN` with release-write permission only in the final upload step. It checks out the requested tag without persisting credentials and leaves the result as a verified draft. Public pull requests cannot trigger this publishing workflow. This workflow remains -Linux-only; the combined 0.5.2 draft was assembled from local native builds. +Linux-only; the combined 0.6.0 draft was assembled from local native builds. Windows has its own standalone payload and smoke checks, as described above. diff --git a/docs/release-0.6.0.md b/docs/release-0.6.0.md new file mode 100644 index 0000000..153d33e --- /dev/null +++ b/docs/release-0.6.0.md @@ -0,0 +1,63 @@ +# LearnHarness 0.6.0 + +## English + +This release adds OpenRouter speech recognition and a dedicated speech-recognition +settings page, with cleaner controls in English and Russian. + +- **OpenRouter STT:** choose **MAI-Transcribe-2 · OpenRouter** and add your + OpenRouter API key under **Settings → Providers**. The app records locally, + sends the whole recording after **Stop**, and shows **Transcribing…** until + the complete transcript is ready. Audio is not split into speech segments. + Cancelling aborts the request; submitting an answer or message waits for + transcription. The permanent API key stays on the server and audio is not + saved to disk. Recordings are limited to 25 MB, about 13 minutes. +- **Settings → Speech recognition** now contains the model, recognition language, + and preferred languages. The two model choices use the same format: + **Nova-3 · Deepgram** and **MAI-Transcribe-2 · OpenRouter**. General settings + contains only interface language and automatic updates. +- **Preferred languages** uses a styled checkbox dropdown aligned on the right. + It stays open while selecting English and Russian, shows **No preference** + when neither is selected, and no longer dims or flashes while saving. + These hints remain available for Deepgram Multilingual. MAI uses automatic + language detection for Multilingual; its API does not expose a RU + EN hint + list. Saved hints are retained when switching models. +- On Linux, clicking an available **Fast** button keeps the normal cursor while + the setting is saved. + +Existing settings remain compatible and direct Deepgram Nova-3 remains the +default. Linux x64 packages include AppImage and Debian; Windows x64 has an +installer. Both platforms use this fork's public Gitea releases for automatic +updates. The Windows installer remains unsigned, as in previous releases. + +## Русский + +В этом выпуске добавлено распознавание речи через OpenRouter и отдельный раздел +его настроек. Элементы управления обновлены на русском и английском языках. + +- **Распознавание через OpenRouter:** выберите **MAI-Transcribe-2 · OpenRouter** + и добавьте API-ключ OpenRouter в разделе **Настройки → Провайдеры**. Приложение + записывает речь локально, отправляет всю запись после остановки и показывает + **Распознавание…** до получения полного текста. Речь не разбивается на + отдельные фрагменты. Отмена прерывает запрос, а отправка ответа или сообщения + дожидается завершения распознавания. Постоянный API-ключ остаётся на сервере, + аудио не сохраняется на диск. Максимальный размер записи — 25 МБ, примерно + 13 минут. +- Новый раздел **Настройки → Распознавание речи** содержит выбор модели, языка + распознавания и предпочитаемых языков. Названия моделей оформлены одинаково: + **Nova-3 · Deepgram** и **MAI-Transcribe-2 · OpenRouter**. В разделе «Общие» + остались только язык интерфейса и автоматические обновления. +- **Предпочитаемые языки** выбираются в оформленном в стиле приложения + выпадающем меню с флажками справа. Меню остаётся открытым при выборе русского + и английского. Если оба флажка сняты, отображается **Без предпочтений**. + Во время сохранения меню больше не тускнеет и не мигает. Подсказки работают + в многоязычном режиме Deepgram. MAI определяет языки автоматически: его API + не предоставляет списка подсказок RU + EN. Сохранённые предпочтения остаются + при переключении моделей. +- В Linux нажатие доступной кнопки **Быстро** больше не меняет курсор на время + сохранения настройки. + +Прежние настройки совместимы; по умолчанию по-прежнему используется Deepgram +Nova-3 напрямую. Для Linux x64 доступны AppImage и Debian, для Windows x64 — +установщик. Обе версии получают автоматические обновления из публичных выпусков +этого форка в Gitea. Установщик Windows не подписан, как и в предыдущих выпусках. diff --git a/package-lock.json b/package-lock.json index 94f2990..f5cc3e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "learnharness", - "version": "0.5.2", + "version": "0.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "learnharness", - "version": "0.5.2", + "version": "0.6.0", "license": "AGPL-3.0-only", "dependencies": { "@earendil-works/pi-agent-core": "1.4.0", diff --git a/package.json b/package.json index 23cd2bc..eb6ac95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "learnharness", - "version": "0.5.2", + "version": "0.6.0", "license": "AGPL-3.0-only", "author": { "name": "Amos Blomqvist",