OMI Desktop v0.12.76
What's New
- Add the per-conversation action-items count endpoint to the generated Omi API client.
- Fixed the app detail button labeled 'Open' removing an installed non-integration app instead of opening it
- Fixed chat hiding a long message that happened to share its opening with an earlier one
- Added a Select button on Conversations so you can pick multiple conversations and merge them
- Fixed a dashboard recommendation occasionally reporting itself unavailable while it was still loading
- Fixed persona creation failures showing no error and leaving the Persona page stuck on an error screen
- Fixed Later and Dismiss on suggested tasks being disabled when the task title was cleared
- Added semantic feature sentinels proving Swift compiler flags are active, plus an advisory strict-concurrency diagnostic ledger for the executable target
- Recorded Periphery pilot verdict: deferred due to binary incompatibility on the pinned toolchain environment
- Added a pinned swift-format bootstrap wrapper and platform-aware manifest checks so macOS-only static checks run on macOS CI
- Pinned the Xcode toolchain and committed the SwiftPM dependency lockfile so desktop builds are reproducible
- Replaced per-bug-class asyncAfter and UserDefaults ratchet scripts with equivalent SwiftLint custom rules backed by the down-only baseline guard
- Right-aligned the remaining Settings dropdowns (voice, voice model, AI provider, system audio, focus cooldown), made the daily summary time picker glide with a native stepper, and slimmed the voice speed value label
- Made OmiSupport and its direct tests strict — complete strict concurrency and warnings-as-errors with zero diagnostics
- Made OmiTheme strict — fixed FontScaleSettings singleton and OmiTextEditor Coordinator with @mainactor isolation
- Made OmiWAL and its direct model tests strict — complete strict concurrency and warnings-as-errors with zero diagnostics
- Added a pinned swift-format configuration (2-space indent, 120-column) with generated-source exclusion and formatter scope management
- Enforced pinned swift-format in pre-commit and macOS CI — staged Swift files auto-format on commit, CI rejects formatting drift
- Added a down-only SwiftLint baseline ratchet that rejects new violations and enforces reasoned swiftlint:disable suppressions
- Added SwiftLint safety rules (force unwrap, force try, force cast, IUO, weak delegate) via a pinned build-tool plugin with a committed violation baseline
- Improved desktop CI build checks.
- Fixed chat responses losing their model/token/cost footer stats and dropping discovery cards and refreshed file states once a turn finished
- Improved macOS developer feedback loops with faster targeted test reruns and app relaunches
- Fixed macOS preferring a machine-wide OpenClaw install over the version managed in your home directory
- Improved desktop chat and voice reliability by splitting oversized internals into smaller owned components.
- Kept push-to-talk on one voice when starting a background agent
- Kept background agents on Omi unless you choose another provider
- Hardened push-to-talk and realtime voice reliability by enforcing one compiler-checked voice-turn lifecycle domain.
- Improved desktop compatibility with conversation action-item progress updates
- Restored desktop builds after a third-party audio dependency removed its release tags
Downloads
- DMG Installer: For fresh installs, download the DMG below
- Auto-Update: Existing users will receive this update automatically via Sparkle