From 168cad74708d4b16b5599c77d8204d7d004b9cfe Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Mon, 26 Oct 2026 02:14:27 +0300 Subject: [PATCH] chore: prepare 0.5.2 Linux and Windows release --- .gitea/workflows/release.yml | 4 +-- docs/desktop-release.md | 2 +- docs/gitea-release.md | 39 +++++++++++++------------ docs/release-0.5.2.md | 56 ++++++++++++++++++++++++++++++++++++ package-lock.json | 4 +-- package.json | 2 +- 6 files changed, 83 insertions(+), 24 deletions(-) create mode 100644 docs/release-0.5.2.md diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2f90863..1ae476a 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.1 +# Manual until a native Linux runner is registered. The current 0.5.2 # 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.1) + description: Existing stable version tag to package (for example v0.5.2) required: true type: string diff --git a/docs/desktop-release.md b/docs/desktop-release.md index ccf7c4c..17c4ba0 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.1 release on Gitea, see [Gitea releases](gitea-release.md). +For this fork’s Linux and Windows 0.5.2 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 c6f0974..98b08a5 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.1 targets Linux x64 and Windows x64**, with each platform built +Version **0.5.2 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.1 has these attachments: +The Linux portion of 0.5.2 has these attachments: -- `LearnHarness-0.5.1-x86_64.AppImage` -- `LearnHarness-0.5.1-amd64.deb` +- `LearnHarness-0.5.2-x86_64.AppImage` +- `LearnHarness-0.5.2-amd64.deb` - `latest-linux.yml` - `SHA256SUMS` ## Preparing Windows packages -Use a clean checkout of the same `v0.5.1` tag on Windows x64 with Node 26 and Git +Use a clean checkout of the same `v0.5.2` 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.1`, linked to the +release checkout is `~/Documents/Gitea/learnharness-release-0.5.2`, 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.1-x64-setup.exe` -- `LearnHarness-0.5.1-x64-setup.exe.blockmap` +- `LearnHarness-0.5.2-x64-setup.exe` +- `LearnHarness-0.5.2-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.1`, and matches the installer's actual +installer exactly, reports version `0.5.2`, 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.1 -m 'LearnHarness 0.5.1' -git push gitea main v0.5.1 +git tag -a v0.5.2 -m 'LearnHarness 0.5.2' +git push gitea main v0.5.2 ``` Supply `GITEA_TOKEN` only to the upload command. A token file may remain outside @@ -117,15 +117,18 @@ 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.1.md`. +visibility. Release notes come from `docs/release-0.5.2.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.1 release, add +will refuse a combined Linux/Windows draft. For the combined 0.5.2 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, sizes, and actual downloaded hashes against the -verified local builds; update the bilingual release notes to include Windows. -Do not publish until both platforms' checks pass. +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 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' +local checks pass. A separate verification can be repeated without changing the draft: @@ -142,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.1 was prepared, so its packages are built locally. A tag push +registered when 0.5.2 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.1 draft was assembled from local native builds. +Linux-only; the combined 0.5.2 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.5.2.md b/docs/release-0.5.2.md new file mode 100644 index 0000000..ff10636 --- /dev/null +++ b/docs/release-0.5.2.md @@ -0,0 +1,56 @@ +# LearnHarness 0.5.2 + +## English + +This release adds preferred speech-recognition languages and fixes the model +settings layout. + +- **Settings → General → Preferred languages** offers **English** and **Русский** + checkboxes below the label and explanation. Select both with **Multilingual** + to guide recognition toward Russian and English in the same recording. + Preferred languages are hints, so other supported languages may still be + recognized. Leaving both unchecked keeps automatic detection. +- Preferences are saved independently of interface language and STT mode. + They remain saved when a single-language mode is selected, but are sent only + with Multilingual. The controls lock while saving or recording, and a failed + save preserves the previous choice and shows a localized error. +- Each recording keeps its language and preferred-language hints through any + reconnects. Later preference changes apply to the next recording. +- **Settings → Agent** now gives model-tier descriptions a flexible text column. + Model, reasoning, and Fast controls stay together and align across tiers. + Narrow panels place the complete control group below the description, + aligned left. Long model names keep their existing ellipsis, and background-use + permission buttons occupy a separate line. + +Packages: **Linux x64** AppImage and Debian, and a **Windows x64** installer. +Both platforms use this fork's public Gitea releases for automatic updates. +Windows packaging remains unsigned, matching previous releases. + +## Русский + +В этом выпуске добавлен выбор предпочитаемых языков распознавания речи +и исправлено расположение элементов в настройках моделей. + +- В разделе **Настройки → Общие → Предпочитаемые языки** появились флажки + **English** и **Русский**, расположенные под заголовком и пояснением. + Выберите оба в режиме **Несколько языков**, чтобы отдавать приоритет русскому + и английскому в одной записи. Это подсказки для распознавания: другие + поддерживаемые языки тоже могут быть распознаны. Если оба флажка сняты, + используется автоматическое определение языка. +- Предпочтения сохраняются независимо от языка интерфейса и режима распознавания. + При выборе одного языка они сохраняются, но отправляются только в режиме + «Несколько языков». Флажки заблокированы во время сохранения и записи. + Если сохранить настройку не удалось, прежний выбор сохраняется, а приложение + показывает ошибку на выбранном языке. +- Язык и подсказки фиксируются на время записи, включая повторные подключения. + Последующие изменения применяются к следующей записи. +- В разделе **Настройки → Агент** описания уровней моделей занимают гибкую + текстовую колонку. Выбор модели, уровня рассуждения и быстрый режим остаются + вместе и выровнены между уровнями. В узких панелях вся группа располагается + под описанием с выравниванием по левому краю. Длинные названия моделей + по-прежнему сокращаются многоточием, а кнопки разрешения фоновой работы + размещаются на отдельной строке. + +Пакеты: AppImage и Debian для **Linux x64**, установщик для **Windows x64**. +Обе версии используют публичные выпуски этого форка в Gitea для автоматических +обновлений. Установщик Windows не подписан, как и в предыдущих выпусках. diff --git a/package-lock.json b/package-lock.json index 288fab4..94f2990 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "learnharness", - "version": "0.5.1", + "version": "0.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "learnharness", - "version": "0.5.1", + "version": "0.5.2", "license": "AGPL-3.0-only", "dependencies": { "@earendil-works/pi-agent-core": "1.4.0", diff --git a/package.json b/package.json index 25bbd7b..23cd2bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "learnharness", - "version": "0.5.1", + "version": "0.5.2", "license": "AGPL-3.0-only", "author": { "name": "Amos Blomqvist",