Prevent Wayland dictation text loss#437
Merged
Merged
Conversation
Wayland cannot prove synthetic typing or paste delivery, so Linux Wayland now bypasses streaming success semantics and keeps completed dictation text in the clipboard with explicit fallback status. The Phase 1 plan is recorded at repo root to keep follow-up work aligned with the current CLI trigger decision. Constraint: Wayland security model does not provide X11-style global key or cross-app text injection guarantees. Rejected: Treating enigo or simulated paste success as inserted on Wayland | It can report success while the target app receives no text. Confidence: high Scope-risk: narrow Directive: Keep Wayland automatic input as an explicitly probed future enhancement; do not silently restore fake insertion success. Tested: cargo fmt --manifest-path openless-all/app/src-tauri/Cargo.toml; cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib coordinator::dictation; cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib focus_restore_failure_uses_specific_error_code; git diff --check; cargo check --manifest-path openless-all/app/src-tauri/Cargo.toml Not-tested: Real Wayland compositor clipboard behavior and Windows TSF runtime behavior on native hosts.
Wayland now uses CLI-triggered dictation and copy-only output safety, so user-visible Linux hints should not imply that Wayland streaming insertion or global hotkeys are still attempted inside OpenLess. Constraint: Wayland trigger support is currently delivered through desktop shortcuts invoking openless CLI flags. Rejected: Leaving old best-effort Wayland wording in Settings | It conflicts with Phase 1 copy-only behavior and the CLI trigger path. Confidence: high Scope-risk: narrow Directive: Keep future portal/libei language in research docs, not current-product Settings hints. Tested: npm run build; cargo check --manifest-path openless-all/app/src-tauri/Cargo.toml; git diff --check Not-tested: Live Wayland Settings rendering on GNOME/KDE/Hyprland/sway.
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Summary
Refs #420
Validation
cargo fmt --manifest-path openless-all/app/src-tauri/Cargo.tomlcargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib coordinator::dictationcargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib focus_restore_failure_uses_specific_error_codegit diff --checkcargo check --manifest-path openless-all/app/src-tauri/Cargo.tomlnpm run buildNotes
PR Type
Bug fix, Documentation
Description
Disable Wayland streaming insertion
Fall back to clipboard-only output
Update Linux hotkey guidance text
Add Wayland behavior tests and docs
Diagram Walkthrough
File Walkthrough
2 files
Pass Wayland state into dictation errorsForce clipboard fallback on Wayland8 files
Refresh Linux hotkey support hintClarify Wayland streaming insert behaviorClarify Wayland streaming insert behaviorClarify Wayland streaming insert behaviorClarify Wayland streaming insert behaviorClarify Wayland streaming insert behaviorUpdate Wayland streaming input guidanceAdd Wayland support phase plan