Release
Stable release of Harness Remote 3.6.0: the Android APK below, plus unsigned Windows, macOS and Linux desktop builds attached by the desktop workflow.
Harness Remote 3.6.0 makes Mahurley the official skin and substantially redesigns the mobile experience.
On phone-sized screens, Sessions, conversations, machines and settings now use a layout built for touch and one-handed reading. The bridge is harder to crash,--rootis enforced on every path that starts work, and long Codex, Claude Code and OpenCode 2 Sessions stay in sync.
Thank you, contributors
This release exists thanks to the people who sent code to Harness Remote:
- @vitorcamillo designed and built the skin registry and the Mahurley skin, which becomes the official mobile experience in this release. #594
- @Baylar55 hardened the bridge against malformed adapter traffic and closed two
--rootescapes. #604, #606
Highlights
| Improvement | What you see | |
|---|---|---|
| 📱 | Mahurley is the official skin | A redesigned mobile UX for Sessions, conversations, machines and settings. |
| 🛡️ | A sturdier bridge | Malformed adapter messages and bad requests fail alone instead of stopping the daemon. |
| 🔒 | --root enforced everywhere
| Other drives, UNC shares and Session handoff can no longer start work outside the configured roots. |
| 🔔 | Update notifications | The desktop app tells you when a new release is available. |
Mahurley, the official mobile skin
Mahurley is now the default skin on screens up to 780 px wide. It substantially changes the mobile UX; on wider windows the app keeps the Classic layout. If you already picked a skin in Settings → Visual, your choice is kept, and Classic remains available there. #594, #614
- Home: a one-row top bar with search and New Session, status tabs (All / Live / Attention), agent logos that filter the list, a per-machine Recent group, and Projects collapsed until you open them.
- New Session: a modal where you pick the coding agent with the same logos; Projects are ordered by recent use.
- Conversation: a one-row header, with model, effort and harness grouped in a card next to the attachment button, an effort slider and touch-friendly model search. Errors stay visible until you dismiss them.
- Machines and Settings: grouped rows. Machine cards show the name and address on separate lines, keep their actions clear of other content, and give the harness list room to breathe.
- Session lists: “Show more” and “Show less” sit inside the Session group with proper spacing.
- Settings: consistent spacing between every panel, and a centered skin gallery that credits each skin's author.
A bridge that keeps running
- Malformed adapter traffic: non-object JSON lines, incomplete plan updates and malformed permission requests are reported as protocol errors for that message only. Later messages are still processed, and request handlers that throw no longer take the daemon down. #604
--rootboundary: a path on another Windows drive or UNC share is no longer accepted as inside a root, and native Session handoff now applies the same check as a new Session. The documentation now describes exactly what--rootcovers. #606
Sessions that stay in sync
- Codex across devices: turns continued in the Codex desktop app now appear in a conversation already open on mobile, and live refresh follows long turns that span several pages. #613
- Idle Claude Code Sessions: Sessions idle for 30 minutes are unloaded from memory only when Claude Code itself reports them idle, and reload transparently on the next prompt or read. #610
- OpenCode 2 history: pages follow user turns and show at least 20 complete exchanges. A structured tool error no longer crashes the Activity view, and large history exports load reliably. #611, #612
- Session list paging: “Load older Sessions” appears only when a matching older page exists. #613
Desktop
- Update notifications: the packaged app checks the latest official release at startup, shows a notification when a newer version exists, and offers a manual recheck in Settings. Installation stays manual. #605
- Links and icons: Markdown links open in the system browser (HTTP(S) and mailto only), and Linux packages use a correctly sized app icon. #613
- Model picker: the cross-machine model catalog scrolls again. #607
Verification
The PR checks passed on the release changes, including bridge, desktop and Chromium checks. The Chromium mobile smoke now verifies Mahurley as the default skin. The Mahurley machine card, Session list and Settings fixes were confirmed manually in the desktop app at phone width.
Notes
- Built from
2171eb79fcf4e2916723f7f68ddcf11bff0158cf - Version code
30600
Full changelog: v3.5.0...v3.6.0