Release
Stable release of Harness Remote 3.5.0: the Android APK below, plus unsigned Windows, macOS and Linux desktop builds attached by the desktop workflow.
Harness Remote 3.5.0 keeps the whole machine responsive when one harness fails, and keeps Session activity accurate wherever work starts.
A missing or immediately exiting ACP adapter now reports its error without restarting the daemon. Turns started in a terminal or desktop client appear busy in Harness Remote, and background completions update the Session list promptly.
Highlights
| Improvement | What you see | |
|---|---|---|
| 🛡️ | One failing adapter no longer takes the machine offline | An unavailable CLI fails its own request while other harnesses remain reachable. |
| 🔴 | Live activity across clients | Codex and Claude Code Sessions started outside Harness Remote show as busy while they work. |
| ⚡ | Faster, clearer startup | An unreachable saved machine no longer holds up the machines and Sessions that are available. |
| 🌍 | Brazilian Portuguese | The app is now fully available in pt-BR. |
Reliability when a harness fails
- Adapter startup: An ACP adapter that exits before the handshake, including a configured Copilot CLI that is no longer installed, can produce an
EPIPEon stdin. The bridge now handles that stream error and reports the adapter failure without crashing the daemon or disconnecting the machine. The Copilot model catalog has the same protection. #602 - Machine startup: A saved machine that cannot be reached no longer keeps the app on “Connecting to your machines…” until its timeout. Available machines settle and their Sessions start loading independently. #541
- Gateway credentials: Coding agents and their tool commands no longer inherit Harness Remote's gateway username or password. Managed OpenCode receives its own random server password at each daemon start. #545
Sessions that reflect the work in progress
- Work started elsewhere: Codex and Claude Code Sessions launched from a terminal or desktop client now show a live busy state in Harness Remote while their turns run. #591
- Background completion: The Session list updates when OMP, PI and Claude Code turns finish, without waiting for the next 30-second poll or reopening the Session. #598
- Cleaner Codex history: Messages created in the Codex desktop app show the user's request without its surrounding UI context markup. This applies to both saved history and live replay. #597
- Claude Code effort: The model picker exposes the reasoning-effort levels advertised by the installed Claude adapter, including Default and the levels supported by the selected model. #592
A more comfortable app
- Português do Brasil: Complete pt-BR translations, with common Portuguese browser locale variants mapped to the new language. #593
- Narrow windows: Machine cards, the machine editor and the Session header place names, connection status, project folders and actions where they remain readable on small screens. The composer now explains when it is waiting for models and becomes available when discovery completes. #601
- Command palette: The palette opens visibly from Machines and Settings. On touch screens it opens without covering results with the keyboard, and its text is translated. #596
Thanks to the contributors
Thank you to everyone whose work made this release possible:
- Vitor Camillo (@vitorcamillo) — live Codex and Claude activity, Claude effort controls, Brazilian Portuguese, command palette improvements, and the adapter crash fix.
- Martin Monperrus (@monperrus) — startup that continues when a saved machine is unreachable.
- @dnhrdt — keeping gateway credentials out of coding-agent environments.
- Baylar Sadigov (@Baylar55) — removing retired styles, documentation, and launchers.
- @giuliastro — cleaner Codex history, prompt Session-rail updates, narrow-window UI improvements, and Windows test reliability.
Verification
The PR checks passed on the release changes, including bridge, desktop and Chromium checks. For the adapter failure in #602, the automated EPIPE regression passed; an isolated Electron build and daemon returned the expected adapter error repeatedly while the machine remained available. The failing-adapter flow was also confirmed manually in the app.
Notes
- Built from
4463fcfa02d35c77177b762f04ba6841fc168107 - Version code
30500
Full changelog: v3.4.0...v3.5.0