* Refresh the passwordless sudo indicator on change instead of polling
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Refresh the sudo indicator after failed changes and on a wall-clock deadline
Addresses Codex review: a rolled-back renewal skipped the refresh, the monotonic user timer paused through suspend, and default timer accuracy allowed a minute's delay.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Test the sudo indicator refreshes by running the grant flows
Replace source-string checks with runs of timed, renewed, failed, permanent and disable flows against the fixture, asserting the recorded omarchy-shell refresh and wall-clock systemd-run --user timer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add selectable dictation backends
* Move dictation migration after repository priority update
* Extract backend-specific dictation installers
* Keep dictation installer dispatcher executable
* Call dictation backend installers directly
* Drop legacy Superwhisper migration and runtime cleanup
* Separate dictation defaults from generic recording protocol
* Add backend-specific dictation removers
* Preserve existing Voxtype selection during upgrade
* Make dictation backend selection safe and retryable
* Show the dictation indicator only for selected Voxtype
* Allow switching away from stopped Superwhisper
* Remove the built-in bar dictation indicator
* Store default dictation selection under defaults
* Rename dictation backend selector to use
* Move dictation removers into their own menu category
* Let users choose passwordless sudo duration
* Warn in the menu bar when passwordless sudo is active
* Fix sudo indicator hover behavior and repeated authentication
* Disable passwordless sudo from the bar without a terminal
* Shorten passwordless sudo indicator tooltip
* Recover interrupted passwordless sudo duration switches
* Allow sudo grant changes when listings require authentication
* Start passwordless sudo setup with the duration question