chore: prepare 0.6.0 Linux and Windows release

This commit is contained in:
2026-10-26 23:43:56 +03:00
parent ecbd2b0bb9
commit d43ffe4f8a
6 changed files with 85 additions and 22 deletions
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+16 -16
View File
@@ -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.
+63
View File
@@ -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 не подписан, как и в предыдущих выпусках.
+2 -2
View File
@@ -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",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "learnharness",
"version": "0.5.2",
"version": "0.6.0",
"license": "AGPL-3.0-only",
"author": {
"name": "Amos Blomqvist",