- Shift+arrows and the other shifted toolbar keys work. The keyboard toolbar's Shift only reached Tab: the arrows, Home/End, PgUp/PgDn and the rest went out with their modifier bits zeroed, so Shift+Left sent a plain left arrow and apps like Codex ran their own shortcut instead (#665). Every key the toolbar dispatches now carries Shift, which stays on until you tap it off again, the way the letter keys behave.
- Mosh rebinds no longer throw "recvfrom failed: EBADF" (#421). The rebind's old socket is retired instead of being closed under an in-flight receive; it closes at the next receive instruction, when the receive side is provably out of it.
- Agent terminal shells survive tab teardown (#555). A teardown that left the process alive now re-adopts the shell cleanly instead of failing with "No registered terminal tab" while the PTY, input path and scrollback were all still there.
- Tool schemas are accepted by strict OpenAI-compatible providers (#664). Three array parameters declared no element type, and providers that reject the whole toolset on that (Groq) made every Haven tool unusable; they now declare their items.
- Text selection holds up under finger wobble and stays inside the viewport. Upstream's wobble and edge-handling selection fixes are in, and the selection pill row clamps by its full width and vertically within the screen (#661).
Which APK?
haven-<version>-<abi>-release.apk — the full app, and what F-Droid
carries. If in doubt, take this one.
haven-<version>-<abi>-terminal-release.apk — the same app with the
desktop and media parts left out, for people who only use Haven for SSH,
terminals, files and storage. Less than half the size on arm64. It drops
RDP and SPICE remote desktop, the native Wayland desktop, and ffmpeg — so
no media conversion, and no video previews or streaming in the file
browser. VNC is kept, so a Linux desktop running inside Haven's guest
still works.
Both are signed with the same key and carry the same version number, so
you can install either over the other without losing connections, keys or
your Linux guest. The shared version number does mean an updater will not
offer to move you between them — switching is a deliberate download.
<abi> is your device's CPU: arm64 for essentially every modern phone,
armv7 for older 32-bit devices, x64 for emulators.
Full Changelog: v5.89.14...v5.89.15