Skip to content

Fix Windows hotkey conflicts, startup cancellation, and beta updater race#490

Closed
Cooper-X-Oak wants to merge 5 commits into
Open-Less:betafrom
Cooper-X-Oak:fix/windows-handoff-core
Closed

Fix Windows hotkey conflicts, startup cancellation, and beta updater race#490
Cooper-X-Oak wants to merge 5 commits into
Open-Less:betafrom
Cooper-X-Oak:fix/windows-handoff-core

Conversation

@Cooper-X-Oak
Copy link
Copy Markdown
Contributor

@Cooper-X-Oak Cooper-X-Oak commented May 18, 2026

User description

Summary

This PR fixes the first Windows handoff batch on beta:

  • Allows action shortcuts such as Open App and Switch Style to be disabled.
  • Embeds a Common Controls v6 manifest so Windows Rust unit test binaries start correctly.
  • Makes repeated stop/toggle during Starting cancel predictably while preserving the first short-dictation stop.
  • Adds a Beta updater manifest readiness probe to avoid surfacing errors while a GitHub release is still publishing platform assets.

Evidence

The user log (D:/Users/luoxu/Downloads/openless-2026-05-18T08-18-31.log) showed:

  • OpenApp repeatedly failing to register Ctrl+Shift+O with HotKey already registerd.
  • Repeated stop edges during Starting while ASR was still connecting.
  • Beta updater checks against v1.3.4-4-beta-tauri/latest-windows-x86_64-beta.json before the Windows manifest asset was available.

The updater failure was classified as a release-publishing race: the GitHub Atom feed exposed the beta tag before the Windows beta manifest asset finished uploading. A later curl check showed the manifest existed with asset Last-Modified: 2026-05-18T08:09:44Z, after the first logged failures.

Validation

  • npm --prefix openless-all\app run build
  • cargo check --manifest-path openless-all\app\src-tauri\Cargo.toml
  • cargo test --manifest-path openless-all\app\src-tauri\Cargo.toml --lib action_shortcut -- --nocapture
  • cargo test --manifest-path openless-all\app\src-tauri\Cargo.toml --lib starting -- --nocapture
  • cargo test --manifest-path openless-all\app\src-tauri\Cargo.toml --lib beta_manifest -- --nocapture
  • git diff --cached --check

Issue Tracking

Fixes #492.
Follow-up: #493 tracks release workflow hardening so beta updater manifests publish before beta release discovery.

Risks / Notes

  • The Windows Common Controls v6 manifest is applied through build-script linker args so unit test executables can resolve TaskDialogIndirect; full installer/runtime smoke was not run.
  • cargo fmt --check is not used as a blocking gate here because the workspace currently has unrelated formatter drift in Linux/ASR/persistence files.
  • Existing Rust and Vite warnings remain out of scope.

Out of scope

  • QA hotkey behavior diff in coordinator/qa.rs.
  • docs/agents/ Matt workflow docs.
  • Broad Rust formatting cleanup.
  • Release workflow restructuring beyond the client-side Beta manifest readiness probe.

PR Type

Bug fix, Enhancement, Tests


Description

  • Allow disabling action hotkeys

  • Cancel repeated startup stops cleanly

  • Skip beta checks during publishing gaps

  • Embed Windows v6 test manifest


Diagram Walkthrough

flowchart LR
  UI["Shortcut settings UI"] --> CMD["Hotkey commands normalize unset bindings"]
  CMD --> COORD["Coordinator disables action hotkeys"]
  STOP["Starting-phase stop edge"] --> STATE["Start-stop outcome tracking"]
  STATE --> DICT["Dictation startup cancels or queues"]
  UPD["Beta update check"] --> PROBE["Probe concrete manifest URLs"]
  PROBE --> SKIP["Skip noisy checks while publishing"]
  BUILD["Windows build script"] --> MANIFEST["Embed Common Controls v6 manifest"]
Loading

File Walkthrough

Relevant files
Configuration changes
2 files
build.rs
Embed Common Controls manifest for Windows tests                 
+20/-0   
common-controls-v6.manifest
Add Windows Common Controls v6 manifest                                   
+14/-0   
Bug fix
3 files
commands.rs
Normalize disabled hotkeys and gate beta checks                   
+296/-22
coordinator.rs
Disable unconfigured action hotkeys cleanly                           
+48/-3   
dictation.rs
Handle repeated startup stop cancellations                             
+58/-11 
Enhancement
3 files
coordinator_state.rs
Track pending stop outcomes explicitly                                     
+34/-5   
ShortcutRecorder.tsx
Add unset and disable shortcut controls                                   
+39/-1   
ShortcutsSection.tsx
Enable disabling action shortcuts in settings                       
+2/-0     

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

PR Reviewer Guide 🔍

(Review updated until commit ca7528a)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

@github-actions
Copy link
Copy Markdown

Persistent review updated to latest commit bf5f930

@github-actions
Copy link
Copy Markdown

Persistent review updated to latest commit af79cf1

@github-actions
Copy link
Copy Markdown

Persistent review updated to latest commit 2fb43ee

@github-actions
Copy link
Copy Markdown

Persistent review updated to latest commit ca7528a

@Cooper-X-Oak
Copy link
Copy Markdown
Contributor Author

Scope gate after Windows real-machine rerun

Maintainer decision: keep this as the first Windows handoff PR.

This PR should continue to cover only #492:

  • action hotkey conflict/retry handling,
  • Starting repeated stop/toggle cancellation,
  • Windows MSVC/Common Controls v6 test startup reliability,
  • beta updater manifest readiness probing.

Fresh rerun confirms the #490 gates are green locally and CI is green on the PR:

  • cargo build --manifest-path openless-all/app/src-tauri/Cargo.toml --bin openless
  • cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib action_shortcut -- --nocapture
  • cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib starting -- --nocapture
  • cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib beta_manifest -- --nocapture
  • npm --prefix openless-all/app run build

Do not use this PR to claim #480 or #482 are fully fixed. The wider Windows rerun found two independent red lights that should remain separate follow-up PRs:

Gate decision: #490 can proceed as the first PR, with #480 and #482 tracked independently.

@Cooper-X-Oak
Copy link
Copy Markdown
Contributor Author

Merge status

I attempted to merge this after the scope gate and green checks, but GitHub rejected the operation for this account:

Cooper-X-Oak does not have the correct permissions to execute MergePullRequest

Maintainer action required: please merge #490 manually when ready. The intended merge remains this first Windows handoff slice only; #480 and #482 stay separate follow-up PRs.

@Cooper-X-Oak
Copy link
Copy Markdown
Contributor Author

Closing per author request. I am pausing involvement with this project for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[windows/handoff] Fix log-confirmed hotkey retry, startup cancel, and beta updater race

1 participant