v1.3.2
A maintenance release — faster, steadier workspace switching and a batch of
stability fixes, on top of a large internal hardening pass.
Improvements
- Snappier workspace switching. Activations now read window identities from a cache instead of querying every window over Accessibility on the hot path, and a switch that arrives mid-activation supersedes the one still in flight — so rapid next/previous presses advance past a slow-to-settle workspace instead of stalling on it.
- A busy app no longer disappears. When an app is too loaded to answer an Accessibility query in time, Tatami keeps its last-known windows instead of reading the timeout as "no windows" — so a momentarily-busy app no longer drops out of its tile, floating mirror, or marker dot. A single hung app can also no longer freeze the main thread for several seconds during a tiling pass.
Fixes
- Floating mirrors could keep recording after they should have stopped — several races left ScreenCaptureKit streams (and the screen-recording indicator) running longer than intended; capture now starts and stops in a strict order.
- Freshly-launched Electron windows sometimes missed their resize/close events when the first attempt to observe them failed; those subscriptions now retry like the rest, so a phantom tile no longer lingers.
- A corrupt
config.tomlno longer wipes your setup — a broken top-level section (profiles, shared apps, settings) now keeps your previous config instead of resetting it (which the next write would have made permanent, taking your workspaces with it), and an unparsable settings field is surfaced instead of silently ignored. - "Relaunch" no longer turns into a plain quit when the relauncher fails to start — Tatami stays running and logs the failure.
Install / Update
- Homebrew:
brew upgrade --cask tatami - Direct: Tatami-1.3.2.dmg
- In-app: Sparkle will pick this up on its next check.