# 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. ## 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](../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](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](../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.