## 2026.6.20 ### Highlights - Added an App update view that distinguishes the Python engine from the desktop shell, reports install kind, shows stale shell state, and exposes the correct update action for source and packaged installs. - Added a daemon single-instance guard so a second tray/headless listener exits before it can bind the same shortcut and duplicate typed output. - Made the packaged Linux `.deb` the intended daily-driver path and cleaned up source-install launcher precedence so local development installs do not silently shadow packaged Dictate. - Switched the packaged Linux shell to native OS window decorations by default for real window-manager shadows, edges, and hit testing. - Fixed duplicate paste/dictation caused by multiple Dictate listener processes running from mixed source and packaged installs. - Fixed the Linux shell startup race that could spawn more than one bundled engine before the first process wrote its UI handshake. ### Changes - Added an App update view that distinguishes the Python engine from the desktop shell, reports install kind, shows stale shell state, and exposes the correct update action for source and packaged installs. - Added a dedicated Record conversation entry point separate from quick push-to-talk dictation. - Added a daemon single-instance guard so a second tray/headless listener exits before it can bind the same shortcut and duplicate typed output. - Made the packaged Linux `.deb` the intended daily-driver path and cleaned up source-install launcher precedence so local development installs do not silently shadow packaged Dictate. - Switched the packaged Linux shell to native OS window decorations by default for real window-manager shadows, edges, and hit testing. - Kept the prior frameless custom chrome available for comparison with `DICTATE_CUSTOM_CHROME=1 /usr/bin/dictate-ui-shell`. ### Fixes - Fixed duplicate paste/dictation caused by multiple Dictate listener processes running from mixed source and packaged installs. - Fixed the Linux shell startup race that could spawn more than one bundled engine before the first process wrote its UI handshake. - Removed the transparent fake-edge gutter around the shell window. ### Complete contribution record This audited record covers the complete 54f28eae5c0bde2c5f7e8059a5e3ec5d0576e329..5286a55f72c86eb0ddf7fc287601a68d0a4851b9 history: 0 in-range PRs + 0 retained seed-only PRs = 0 unique PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact. #### Pull requests