Hermes Agent

com.hermesagent.hermes_android
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

First release: Sep 16, 2026, 34 total releases.

Most recent release: Nov 1, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Nov 1, 2026 3.2.1
    ## Hermes Android 3.2.1 - Search the per-chat model picker by model ID or provider, ignoring case and surrounding spaces. - Filtering preserves your selected provider/model; clearing search restores the list. Only **Apply to this chat** saves a choice. - Scrollable content and wrapping actions improve compact/large-text layouts above the keyboard. Widget tests cover this; real-device IME acceptance is not claimed. Thanks **@esc247** for #248 and its regression tests. Original commits are preserved through a true merge commit. AI-assisted independent review, integration tests and release preparation. ### Install Use `app-arm64-v8a-release.apk` for most phones. Version **3.2.1**, base **3027**, ABI codes **30271 / 30272 / 30273**. Production package and signer are unchanged. Install over the existing app; do not uninstall or clear data. No GitLab/F-Droid update was performed.
    More…
    ### Verification 5,179 full local Flutter tests and fatal analysis passed; 80 Python release/material tests passed. Independent feature and release reviews approved. All three PR checks and exact release-preparation main CI passed. [Tag release workflow](https://github.com/rusty4444/hermes-android/actions/runs/41293716901) succeeded at `b7cd9e216b91c5ad9e4f887757b3abb5570e5067`, including signed build, signature verification and publication. Downloaded all five assets and verified GitHub digests/sizes, checksums, all three APK package/version/ABI/production signatures and 22 packaged materials per APK. The source/relink bundle matches all 1117 tracked blobs at the release commit. These checks do not assert reproducible-build provenance or device acceptance.
  • Nov 1, 2026 3.2.0
    # Hermes Android 3.2.0 Stable release covering all changes since v3.1.7. Application code is unchanged from the approved RC.5. ## Usage, Portal and provider sign-in - **More → Usage** brings together Nous Portal, OpenRouter, OpenAI, Claude and DeepSeek. Provider entries remain discoverable even when model discovery is empty, partial or unavailable; OpenAI uses the canonical provider identity. - Nous Portal shows gateway status and profile-wide recorded usage/model
    More…
    analytics. Provider screens filter Hermes-recorded activity, including retired models. Neither is a provider balance, pricing catalogue or billing statement. - Host-reported Codex and Claude OAuth account allowances are separate from paid OpenAI/Claude API usage. Show only reported five-hour/session and weekly windows, remaining percentages and reset timestamps. Missing values stay unavailable, accounts are not averaged, and unknown/model-specific window labels retain their scope. There is no invented daily quota, token budget or entitlement. Allowance and recorded-analytics reads have independent loading/retry paths. - **More → Usage → Provider sign-in** and **Settings → Provider sign-in** use Dashboard device-code login for Nous, OpenAI Codex, MiniMax and xAI. Anthropic remains external-only; OpenRouter is absent from this audited OAuth catalogue. API-server and Desktop RPC transports do not implement this login flow. - Only explicit taps open validated HTTPS provider pages externally. Codes stay transient in route memory and provider tokens stay on the host. Saved origin, prefix, authentication, profile and mTLS boundaries survive discovery, start, poll, cancellation and catalogue readback; authenticated redirects are rejected. - Approval says **Approval received; account verification unavailable**, not **Signed in as**. Historical approved-session identity cannot verify the current host account. Approval refreshes only the same-profile OAuth catalogue, not generic model/analytics data. If catalogue loading fails, close and reopen this screen; it has no in-screen catalogue retry. Nous free-tier replacement may change host defaults; the app warns rather than promising token-only effects. - OAuth and quota copy is translated across all 11 shipped ARB locales, including regional variants; the earlier RC.2 English-fallback description is historical. See [provider usage](../provider-usage.md), [OAuth safety](../provider-oauth.md) and [account-readback limits](../provider-oauth-readback-verification.md). ## Profile and cron model management - **More → Agent → Model** now owns the profile default and auxiliary task assignments formerly under Settings. Choose and explicitly save a supported provider/model; accepted writes require exact readback. Existing per-chat overrides remain unchanged. Auxiliary task IDs supplied by newer hosts are retained, as are unknown current models and server expensive-model guards. - Main-model editing requires matching host route metadata from `/api/providers/custom-endpoints`, not endpoint-free `/api/model/info` or a flattened config response. Missing, malformed or mismatched metadata disables main editing until Refresh; independent auxiliary controls remain usable. - Recognised exact canonical provider/URL pairs are standard routes even when the host persists a nonempty URL. Active named custom routes take precedence; custom, local, overridden and unrecognised routes remain read-only. Catalogue `api_url` fields, hostname similarity or URL suffixes cannot establish safety. Readback repeats the route-safety check before reporting success. - **Crons → Edit → Model** pins a provider/model for that job only. **Follow default** clears `model`, `provider` and `base_url`; selecting a discovered model also clears an old endpoint. Unchanged routes are omitted from updates. Custom/retired and endpoint-only pins remain visible and are not silently normalised. Endpoint editing is not offered; script-only mode retains but cannot change its pin. Confirmed saves require exact-job route readback. - Discovery, writes and readback preserve selected-profile authority and the normalised saved Dashboard origin, prefix, authentication and mTLS identity. Explicit profiles never fall back to the launch profile. Late responses after connection replacement/disposal cannot confirm a stale save. Missing local TLS identity is retryable rather than a construction crash or unauthenticated retry. See [model management](../model-management.md) and [per-cron selection](../cron-model-selection.md). ## Chat, approval, discovery and accessibility fixes - Searchable command palette for copy latest code, refresh, export, rename and archive actions. Code copying follows the latest visible assistant code block across received/saved handoff, not a stale reply or hidden background report. - Composer code/bold/italic helpers and compact/200%-text/keyboard layouts remain usable. The new-chat sheet scrolls so every mode stays reachable on compact large-text screens. - REST run approvals preserve canonical prompt identity and execution generation, reject malformed/stale authority rather than downgrading to legacy controls, and use the saved profile. Back cannot dismiss an approval while a response is submitting, preventing a concurrent denial. - Untitled cron shells are hidden only with an explicit valid integer zero count and no raw/display preview. Unknown-count, titled and content-bearing rows remain available; this is presentation filtering, never server deletion. - Follow-up LAN repairs bound probing/cancellation, validate health/model response shapes and retain the verified HTTPS scheme, port and scoped IPv6 identity. LAN discovery itself already shipped in 3.1.7; it is not new in 3.2.0. - Feature clients consistently use the normalised Dashboard origin instead of accidentally routing requests through a different service/port. The audited Git range also contains merged ancestor commits for batch clarification parsing and collapsed Android-context notices, but their affected model/presentation files are unchanged against the 3.1.7 tree. They are not advertised as new stable-to-stable capabilities. ## Installation and verification Use `app-arm64-v8a-release.apk` for most phones. Production signer unchanged. Version 3.2.0, base 3026; split codes 30261 / 30262 / 30263 upgrade all RC.5 builds in place. Do not uninstall or clear app data. 5,174 Flutter tests passed locally, independent promotion review approved, and PR/main CI passed. Release workflow [41271576147](https://github.com/rusty4444/hermes-android/actions/runs/41271576147) succeeded on attempt 2 at `e92e38588ade1fd60225e00cae40c2ec54af1c6d`. Attempt 1 stopped before publication on a pending-timer assertion in an unrelated push/navigation test; its focused local rerun and complete CI retry passed without source changes. Downloaded all five published assets and verified hashes/sizes, package/version/ABI/production signatures, 22 packaged materials per APK, and exact source/relink contents against 1,112 tracked blobs. Main, immutable tag and release target are the same commit. Merged #249, #250 and promotion #251; unrelated #248 is excluded. GitLab/F-Droid were not updated. Host endpoint and mobile-push compatibility limits remain as documented; upgrading the APK does not update the host. ## Credits Thanks to @rusty4444 and the contributors credited in the README. Original commit ancestry and licence notices are preserved. AI-assisted implementation, review, testing and release preparation.
  • Oct 30, 2026 3.1.7
    ## What's Changed * feat: add Find Hermes on LAN discovery by @rusty4444 in https://github.com/rusty4444/hermes-android/pull/236 **Full Changelog**: https://github.com/rusty4444/hermes-android/compare/v3.1.6...v3.1.7
  • Oct 29, 2026 3.1.0
    ## What's Changed * feat(chat): attach long pastes as paste.txt by @rusty4444 in https://github.com/rusty4444/hermes-android/pull/212 * fix(chat): settle stock idle turns only on owned successful completion receipts by @mordekai-lab in https://github.com/rusty4444/hermes-android/pull/221 * feat: add opt-in foreground hands-free voice (#142) by @rusty4444 in https://github.com/rusty4444/hermes-android/pull/216 * feat(settings): switch to hide the hands-free voice controls (#227) by @rusty4444 in https://github.com/rusty4444/hermes-android/pull/228 **Full Changelog**: https://github.com/rusty4444/hermes-android/compare/v3.0.6...v3.1.0
  • Oct 28, 2026 3.0.6
    ## Hermes Android 3.0.6 Version **3.0.6+3010** · APK codes `30101` (ARMv7), `30102` (ARM64), `30103` (x86_64). **Keeps REST/API-server turns alive through backgrounding.** With *Settings → Background work → Keep chats active in the background* enabled, an API-server (REST SSE) send now registers as app-wide turn activity for the whole streaming lifetime, so switching apps mid-turn no longer freezes the process and destroys the turn (#225). **Notifications are clearer and more private.** Approval and input notifications now show generic body text — command and request details never appear on the lock screen — while the title still names the connection and session. Approve/deny actions and tap-through into the pending request are unchanged. Connection attribution and state are spelled out, status/error/recovery controls sit next to the settings they affect, the disable action explains exactly what it does, and the switch is screen-reader accessible (#224). Thanks to **@mordekai-lab** for the notification clarity and privacy work and regression tests.
    More…
    **Upgrading:** export an encrypted configuration backup first, then install the matching production-signed APK over the existing app — no uninstall, no data loss. Package and signing identity are unchanged from 3.0.5. Notes: keep-alive protection does not survive force-stop, Doze or OEM killers; durable `/v1/runs` reattach is tracked in #149. While backgrounded, the gateway connection closes on purpose and background events surface as encrypted kind-only push hints. *Verified: full test suite (4,691 cases) locally and in CI; signed-release build with the established production signer; all three APKs, checksums and exact-commit source/relink bundle attached below.*
  • Oct 28, 2026 3.0.5
    ## Changes - View recognised scheduled-job setup, including embedded skill instructions, in read-only **Background task** cards. Verbose Mode starts them collapsed; conversation-only mode hides them. - Answer approvals without closing the chat or a newer prompt. Each response closes its own approval dialog, even when turn cleanup or another prompt changes the route stack. Thanks to [@mordekai-lab](https://github.com/mordekai-lab) for the approval-dialog fix and regression tests in [#220](https://github.com/rusty4444/hermes-android/pull/220). The merge preserves their original commit history. ## Updating Export an encrypted configuration backup, then install the matching APK over the existing production app. Do not uninstall or clear app data. You do not need to restart the gateway or change its settings.
    More…
    **3.0.5+3009:** ARMv7 `30091`, ARM64 `30092`, x86_64 `30093`. All three APKs retain the established production signer. The downloads include checksums and exact-commit source/relink materials. See the [detailed release notes](https://github.com/rusty4444/hermes-android/blob/v3.0.5/docs/releases/3.0.5.md) for compatibility limits. Hermes Agent assisted with review, integration and tests; automated checks do not replace physical-phone testing.
  • Oct 27, 2026 3.0.3
    # Hermes Android 3.0.3 Version **3.0.3+3007** contains the LCM presentation change in [PR #211](https://github.com/rusty4444/hermes-android/pull/211) and validated audit corrections in [PR #214](https://github.com/rusty4444/hermes-android/pull/214). These notes cover changes since **3.0.2**. ## Upgrading Export an encrypted configuration backup before updating and keep its password safe. Backups can include connection credentials and imported client private keys. Install the matching production-signed APK over the existing app; **do not uninstall or clear app data**. The package remains `com.hermesagent.hermes_android`, with the existing production signing identity. Base build `3007` yields `30071` for ARMv7, `30072` for ARM64 and `30073` for x86_64. Every split exceeds the highest published 3.0.2 split, `30063`, allowing in-place upgrades. Debug builds remain a separate package and are not signed production upgrades.
    More…
    ## Chat reports, Stop and stalled streams - Complete LCM Recent, Session Arc, Durable, Depth-N and grouped context summaries use read-only **Background task** reports. They start collapsed in Verbose Mode and are hidden in conversation-only mode. Ordinary prose, quoted or incomplete examples and genuine human input remain messages. Original saved content is not rewritten. - Recovery-v2 Stop retains the admitted turn's observer through nonterminal wind-down, including when Stop precedes the first state callback. Stop cleanup rebuilds the controls, and attachment-only Send during an active turn explains the unsupported action without discarding staged files. - REST/SSE responses stop waiting after **60 seconds without raw-body activity**. Any received body event renews the timer, including keepalives, tool/status data and fragmented text. This is not a maximum turn duration. A stalled connection does not establish whether the server executed the prompt; the app does not automatically resend it. ## Paging, storage and startup - Session lookup and archive paging retain client-side exhaustion safeguards instead of truncating on misleading `has_more` or `total` metadata. Opaque session IDs stay inside one encoded URL segment. - Resetting connections verifies removal of known credential bundles and preserves rollback handling. Rejected device-local Space writes report failure and retain confirmed state; Move/create/rename callers provide safe Retry feedback. - Closed Desktop clients cannot revive old callbacks. Forgotten local clarification handles are rejected before RPC, and failed session binding does not change later resume policy. - An optional Android share-intent bridge failure no longer strands startup. Unsupported Project metadata remains unknown rather than labelling every chat Unassigned. ## Video and document previews Video staging uses versioned process-held locks. On the next video preparation, marked, unlocked directories from an old process can be reclaimed. A failed or pending native-player release retains its locked source: a timeout or closed route is not evidence that deleting it is safe. Old unmarked directories are deliberately left alone. Opening errors are preserved if cleanup also fails, and successful public native disposal is required before deletion. File classification is shared between Assets and previews; WMV/ASF retain the download/share fallback without unnecessary staging. SVG remains inert text in the preview. FLV/F4V support is not categorically rejected, but actual playback still depends on Android and the codec. Additional regressions pin existing document inflation, entry-name, overlap and sheet-count guards independently. These are coverage corrections, not claims that each was an exploitable vulnerability. Existing immutable snapshots, off-isolate parsing and bounded resources remain. ## Audit dispositions and credits The [complete #207 ledger](https://github.com/rusty4444/hermes-android/blob/v3.0.3/docs/audit-207/README.md) covers **30 observations**: 25 corrections or coverage gaps, two intentionally retained behaviours, two disproved premises and one historical timing report not reproduced. Coverage corrections are not newly discovered production vulnerabilities. The timing report remains unexplained rather than being relabelled intentional. Thanks to **@Thaeland** for both explicitly AI-labelled audits and the provenance and false-positive notes. Hermes Agent assisted with reproduction, implementation, independent review orchestration, documentation and regression tests. Existing README credits, licence notices and historical changelog entries are preserved. ## Compatibility and delivery limits - No backend patch, gateway restart, host deployment or app-data reset is required for this patch. Existing transport capability gates remain; stock Hermes is not given experimental exactly-once recovery by this release. - Unknown outcomes remain unknown, and no missing or uncertain prompt is automatically resubmitted. Saved and received output retain independent provenance and existing retention limits. - Quiet saved history still needs completion metadata. Enable Verbose Mode for public details omitted by older gateways. The [3.0.2 history/inspector limits](https://github.com/rusty4444/hermes-android/blob/v3.0.3/docs/releases/3.0.2.md#compatibility-and-delivery-limits) remain. - Video reclamation happens on later video preparation, not as a broad startup/cache deletion. Covered preview routes retain separate resources and pause without automatically resuming; no aggregate player cap was added. - Host tests and emulator startup do not certify physical-phone codecs, peak memory, battery use or universal gateway compatibility. The historical root-navigation timing report is not reproduced, not proven impossible. - The 25 MiB file-transfer limit, encrypted backups and client-certificate safeguards remain. Background push still needs its separately installed, enabled and operator-authorised [server companion](https://github.com/rusty4444/hermes-android/blob/v3.0.3/docs/mobile-push-server.md) and supported phone transport. - This release does not add long-paste attachments, hands-free wake-word mode, image clarification answers or the newer canonical `session_authority` adapter from unmerged or closed PRs. - Published checksums and source/relink materials establish distribution identity and source association, not bit-identical reproducible builds, complete legal clearance or F-Droid acceptance. Some feedback retains the existing English fallback in other locales. The umbrella audit issue remains open for reporter/device acceptance and the documented limits. Other partial transport and licensing issues are not closed by this release. ## Verified distribution Final release commit: `b61648bd8b6831997bc0fc8c6abd5471f0dda617`, true-merged through [PR #217](https://github.com/rusty4444/hermes-android/pull/217). - Independent current-head release review approved; strict analysis clean; complete Flutter suite **4,642 passed**, with zero errors, skips or unfinished cases. - **69** publisher/README/native-CI/verifier tests and **5** additional source-material tests passed. Both real workflow identity snippets passed positive and wrong-base/tag controls. - Exact merged-main quality/native checks and the [tagged signed release build](https://github.com/rusty4444/hermes-android/actions/runs/40583983298) passed. - All three final published APKs were downloaded after the publisher stopped and verified for package, version, ABI code, production signer and all **13 packaged licence/source blobs per split**. - All five asset hashes/sizes and the exact APK checksum set match GitHub. The downloaded source/relink ZIP names the frozen commit and actual APK hashes; its seven retained materials and complete **915-blob application archive**, including file modes, match the commit. These are executed distribution-identity and source-association checks, not physical-phone acceptance, independent build provenance, bit-identical reproducibility or project-wide legal clearance. No GitLab/F-Droid update or host deployment was performed.
  • Oct 27, 2026 3.0.2
    # Hermes Android 3.0.2 Version **3.0.2+3006** fixes a stale recovery view that could leave an existing chat at an older reply despite newer saved messages. This page covers changes since **3.0.1**, including the fixes tested in **3.0.2-recovery.1**. [Download 3.0.2](https://github.com/rusty4444/hermes-android/releases/tag/v3.0.2) · [Changes since 3.0.1](https://github.com/rusty4444/hermes-android/compare/v3.0.1...v3.0.2) · [Changelog](https://github.com/rusty4444/hermes-android/blob/v3.0.2/CHANGELOG.md) ## Upgrading Export an encrypted configuration backup before updating, and keep its password safe. Backups can include connection credentials and imported client private keys. Install the matching production-signed APK over your existing app. **Do not uninstall or clear app data.**
    More…
    The package remains `com.hermesagent.hermes_android`, with the existing production signing identity. | APK | Device | Version code | | --- | --- | --- | | `app-arm64-v8a-release.apk` | Most current Android phones/tablets | `30062` | | `app-armeabi-v7a-release.apk` | Older 32-bit ARM devices | `30061` | | `app-x86_64-release.apk` | x86_64 Android devices/emulators | `30063` | Base build `3006` puts every stable split above the highest 3.0.2-recovery.1 code, `30053`, and all 3.0.1 splits. This lets testers upgrade in place. Older APKs have lower version codes; a downgrade can require uninstalling and restoring a backup. Debug builds use a separate package and Android debug signer. ## Existing chats and saved history After a turn lost its final confirmation, the app could retain an older received reply after newer saved messages. The end action could then land on that old reply, making the chat appear frozen even after Refresh. The app now separates eligible retained unknown output from the saved-history view. Refreshed saved history opens at its newest visible message. The **Saved history** end action takes you to the saved end, while delayed reads respect newer scrolling and navigation choices. A failed or empty history read does not hide retained output. New live prompts, tools and replies keep their existing presentation. The app does not change saved messages, infer correspondence from matching prose or row numbers, or resend a request to fill an apparent gap. ## Inspecting retained output Tap **Received · match unconfirmed** above the transcript to open a separate, read-only inspector. You can read retained public output without moving the saved transcript or editing, retrying or resubmitting a prompt. The inspector owns its scroll and detail state. Tool and reasoning expansion choices survive lazy scrolling within that visit. Separate storage for expansion state and scroll offsets avoids the earlier type-collision crash on remount. Quiet mode keeps its existing completed-reply filtering. Enable **Verbose Mode** to inspect retained public details. Unknown outcomes remain unknown: an idle gateway or partial reply does not prove that a turn succeeded. ## Compatibility and delivery limits - You do not need a backend patch, gateway restart or app-data reset for this fix. - Saved history and received output retain independent provenance. The gateway's complete `persisted_turn` receipt and fresh physical history still govern proven saved/received handover. This release does not invent a match or promote an uncertain outcome to success. - The app keeps received output in memory for the current application session, subject to existing retention limits. It can shorten or remove that output as limits apply. Closing the app or connection can lose it; the inspector is not a durable archive. - Quiet mode still requires completion metadata for saved replies. Enable Verbose Mode when an older gateway lacks that metadata. This release does not claim to fix every possible connection, authentication or live-update fault. - File previews, the 25 MiB transfer limit, encrypted backups and client-certificate handling retain their existing behaviour. See the [3.0.1 notes](https://github.com/rusty4444/hermes-android/blob/v3.0.2/docs/releases/3.0.1.md#compatibility-and-delivery-limits). - Background notifications still need the separate, enabled and operator-authorised [mobile-push server companion](https://github.com/rusty4444/hermes-android/blob/v3.0.2/docs/mobile-push-server.md) and a supported phone transport. Updating the APK alone does not install host software. ## Validation and credits Sam confirmed the recovery testing build on his phone and approved stable promotion. The application code for this fix matches that tested build; stable metadata changes its version identity and upgrade codes. This confirmation concerns the reported stale recovery view, not universal device or gateway compatibility. Verified final source `50ec30e10757e12b097b5b852d7a9589ccca6e75` after merge of [PR #210](https://github.com/rusty4444/hermes-android/pull/210): - Full Flutter suite: **4,468 passed**, with zero skips, errors or unfinished tests. Fatal-info analysis found no issues. - Release/publisher/verifier Python suite: **69 passed**. - Independent stable-promotion review: **READY**. The merged tree matches the final reviewed source, preserving the phone-tested application code. - Exact merged-main quality/native CI and [tagged signed build](https://github.com/rusty4444/hermes-android/actions/runs/40474488545) passed. - All three downloaded published APKs passed package, version, ABI code and production-signer verification. Packaged licence/source assets match the frozen Git blobs. - Downloaded checksums, asset hashes/sizes and the complete source/relink bundle passed verification against the frozen commit and actual APK hashes. These checks establish identity and source association, not bit-identical reproducible builds or universal device compatibility. Hermes Agent assisted with implementation, review, documentation and regression tests. Existing contributor credits and AI disclosure remain in the [README](https://github.com/rusty4444/hermes-android/blob/v3.0.2/README.md#credits), [NOTICE](https://github.com/rusty4444/hermes-android/blob/v3.0.2/NOTICE.md) and historical changelog.
  • Oct 26, 2026 3.0.1
    ## Video and Office previews - **Video playback in the app:** Play/Pause, replay, seeking and mute. Videos start paused. Backgrounding the app or covering the preview pauses playback; returning does not resume it until you tap Play. - **Offline Office text previews:** DOCX paragraphs and tables, XLSX sheet names/cell coordinates/raw stored values, and PPTX slide text in presentation order. - **One shared viewer:** chat file cards, inline filesystem file links and **More → Assets** use the same preview. Download and Share keep the original file bytes. Existing image, PDF and plain-text previews remain available. - **Private local playback:** the video player receives an app-private temporary file, not a gateway URL or connection credentials. ### Downloads and upgrading Export an encrypted configuration backup before updating, and keep its password safe. Version **3.0.1+3004** keeps the existing production package and signing identity and upgrades 3.0.0, 2.1.33 and the 3.0 RCs in place with the matching APK.
    More…
    | APK | Device | Version code | | --- | --- | --- | | [ARM64](https://github.com/rusty4444/hermes-android/releases/download/v3.0.1/app-arm64-v8a-release.apk) | Most current phones and tablets | `30042` | | [ARMv7](https://github.com/rusty4444/hermes-android/releases/download/v3.0.1/app-armeabi-v7a-release.apk) | Older 32-bit ARM devices | `30041` | | [x86_64](https://github.com/rusty4444/hermes-android/releases/download/v3.0.1/app-x86_64-release.apk) | x86_64 devices and emulators | `30043` | `SHA256SUMS` and the exact-commit application/embedded-library source and relink bundle accompany the APKs. Older APKs have lower codes; downgrading can require uninstalling and restoring a backup. ### Limits - Office previews extract **text only**, not the original layout, formatting, images or charts. Formulas are not evaluated and Excel number/date formatting is not applied. Legacy `.doc`/`.xls`/`.ppt`, OpenDocument and other unsupported files remain Download/Share-only. - Video codec support depends on Android and the device. Unsupported or corrupt media retains Download/Share so it can be opened in another app. - The existing **25 MiB per-file download limit** applies. Text extraction is offline after download; this is not a persistent offline file library or complete filesystem catalogue. - These previews need no backend patch or new server configuration. Background push is unchanged and still requires its separately installed and authorised mobile-push companion and a supported phone transport. - Physical-phone codec/playback and background-delivery acceptance is not established by automated tests. Some non-English labels retain English fallback. [Detailed release notes](https://github.com/rusty4444/hermes-android/blob/v3.0.1/docs/releases/3.0.1.md) · [Full changelog](https://github.com/rusty4444/hermes-android/blob/v3.0.1/CHANGELOG.md) Implementation, review, documentation and regression tests were assisted by Hermes Agent. Existing community credits and third-party notices are retained. ## Release verification - Source commit: `3f26dd528224e21bc6ae3efcc5dc18912efb7f52`. Independent release review, fatal static analysis, all 4,454 final-source Flutter tests and the PR/main/tag CI gates passed. - All three published APKs were downloaded and verified for production package, version, per-ABI code, single production signing certificate, SHA-256 digest and the 13 required bundled licence/font/source assets. All five release-asset digests and sizes match GitHub; APK hashes also match `SHA256SUMS`. - The downloaded source/relink bundle matches the release commit across all 882 tracked application-source blobs and all retained embedded-library materials, and records the actual hashes of all three published APKs. This is not a claim of bit-identical independent rebuilds.
  • Oct 23, 2026 2.1.33
    ## Saved memory facts and compact chat details - Open **More → Memory** to read facts about you from the connected profile's `USER.md`. Switch to **Agent notes** for `MEMORY.md`. Select text, refresh, or read long entries in full. [PR #181](https://github.com/rusty4444/hermes-android/pull/181) - Delegated-task bubbles keep a compact goal and status. Open the task timeline for the full details and model information. [PR #173](https://github.com/rusty4444/hermes-android/pull/173) - Reasoning starts collapsed on a new chat visit. Your manual choice survives updates and scrolling during the visit; the app's explicit Verbose mode remains an open default. [PR #174](https://github.com/rusty4444/hermes-android/pull/174) Memory reads require compatible authenticated Dashboard learning APIs. Unsupported APIs show an error; external providers such as MemPalace are outside this view. [Memory documentation](https://github.com/rusty4444/hermes-android/blob/v2.1.33/docs/MEMORY_FACTS.md) **Build:** `2.1.33+2176`. APK codes: `21761` (armeabi-v7a), `21762` (arm64-v8a), `21763` (x86_64). The accepted upgrade floor remains unchanged.
    More…
    Local analysis and all **1,839 Flutter tests** passed on the integrated release candidate. Release CI passed. All three published APKs passed version, ABI, production-signer and SHA-256 checks after download. No physical-device testing is claimed. Hermes Agent assisted with implementation, independent review and regression tests. Existing community credits remain in the [README](https://github.com/rusty4444/hermes-android/blob/v2.1.33/README.md#credits).
  • Oct 22, 2026 2.1.30
    ## Keyboard and composer fixes - **Return adds a new line.** The keyboard no longer replaces Enter/Return with Send. Use the on-screen Send button when your message is ready. - **Keep typing after Send.** The text box stays editable while Hermes prepares the request, uploads attachments, replies or reconnects. Delayed setup and reply callbacks do not clear a follow-up draft. - **Protect newer drafts.** A definite send failure restores the original prompt only if you have not edited the cleared composer. Newer text and deliberately cleared drafts stay untouched. - **Keep an unsent prompt when leaving during setup.** If no newer draft was entered, reopening the chat restores the prompt that never reached submission. - Rapid Send callbacks cannot submit the same captured draft twice. Existing Send, attachment and recovery safety gates remain in place. This update enables drafting during a running turn. It does not add the separate mid-turn Steer feature, which is not present in the current stable code.
    More…
    See [PR #163](https://github.com/rusty4444/hermes-android/pull/163) and the [changelog](https://github.com/rusty4444/hermes-android/blob/v2.1.30/CHANGELOG.md). ## Downloads Choose `app-arm64-v8a-release.apk` for most modern phones. ARMv7 and x86_64 builds are also included. Package: `com.hermesagent.hermes_android`. Version `2.1.30`; base code `2173`; split codes `21731` (ARMv7), `21732` (ARM64), `21733` (x86_64). Production signing preserves in-place upgrades from the previous release. ## Validation - Static analysis: no issues. Full suite: 1,488 tests passed, none skipped. - Independent specification and quality reviews passed, including controlled disposal, delayed upload and rejection races. - GitHub PR quality checks passed on the reviewed source. - All three signed release APKs passed package, version/split-code, ABI and production-signer checks. Hermes Agent assisted with implementation, independent review and regression tests. No on-device test is claimed.
  • Oct 22, 2026 2.1.29
    ## Move chats into and between Projects In **Chats**, open a conversation's three-dot menu, choose **Move to project**, then select the destination. This works for unassigned chats and conversations already filed in another Project, across All, Recent, Unassigned and Archived. - Confirm the destination before the app changes the chat's server working folder. Archived and known current Projects are excluded; destinations without a folder explain why they are unavailable. - Keep the chat's messages, title and pin state. The row shows its new Project and leaves Unassigned after the move. - Clear a Quick Chat's device-local retention schedule after Hermes accepts its move into a Project. - Reject duplicate moves and keep older list responses from restoring stale placement. Failed moves retain the old row placement and offer Retry. The existing move controls inside Project detail remain available. Stock Hermes files chats by working folder and does not support moving a chat back to Unassigned through this operation. Project management requires the Desktop Gateway connection; device-local Spaces are separate.
    More…
    This release also includes chat renaming from v2.1.28. See [PR #162](https://github.com/rusty4444/hermes-android/pull/162), the [move guide](https://github.com/rusty4444/hermes-android/blob/v2.1.29/docs/moving-chats.md), and the [changelog](https://github.com/rusty4444/hermes-android/blob/v2.1.29/CHANGELOG.md). ## Downloads Choose `app-arm64-v8a-release.apk` for most modern phones. ARMv7 and x86_64 APKs are also included. Package: `com.hermesagent.hermes_android`. Version: `2.1.29`; base code `2172`; split codes `21721` (ARMv7), `21722` (ARM64), `21723` (x86_64). The existing production signing certificate preserves in-place upgrades. ## Validation - Static analysis: no issues. Full suite: 1,468 tests passed, none skipped. - Independent specification and code-quality reviews passed. - All three release APKs passed package, version/ABI code and production-signer checks. - The real Hermes move handler passed two moves with independent read-back from a disposable SQLite database; no user chats changed. Hermes Agent assisted with implementation, review and regression tests. No on-device test is claimed.
  • Oct 21, 2026 2.1.27
    ## Hermes Android v2.1.27 - **Project chat counts stay current.** Project cards refresh after returning from a Project, reselecting the Projects tab, or resuming the app. Late responses cannot replace newer counts or cached Project placement. **Install:** Most modern phones use `app-arm64-v8a-release.apk`. Select the APK for your device architecture. These signed builds have higher version codes than v2.1.26 and should upgrade in place; the app does not install APKs automatically. **Compatibility:** Project counts come from the Hermes `projects.tree` endpoint. Older gateways without this endpoint still display the Project list without server-provided counts.
  • Oct 21, 2026 2.1.26
    ## Hermes Android v2.1.26 - **Project chats stay in their Project.** New chat from a Project binds its server folder before the first prompt or attachment. The Project list refreshes when you return from the chat. A Project without a folder now asks you to add one rather than quietly opening an unassigned chat. - **Tool activity timestamps.** Expanded cards show a time for each tool call; collapsed cards show the latest known activity. Live times are labelled as observations on the phone, stored result times come from Hermes, and unknown times are not guessed. **Install:** Most modern phones use `app-arm64-v8a-release.apk`. Choose the APK matching your architecture. These are signed with the existing Hermes Android production certificate and have higher version codes than v2.1.25, so they should upgrade in place. The app does not install APKs automatically. **Compatibility:** Stock Hermes files Project chats by their session working directory. For name-only Projects, add a folder before starting a Project chat. The experimental recovery-v2 `session.open` contract has no cwd field, so Project drafts use the cwd-capable legacy session creation path.
  • Oct 21, 2026 2.1.25
    ## Hermes Android v2.1.25 Long, tool-heavy chats now restore the conversation around the latest turn instead of appearing to contain only collapsible tool calls. Older messages can be loaded on demand, and refreshes preserve previously loaded dialogue. Home now distinguishes recent server activity from a turn confirmed running on Android, rather than calling recently active remote conversations idle. Unfinished chats are ordered by their latest activity. **Install:** Download the APK matching your device architecture. Most modern phones use `app-arm64-v8a-release.apk`. These APKs are signed with the existing Hermes Android production certificate and should upgrade v2.1.24 in place. The app does not install updates automatically. **Note:** A recent activity timestamp is not proof that a server-side turn is still running; the app reserves **Running** for a confirmed turn.
  • Oct 20, 2026 2.1.24
    ## Hermes Android v2.1.24 - **Backgrounded chats:** An in-flight Gateway reply can keep its connection alive while Android backgrounds the app. A temporary notification ends when the turn finishes, the socket drops, or the app returns to the foreground. Uncertain turns are never auto-resubmitted. [PR #152](https://github.com/rusty4444/hermes-android/pull/152) - **Home refresh:** Overlapping session scans now share pending requests without hiding a newer chat when an older scan completes. [PR #156](https://github.com/rusty4444/hermes-android/pull/156) - Added the bundled Cinzel font's OFL licence text. Thanks to [@Thaeland](https://github.com/Thaeland) for the background-turn implementation and regression coverage. Maintainer follow-up commits preserve their original commit history. **Android:** Install the signed `app-arm64-v8a-release.apk` on most modern phones. Also available: armeabi-v7a and x86_64. Version 2.1.24, base build 2167.
  • Oct 19, 2026 2.1.23
    ## Fixed - Final Gateway answers that were previewed no longer appear as duplicate chat bubbles. Matching stays within the current turn, preserving separate commentary and late reasoning. Thanks to [@krotname](https://github.com/krotname) for the implementation and widget tests in [PR #153](https://github.com/rusty4444/hermes-android/pull/153). A maintainer follow-up covered exact-match edge cases without squashing the contributor’s commits. Download the APK matching your device: **arm64-v8a** for most current phones, **armeabi-v7a** for 32-bit ARM, or **x86_64** for compatible emulators. All three are signed release builds.
  • Oct 18, 2026 2.1.22
    ## Hermes Android 2.1.22 - **Compact chat density:** choose Settings → Appearance → Chat density for tighter messages without losing screen-reader speaker labels. - **Tool activity cards stay where you leave them:** collapsing or expanding a card persists as tools arrive and the conversation updates. - **Batch clarifications stay in chat:** answering a question no longer dismisses the conversation or another prompt, including overlapping approvals. Thanks to [@igitur](https://github.com/igitur) for Compact chat density and tool-card pinning (PRs #147 and #148), and [@dadofsambonzuki](https://github.com/dadofsambonzuki) for the clarification fix (PR #145). Maintainer follow-ups covered accessibility and race-condition edge cases while preserving their commits. Full changelog: [CHANGELOG.md](https://github.com/rusty4444/hermes-android/blob/v2.1.22/CHANGELOG.md).
  • Oct 18, 2026 2.1.21
    # Optimisation Release Hermes Android v2.1.21 makes startup and conversation browsing feel faster without hiding older work. - **Home is useful sooner:** the first five sessions appear while the rest load under a visible progress bar. - **Chats is useful sooner:** open it before Home finishes and available human conversations appear progressively. The tab shares Home's scan instead of starting another one; after a complete load it reuses the result immediately. - **First frame appears sooner:** connection credentials and Android launch intents initialise after the first Flutter frame, while secure migration and recovery still complete before entering the connected app. - **Archive safety:** incomplete or shifting session pages do not discard device-local Quick Chat archive records. Thanks [@rusty4444](https://github.com/rusty4444) for testing the prerelease builds on Android and identifying the early Chats transition. Development was assisted by Hermes Agent. See [PR #146](https://github.com/rusty4444/hermes-android/pull/146) and the [changelog](https://github.com/rusty4444/hermes-android/blob/main/CHANGELOG.md) for details.
    More…
    The APKs are production-signed for in-place upgrades, including from v2.1.21-rc.3. Use `app-arm64-v8a-release.apk` for most current Android phones; the other two files target 32-bit ARM and x86_64 devices. Android build base `2164` produces split version codes `21641`, `21642` and `21643`.
  • Oct 18, 2026 2.1.20
    ## Hermes Android 2.1.20 - **Know when a new build is available.** Ordinary launches check GitHub Releases for a newer version and offer to open its release page. The app does not download or install APKs. - **Stay in control.** Choose **Later** to be reminded on the next launch, or **Skip this version** until another release ships. Settings → About includes **Check for updates** and a switch to disable launch checks. - **No interruptions.** Share and Quick Chat launches, and screens opened while a check is running, are not interrupted. Release-note images do not load third-party URLs automatically. - **Reliable results.** Cached release details are rechecked against the installed version after HTTP 304; dashboard settings outages do not hide the update controls. Thanks to [@igitur](https://github.com/igitur) (Francois Botha) for the original feature, translations and tests in [PR #143](https://github.com/rusty4444/hermes-android/pull/143). **APKs:** Choose `app-arm64-v8a-release.apk` for most modern phones; `app-armeabi-v7a-release.apk` and `app-x86_64-release.apk` are also provided. All three are signed with the established production certificate. In-place upgrades retain the same package and signer.
  • Oct 12, 2026 2.1.19
    ## What's new - Pin and unpin chats in Android to keep them above the Workspace Chats browser and classic session list. - Pins are saved per connection, survive app restarts and chat compression, and are included in app backups. They never change Hermes's server-side pinned state or another device's order. - Search, Recent, Unassigned and Archived filters still apply; older pinned chats remain accessible when the gateway supports rich session lookup. See [PR #140](https://github.com/rusty4444/hermes-android/pull/140) and the [changelog](https://github.com/rusty4444/hermes-android/blob/v2.1.19/CHANGELOG.md). ## APKs
    More…
    - `app-arm64-v8a-release.apk` — most current Android phones. - `app-armeabi-v7a-release.apk` — older 32-bit devices. - `app-x86_64-release.apk` — x86_64 emulators and devices. Version `2.1.19`; base build `2159` with ABI-specific version codes `21591`, `21592`, and `21593`. Production release signing is unchanged. No physical Android device was connected for a manual smoke test; automated analysis, 1,358 tests, and signed split-APK verification passed.
  • Oct 12, 2026 2.1.18
    ## v2.1.18 — Composer stays above the keyboard - Keeps multiline captions, multiple attachment drafts and the Send button visible while the keyboard is open. - Lets draft, model and status details scroll before fixed composer controls, including on narrow, landscape, large-text and gateway-notice layouts. - Adds regression coverage for unusually short keyboard-constrained viewports. ### Thanks Thanks to [@simplaerai-sv](https://github.com/simplaerai-sv) for the original responsive composer implementation and regression coverage in [PR #139](https://github.com/rusty4444/hermes-android/pull/139).
    More…
    ### Downloads - `app-arm64-v8a-release.apk` — recommended for most modern Android devices - `app-armeabi-v7a-release.apk` — for older 32-bit ARM devices - `app-x86_64-release.apk` — for x86_64 devices and emulators
  • Oct 10, 2026 2.1.17
    ## Model selection on API-only connections - Open the model picker while connected directly to the Hermes API server on port `8642`; the Desktop Dashboard on port `9119` is no longer required. - The selected provider and model now apply to subsequent turns in the same chat, including when different providers expose the same model ID. - New chats keep normal automatic titles when a model is selected before the first message. Thanks to [@HorCyChangGenitek](https://github.com/HorCyChangGenitek) for the detailed reproduction in [#129](https://github.com/rusty4444/hermes-android/issues/129). [Full changelog](https://github.com/rusty4444/hermes-android/compare/v2.1.16...v2.1.17)
  • Oct 7, 2026 2.1.14
    ## What’s new - Bottom navigation labels now stay on one line on narrow phones at every supported text size and across every shipped locale. - Russian navigation uses concise bar labels while preserving the full pane titles. - Regression coverage now checks every exact supported locale, including Brazilian Portuguese and Simplified Chinese variants. ## Thanks Thanks to @maebahesioru for the implementation and test coverage in [PR #126](https://github.com/rusty4444/hermes-android/pull/126).
    More…
    **Full changelog:** [v2.1.13...v2.1.14](https://github.com/rusty4444/hermes-android/compare/v2.1.13...v2.1.14)
  • Oct 4, 2026 2.1.13
    ## v2.1.13 — Selectable message text - Long-press any chat message to select and copy exactly the text you need. - Improved selection-dialog readability in light and dark themes. - Added complete localisation for the new action across all nine shipped languages. Thanks to [@maebahesioru](https://github.com/maebahesioru) for the implementation, localisation, dark-theme handling, and regression coverage in [PR #127](https://github.com/rusty4444/hermes-android/pull/127).
  • Oct 3, 2026 2.1.11
    ## What's new - Use Hermes Android in Japanese, Simplified Chinese, Korean, Spanish, French, German, Brazilian Portuguese, or Russian. - Unsupported device languages reliably fall back to English. - Russian counts use the correct plural forms, while Chinese and Portuguese region variants select compatible catalogues. Thanks to [@maebahesioru](https://github.com/maebahesioru) for the implementation, regression coverage, and on-device Japanese QA. ## Downloads
    More…
    Most modern Android phones use **app-arm64-v8a-release.apk**. The release also includes armeabi-v7a and x86_64 builds.
  • Oct 2, 2026 2.1.10
    ## Hermes Android v2.1.10 This patch keeps chat submissions attached to the session you selected. ### Fixed - Sending from an existing server-side chat now continues that exact session instead of opening a new sibling session. - New local chats use one creation path, avoiding duplicate `session.create` and recovery-v2 `session.open` calls. - Explicit legacy fallback still establishes or resumes a session safely.
    More…
    ### Download For most modern Android phones, download **`app-arm64-v8a-release.apk`**. **Full changelog:** [v2.1.9...v2.1.10](https://github.com/rusty4444/hermes-android/compare/v2.1.9...v2.1.10)
  • Oct 2, 2026 2.1.9
    ## Hermes Android v2.1.9 - Gateway clarification, approval, sudo, and secret requests now reach the phone during active turns and recover safely after reconnects. - Large chats open quickly with a bounded recent transcript while preserving authoritative history across failed, concurrent, completed, and stopped turns. - Session running status now follows the Gateway's explicit activity state. ### Thanks - [@maebahesioru](https://github.com/maebahesioru) for the session-liveness fix and focused regression coverage in [PR #121](https://github.com/rusty4444/hermes-android/pull/121).
    More…
    For modern Android phones, download **app-arm64-v8a-release.apk**. [Full changelog](https://github.com/rusty4444/hermes-android/compare/v2.1.8...v2.1.9)
  • Sep 29, 2026 2.1.8
    ## Hermes Android v2.1.8 ### Fixed - Leaving a chat during a running turn no longer closes its SSE connection and interrupts the work server-side. The detached client is released when the stream settles or reaches its safety timeout. - Custom HTTPS ports are now honoured exactly as entered, including `8642`. Scheme defaults are inferred only when the Port field is blank. ### Verification Release CI passed static analysis, the full test suite, signed APK builds, version-code validation, and signing-certificate verification. ARM64, ARMv7, and x86_64 APKs are attached below.
    More…
    ### Thanks Thanks to [@igitur](https://github.com/igitur) for diagnosing, implementing, and thoroughly testing both fixes in [PR #111](https://github.com/rusty4444/hermes-android/pull/111) and [PR #113](https://github.com/rusty4444/hermes-android/pull/113). [Full changelog](https://github.com/rusty4444/hermes-android/compare/v2.1.7...v2.1.8)
  • Sep 27, 2026 2.1.7
    ## Hermes Android v2.1.7 This release brings the Android daily-driver workspace into line with stock Hermes gateways through the extensive compatibility work contributed by [@Thaeland](https://github.com/Thaeland) in [PR #106](https://github.com/rusty4444/hermes-android/pull/106). ### Highlights - **Reliable detached replies:** interrupted connections resume the stored session and keep retrying across long turns, reconnects, app backgrounding, temporary fetch failures, and capped history rollover. - **Stock Projects support:** safely provisioned Project folders, stock `session.workspace.move`, correct project ownership, archived chats, migration, and search behaviour. - **Correct session pagination:** repeated pinned backfills no longer skip or duplicate pages, and mutable OFFSET scans no longer delete assignments they cannot prove are stale. - **Safer transport and offline state:** single-flight socket/session setup, bounded HTTP calls, stale runtime reattachment, and confirmed-only Project cache persistence.
    More…
    - **Additional Android resilience:** complete profile-scoped archive reads, machine-session filtering, clearer reconnect behaviour, and Android 11+ speech-recognition service discovery. See [CHANGELOG.md](https://github.com/rusty4444/hermes-android/blob/v2.1.7/CHANGELOG.md) for the detailed list. ### Downloads - `app-arm64-v8a-release.apk` — recommended for most modern Android phones and tablets. - `app-armeabi-v7a-release.apk` — for older 32-bit ARM devices. - `app-x86_64-release.apk` — for x86_64 emulators and devices. All APKs are signed with the established Hermes Android production certificate. Existing v2.1.x installations can upgrade in place. ### Verification - `flutter analyze --no-pub --fatal-infos`: passed - Flutter test suite: 1,049/1,049 passed - Signed split APK build: passed - Effective version codes: `21471` (armeabi-v7a), `21472` (arm64-v8a), `21473` (x86_64) - Signer SHA-256: `475baf431b16d050c8f658ac838783b273f7c10bba06ed1d16bb0a4239f592fb`
  • Sep 26, 2026 2.1.6
    ## What’s new - Connect to private Caddy and Tailscale gateway endpoints using certificate authorities explicitly installed in Android’s user trust store. - System certificate validation and existing LAN HTTP support remain unchanged. ## Download Choose the APK for your device: - `app-arm64-v8a-release.apk` — most modern Android phones and tablets
    More…
    - `app-armeabi-v7a-release.apk` — older 32-bit ARM devices - `app-x86_64-release.apk` — x86_64 devices and emulators Thanks to @spsDrop for reporting the private-CA connection failure in #108. [Full changelog](https://github.com/rusty4444/hermes-android/compare/v2.1.5...v2.1.6)
  • Sep 24, 2026 2.1.5
    ## Changed - Removed embedded Android dependency metadata to meet F-Droid build requirements. This release contains no runtime behaviour changes.
  • Sep 22, 2026 2.1.4
    ## v2.1.4 — Tablet message wrapping - Long user and Hermes messages now wrap inside the tablet chat column instead of being clipped on wide screens. - User messages remain right-aligned; Hermes messages remain left-aligned. - Added regression coverage for the reported 1704 × 1136 tablet layout. ### Thanks - @kon1z for the detailed reproduction, measurements, and root-cause analysis in #104.
    More…
    [Full changelog](https://github.com/rusty4444/hermes-android/compare/v2.1.3...v2.1.4)
  • Sep 16, 2026 2.1.3
    ## What's new in v2.1.3 - **Hermes profile on the Desktop Gateway** — connections can now name the Hermes profile a chat should run under (for machine-level `hermes dashboard` / `hermes serve` setups), so chats stop silently landing in the server's default profile. Leave it blank for isolated per-profile dashboards. - **Chat models without a Desktop Gateway** — the model picker lists and applies chat models even when no Desktop Gateway is configured. - **Gateway URL field fixes** — the desktop gateway URL no longer hard-codes a default, and optional connection fields (username, password, port, profile) can now be cleared. - **Release hardening** — the release pipeline now pins the production APK signing certificate, so a wrong keystore aborts the release instead of shipping an uninstallable APK. Thanks to @AletheiaVox, @software-greg, and @realchrisolin for the community fixes in this release! ### Install
    More…
    Pick the APK for your device: - `app-arm64-v8a-release.apk` — most modern phones - `app-armeabi-v7a-release.apk` — older 32-bit ARM devices - `app-x86_64-release.apk` — emulators / x86_64 tablets