# Hermes Android 3.0.1 Version **3.0.1+3004** adds in-app video playback and offline DOCX, XLSX and PPTX text previews to the shared chat/Assets viewer. Image, PDF and plain-text previews remain available. This page covers changes since **3.0.0**; see the [3.0.0 release notes](3.0.0.md) for the earlier themes, navigation, chat, certificate and notification changes. [Download 3.0.1](https://github.com/rusty4444/hermes-android/releases/tag/v3.0.1) · [Changes since 3.0.0](https://github.com/rusty4444/hermes-android/compare/v3.0.0...v3.0.1) · [Changelog](../../CHANGELOG.md) ## Upgrading Export an encrypted configuration backup before updating. Keep the backup password safe: a backup can include connection credentials and imported client private keys. The production package remains `com.hermesagent.hermes_android`, with the existing production signing identity. Choose the matching production-signed APK to upgrade 3.0.0, 2.1.33 or any 3.0 release candidate in place. | APK | Device | Version code | | --- | --- | --- | | `app-arm64-v8a-release.apk` | Most current Android phones/tablets | `30042` | | `app-armeabi-v7a-release.apk` | Older 32-bit ARM devices | `30041` | | `app-x86_64-release.apk` | x86_64 Android devices/emulators | `30043` | The base build is `3004`. Each new split code exceeds the highest 3.0.0 code, `30033`. Returning to an older APK can require uninstalling and restoring a backup. Debug builds use the separate `com.hermesagent.hermes_android.dev` package and Android debug signer; they cannot replace the production app in place. ## Video playback Tap a video file card or inline file-delivery link in chat, or open a video from **More → Assets**. The shared popup offers: - **Play / Pause**, with replay after the video finishes. - A seek slider and position/duration display. - **Mute / Unmute**. - The existing **Download** and **Share** actions for the original file. Videos start paused. Backgrounding the app or opening another route above the preview pauses playback. Returning to the app or uncovering the preview does not resume playback; tap Play to continue. The app downloads bytes after an explicit tap and gives the player an owned, app-private temporary copy. It does not give the player a gateway URL, Dashboard cookies, bearer token or client certificate. Closing or replacing a preview releases its player and removes its own copy. If native disposal fails, the app retains that private copy for OS cache cleanup rather than deleting a file that the native reader might still use. The viewer routes MP4/M4V, MOV, WebM, MKV, AVI and 3GP containers to Android's native video stack. Container recognition does not guarantee codec support on a particular device. Unsupported or corrupt video shows an error and keeps Download/Share available so you can try a compatible external app. ## Office text previews The viewer extracts selectable text from the downloaded original, offline on the phone: | Format | Preview content | | --- | --- | | DOCX | Paragraphs and table-cell text | | XLSX | Sheet names, cell coordinates and raw stored/cached cell values | | PPTX | Slide text in presentation order | These are **text previews only**. The viewer does not render the original page/slide layout, formatting, images or charts. It does not evaluate formulas or apply Excel number/date formatting; a spreadsheet preview can show a cached value only when the file contains one. The app does not execute macros, follow external document relationships or fetch external resources. The parser bounds ZIP entries, inflated XML, parsing work and displayed text, and runs away from the UI isolate. Long previews can show a truncation notice. An empty, corrupt, encrypted or otherwise unsupported document can show an empty/error explanation; Download and Share still offer the original bytes within the transfer limit. Legacy binary Office files (`.doc`, `.xls`, `.ppt`), OpenDocument formats and other unsupported binaries keep the no-inline-preview fallback. Save or share them to an application that supports their format. This release does not add an Office editor or a full-fidelity document renderer. ## Shared cards, links and Assets Chat file cards, inline filesystem delivery links and **More → Assets** use the same preview popup. Download and Share reuse the cached original bytes; neither action exports the extracted text in place of the original document. Native Download opens Android's destination picker, while Share opens its share sheet. Cancelling a save does not report success, and failures remain retryable. Zoomable images, native Android PDF pages and selectable inert text retain their existing previews. Preview errors do not remove Download/Share. Files do not download merely because the app renders a card or discovers a reference in Assets. ## Compatibility and delivery limits - The existing **25 MiB per-file streaming download limit** applies to video and Office files, including responses without a Content-Length. Preview display/parser limits can be lower. Retrieve larger files through the authenticated Dashboard. - These previews use existing authenticated gateway/history/file routes. They require no backend patch, new server setting or Android companion. The saved Dashboard origin, profile and access restrictions still govern file reads. - Offline text extraction starts after the file has downloaded. The app does not promise a persistent offline file library or transcript archive; referenced host files may expire or disappear. - Assets remains partial discovery of shared references from chat history, not a full filesystem or upload catalogue. Use its scan controls for more chats or older messages. See [Browsing chat assets](../chat-assets.md). - Background push is unchanged. It still needs the separately installed, enabled and operator-authorised [mobile-push server companion](../mobile-push-server.md) and a supported phone transport. Updating the APK alone does not install host software. Native video pause/resume is separate from notification delivery. - Existing chat/recovery, TLS, backup and notification limits remain in the [3.0.0 notes](3.0.0.md#compatibility-and-delivery-limits). Some newer labels use English fallback in non-English locales. ## Validation and credits Before publication, the release owner must validate the final merged source, build the production-signed splits, verify package/version/ABI codes and signer continuity, and verify the downloaded published assets. The GitHub release body records those final results. Metadata checks, parser fixtures and a debug build do not establish release-signed APK verification or physical-phone acceptance. Device-specific codecs and native playback lifecycle still need phone testing; no universal codec or background-delivery guarantee follows from automated checks. Hermes Agent assisted with implementation, review, documentation and regression tests. Existing contributor credits and AI disclosure remain in the [README](../../README.md#credits), [NOTICE](../../NOTICE.md) and historical changelog.