chore(release): prepare v0.19.0 #53

Merged
xavierk merged 4 commits from release/v0.19.0 into main 2026-11-06 20:23:15 +00:00
4 Commits
Author SHA1 Message Date
xavierk 8f84829d34 docs(release): correct v0.19.0 changelog references and README link
CI / security (pull_request) Successful in 1m11s
CI / lint (pull_request) Successful in 22s
CI / ai-review (pull_request) Successful in 7s
- README: the current-release line links to the signed repository section.
- CHANGELOG: each (#N) matches its commit subject. #37 is the build from the
  tag, #39 the pysocks template and its version floors. Internal tickets are
  named as tickets.
- publish-release.sh: the gates-passed line names the commit the out-dir was
  built from, and keeps the same gate wording.
2026-11-07 01:51:05 +05:30
xavierk 6c09812271 chore(release): prepare v0.19.0
CI / security (pull_request) Successful in 1m13s
CI / lint (pull_request) Successful in 24s
CI / ai-review (pull_request) Successful in 7s
The first Voculinux release. It has no phase suffix, so the tag is v0.19.0
and the xbps version is 0.19.0_1.

- src/vocalinux/version.py, the Void template (version and _tag), the web
  softwareVersion and package version, the README badge and current-release
  blurb
- docs/UPDATE.md: What's New in v0.19.0, and the source checkout tag
- CHANGELOG.md: v0.19.0 entry from v0.18.5..main, the fork's changes and the
  upstream fixes carried after 0.18.5
- SECURITY.md: 0.19.x is the supported line
- pyproject.toml: project URLs point at git.bongbetic.com/xavierk/voculinux
2026-11-07 01:46:38 +05:30
xavierk dc7e964981 feat(void): publish built releases with publish-release.sh
The release is built on the maintainer's x86_64 Void host, not in CI. The
bongbetic-ci runner is ARM64 and cannot build the glibc x86_64 package. A tag
push no longer starts the xbps workflow: it is manual dispatch only, and its
header says why.

- build-release.sh release refuses an uncommitted or untracked checkout before
  any container starts. It writes BUILT_FROM (the tag and the commit it was
  built from), which nothing recorded before.
- publish-release.sh TAG --out-dir DIR publishes a built out-dir to the Gitea
  release API in the workflow's order. It refuses unless origin's tag peels to
  the BUILT_FROM commit, the sdist digest matches, and the client key is the
  committed one. --dry-run runs every check and prints the planned calls
  without sending one. The token comes from GITEA_TOKEN or the tea login and is
  never printed.
- Tests run both scripts offline against a local bare origin and a stateful
  Gitea stand-in.
- docs/RELEASE_PROCESS.md and packaging/void/README.md describe the local
  sequence: merge, annotated tag by ref, clean build, dry-run, publish, checksum.
2026-11-07 01:46:38 +05:30
xavierk 64020a132d feat(model): hard-code per-backend ladder thresholds from ticket #19
The whisper.cpp ladder keyed both GPU backends to one provisional pair of
thresholds. Issue #19 (comment 12913) measured each rung's transcribe-time
VRAM delta on the installed build. The thresholds are those deltas plus the
512 MiB desktop headroom:

- vulkan: q8_0 1644 MiB, q5_0 1359 MiB (was 1644 and 1358)
- cuda:   q8_0 1690 MiB, q5_0 1404 MiB

select_ladder_rung and resolve_startup_rung take the installed build's
backend. CPU and unknown backends keep the Vulkan thresholds; the RAM rule
proposed in #19 is not implemented.

The first-run default in config_manager now reads the memory of the
installed build (VRAM for a GPU build, RAM otherwise). It used to read VRAM
whenever an NVIDIA card was present, even on a CPU build.
2026-11-07 01:46:38 +05:30