Improve hotkey capture and refresh download page#7
Conversation
- Add broader hotkey parsing and capture support - Replace download specs with new platform-focused layout - Polish desktop hotkey picker styling
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
laryn-transcribe | ad82922 | May 05 2026, 05:04 PM |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR enhances hotkey capture functionality with expanded key support and a dedicated UI component, while separately redesigning the marketing download page template with new hero layout and platform cards. ChangesHotkey Capture Infrastructure & UI
Marketing Download Page Redesign
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~40 minutes Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
No issues found across 4 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Architecture diagram
sequenceDiagram
participant User as User
participant UI as Hotkey Settings UI
participant Capturer as Capture Handler
participant Backend as Main Process (main.cjs)
participant Renderer as Web Content
participant Worker as Cloudflare Worker
participant Download as Download Page Hero
Note over User,Renderer: CHANGED: Hotkey Capture Flow
User->>UI: Click capture button
UI->>Capturer: beginCapture() - focus button, set capturing=true
Capturer->>Capturer: Start listening for key events
User->>Capturer: Press key combination
alt Escape pressed (no modifiers)
Capturer->>UI: cancelCapture() - restore rawHotkey
UI-->>User: Reset to previous hotkey
else Key press with modifiers
Capturer->>Capturer: hotkeyFromKeyboardEvent(event)
alt Invalid key (no supported key part)
Capturer-->>UI: Set captureError "That key is not supported."
else No modifiers pressed
Capturer-->>UI: Set captureError "Add Ctrl, Alt, Shift, or Win."
else Only 1 modifier, no key
Capturer-->>UI: Set captureError "Modifier-only shortcuts need two modifiers."
else Valid shortcut detected
alt hasKey (non-modifier key pressed)
Capturer->>UI: commitCapture(hotkey) - set capturing=false
UI->>Backend: onSetHotkey(normalizedHotkey)
Backend-->>UI: Hotkey updated
UI-->>User: Show new hotkey as active
else modifier-only (no key yet)
Capturer->>Capturer: pendingModifierHotkey = current partial hotkey
Note over Capturer: Wait for keyUp to finalize
User->>Capturer: Release all modifiers
Capturer->>UI: commitCapture(hotkey)
UI->>Backend: onSetHotkey(hotkey)
end
end
end
note over Capturer: Capture ends on blur
Capturer->>Capturer: onBlur event
Capturer->>UI: cancelCapture() - restore rawHotkey
Note over Worker: CHANGED: Download Page Layout
User->>Worker: Request /download page
Worker->>Worker: downloadBody(appUrl)
Worker->>Download: Render hero-download section
Download->>Download: Show Windows download button (.exe)
Download->>Download: Show macOS download button (.dmg)
Download->>Download: Show installer card with mock details
Worker->>Worker: Render platform cards
Worker->>Worker: Render simplified requirements section
Note over Backend: CHANGED: Expanded Key Support
Backend->>Backend: HOTKEY_KEY_CODES extended
note over Backend: Added numpad keys, F13-F24, CapsLock, NumLock, ScrollLock, PrintScreen
Backend->>Backend: HOTKEY_CANONICAL_PARTS lookup table
Backend->>Backend: normalizeHotkeyPart() uses canonical table
Summary
Testing
Summary by CodeRabbit
Release Notes
New Features