Skip to content

Mdviewer

v1.4.0 Feature

This release adds 1 notable feature for engineering teams evaluating rollout.

Published 1mo Editors & IDEs
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Fixed macOS double-click hangs and multiple‑file launch issues that showed only the first window.

Full changelog

Highlights — macOS double-click reliability

This release fixes the hang that occurred when opening a second markdown file from Finder, and the issue where launching with multiple files only showed the first window.

Fixes

  • Double-click second file no longer hangs the app. Tauri 2 holds the plugin-store mutex for the duration of RunEvent::Opened plugin dispatch, and WebviewWindowBuilder::build() re-acquires the same mutex via window_created — self-deadlock. The handler now hops to a tokio worker via tauri::async_runtime::spawn before calling run_on_main_thread, so window creation runs in a later event-loop iteration after the lock is released.
  • Multiple-file launches now show every window. Windows created back-to-back during startup landed at identical coordinates because AppKit's auto-cascade did not engage — the second window was hidden behind the first. New cascade_position(window_index) helper assigns a distinct (x, y) to each window with monotonic offsets.
  • Replaced homemade single-instance scheme with tauri-plugin-single-instance. The previous polling thread called WebviewWindowBuilder::build() from a non-main thread, which is unsound on macOS (AppKit/WebKit init must run on the main thread). The plugin handles single-instance correctly cross-platform; on macOS its callback runs on a tokio task, so dispatching back to the main thread via run_on_main_thread works as expected.

Documented for future maintainers

See docs/plans/2026-05-01-macos-file-open-deadlock-fix.md for the architectural map, the reasoning, the regression-test recipe, and a list of "don'ts" — including: do not install the bundle to /Applications/ by dragging from the DMG. Use bin/install.sh.

Tests

38 unit tests pass, clippy is clean with -D warnings. Three new tests pin cascade_position behavior.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Mdviewer

Get notified when new releases ship.

Sign up free

About Mdviewer

All releases →

Beta — feedback welcome: [email protected]