Releases: chezgoulet/hermes-vox
Release list
Hermes Vox 0.8.0 — the accelerator release
Enhanced Realtime, complete: the warm soul, the beat, no more double answers, and a
clean handoff. A better voice (Supertonic), a soul that hears your tone, and speech
recognition that refuses to invent words. Downloads that survive leaving the screen,
int8 speech recognition, the GPU-rendered being, and keep-awake.
versionCode 141, signed CN=Hermes Vox.
One gate was not run. G1 — the GPU initialising on a Tensor G4 — is untestable on the
hardware available, so this release proceeds without it deliberately. The substitute
evidence is the nightly series in daily use on a real device. Recorded in full at the top
of docs/RELEASE-0.8.0.md.
Full notes: docs/RELEASE-0.8.0.md
Hermes Vox 0.7.3 — the first-run fix
Hermes Vox 0.7.3 — the first-run fix
Version code 115 · versionName 0.7.3 · built from main (0.7.2 + this fix).
What this is
A one-bug release. It fixes a hard block on first run: on a phone whose display
size or font size is turned up, the onboarding explainer could be taller than the
window, and because that screen had no scroll container, everything past the bottom
edge was never drawn. The only control that moves a new user forward — "Got it —
connect" — was unreachable, and there was no scroll to reach it with. Back or Home
was the only exit.
Reported from a Pixel 8 on Android 17 QPR1 beta with Font size ~150% and Display size
one step up (#130). The framing in the report — "splash screen too
large", blamed on the beta — was not what was happening.
The measurements, because the report's framing was wrong
From the screenshot's pixels rather than its caption: the screen was rendering at
density ~2.875 × font scale ~1.5, with Android's non-linear font scaling visible in
it — a 30sp heading does not scale at all below ~1.8, so the 12sp caption caught up to
it and the screen read as one uniform wall of text. That is ~1080dp of column inside a
~760dp window; the model predicts the clip edge within two pixels of where the
screenshot cuts a line mid-glyph.
At default settings the same column is ~790dp in ~840dp of window — about 6% of
slack. Font size: Large (1.15) consumes it; Largest (1.3), or Display size one
step up, puts the button off-window. The screen that "worked" was never tested; it was
lucky.
The fix
activity_onboarding.xmlis a scroll container. The column is wrapped in a
fillViewportScrollView and becomeswrap_content. When the content fits,
fillViewportstretches the column to the window andgravity="center"centres it
exactly as before — the default screen does not move, and the code does not even
rewrite the declared presence size on a default device. When it does not fit, it
scrolls instead of clipping.- The presence yields space as the text grows (
OnboardingLayout.avatarSizeDp):
250dp at defaults, 205/170/140dp as the font scale or a short window demands. The copy
and the controls never shrink. This puts the button ~1/8 of a screen below the fold at
the reported settings, and ~1/5 at the accessibility maximum, instead of out of reach. OnboardingActivitygetswindowSoftInputMode="adjustResize", so the keyboard
cannot bury Connect on the connection form (those fields are in the same container).- Each step opens at its top, so a user who scrolled the explainer to reach its
button does not arrive at the form mid-scrolled with the first field above the fold.
Gated, not decorated
OnboardingLayoutTest and OnboardingAvatarSizeTest (device-free JVM, in the shape of
the existing suite) hold the structure: the root is a vertical scroll container with
fillViewport, its single child is wrap_content, every id in the file lives inside it,
the column still centres and pads as the old root did, and the size rule is pinned down
to its literals and boundaries. Run against the pre-fix layout, the same suite fails
three assertions — the negative control — so the gate bites.
What is NOT in this release
The accelerator series (Gemma on the GPU, speech-model threading, model-size
corrections) stays on testing. Its plan status is UNPROVEN — docs/PLAN-0.8-accelerator.md
— and it ships as part of 0.8.0 when the series completes, per ROADMAP.md. Its
draft notes, which had been filed under this version number, are re-labelled
docs/RELEASE-0.8.0.md on testing. The entity-scope field (#129) and the
Enhanced-Realtime soul-lane work are likewise testing-only and not in 0.7.3.
Verify on a device
Install over 0.7.2 (same release key, no uninstall), then:
- Defaults first: first run looks exactly as before — presence centred, everything
one screen. - Font size → Largest: first run scrolls; "Got it — connect" is reachable by
scrolling; tapping it opens the form at its top. - Form: with the keyboard up, the fields and Connect stay reachable.
Artifact
hermes-vox-0.7.3.apk — 96446744 bytes
sha256 c6abdbc1d679a0c2a2bf81109b4b722fd14fd831020f0ea0526ebb8135511e49
Signed with the House release key (CN=Hermes Vox, OU=ChezGoulet, O=ChezGoulet,
SHA-256 8be7feed8a6135d3d2df8fd51598517dabd4b14ea16a1a02b00c10ea4dcbbb19) — the same
key the nightlies use, so it installs over 0.7.2 without an uninstall. A device
running a nightly is ahead of this release in version-code order (nightlies are
versionCode 116+, this release is 115), and Android refuses a downgrade: coming back
from a nightly to the release track needs an uninstall first.
Built and gated on the Thelio: go vet + go test -race ./voice/... clean,
gomobile bind → staged AAR, assembleRelease + testReleaseUnitTest green
(269 tests, 0 failures), aapt2 dump badging reports versionCode=115
versionName=0.7.3, apksigner verify reports the key above.
Nightly nightly-20260930-150133-ebafe31
Automated nightly from testing @ ebafe31.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-143819-488b5bf
Automated nightly from testing @ 488b5bf.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-125225-f2acd16
Automated nightly from testing @ f2acd16.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-021019-9dd6654
Automated nightly from testing @ 9dd6654.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-012409-121310c
Automated nightly from testing @ 121310c.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-010417-9480623
Automated nightly from testing @ 9480623.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260930-004504-b31e6d9
Automated nightly from testing @ b31e6d9.
Install via Obtainium (prereleases) — NOT for the release track.
Nightly nightly-20260929-191604-7eab8aa
Automated nightly from testing @ 7eab8aa.
Install via Obtainium (prereleases) — NOT for the release track.