Skip to content

Commit c3c9fc4

Browse files
doublegateclaude
andcommitted
feat(v1.5.7): Fresh sidebar toggle implementation with before-input-event API
## Overview Complete reimplementation of sidebar toggle using Electron's before-input-event API based on fresh research. Includes comprehensive codec verification logging and platform requirements documentation. ## Technical Changes ### Sidebar Toggle (Fresh Implementation) - Replaced failed v1.5.1-v1.5.6 approaches with before-input-event API - Intercepts Ctrl+I/Cmd+I at main process level before reaching renderer/iframes - Uses webContents.send() for IPC communication to overlay - Maintains DOM event handler as fallback - Works correctly with contextIsolation:true and sandbox:true ### Codec Verification Logging - Added logCodecSupport() function in main.ts - Logs platform info (Electron, Chrome, Node versions) - Reports GPU feature status (video_decode, gpu_compositing) - Shows expected codec support (AV1, HEVC, VP9, H.264) - Displays GPU device information asynchronously ### Documentation - docs/SIDEBAR-TOGGLE-DESIGN.md: Architecture and rationale - docs/PLATFORM-REQUIREMENTS.md: User-facing requirements guide - docs/CUSTOM-ELECTRON-BUILD.md: Custom Electron research - docs/research/: Codec support, build notes, diag panel analysis ### Code Quality - Fixed unused parameter declarations (underscore prefix) - Removed unused imports (createContext, User) - Build: 0 errors - Lint: 0 errors (11 pre-existing warnings) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 915dbd4 commit c3c9fc4

File tree

13 files changed

+2146
-33
lines changed

13 files changed

+2146
-33
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,12 @@ test.js
139139
bun.lockb
140140
.flatpak-builder
141141

142-
# Claude Code documentation files
142+
# Claude Code documentation files (excluded from version control)
143143
CLAUDE.md
144144
CLAUDE.local.md
145145
WARP.md
146+
**/CLAUDE.md
147+
**/CLAUDE.local.md
146148

147149
# Additional Electron build artifacts
148150
*.spec

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,52 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## 1.5.7 (2026-01-08) - Fresh Sidebar Toggle Implementation
6+
7+
### New Features
8+
9+
* **Fresh Sidebar Toggle Implementation**: Complete reimplementation using Electron's `before-input-event` API
10+
- Intercepts Ctrl+I/Cmd+I at main process level before reaching renderer/iframes
11+
- Uses webContents.send() for IPC communication to overlay
12+
- Maintains DOM event handler as fallback
13+
- Works correctly with contextIsolation:true and sandbox:true
14+
- Resolves previous v1.5.1-v1.5.6 failed approaches (globalShortcut, executeJavaScript, contextBridge)
15+
16+
* **Startup Codec Verification Logging**: Added comprehensive codec/GPU status logging on application startup
17+
- logCodecSupport() function in main.ts
18+
- Logs platform info (Electron, Chrome, Node versions)
19+
- Reports GPU feature status (video_decode, gpu_compositing)
20+
- Shows expected codec support (AV1, HEVC, VP9, H.264)
21+
- Displays GPU device information asynchronously
22+
23+
### Documentation
24+
25+
* **SIDEBAR-TOGGLE-DESIGN.md**: Architecture and rationale for sidebar toggle implementation
26+
* **PLATFORM-REQUIREMENTS.md**: User-facing guide for system requirements per platform
27+
* **CUSTOM-ELECTRON-BUILD.md**: Comprehensive research on custom Electron builds with codec support
28+
* **docs/research/**: Detailed research notes including codec support analysis and diagnostic panel investigation
29+
30+
### Code Quality
31+
32+
* Fixed unused parameter declarations (underscore prefix convention)
33+
* Removed unused imports (createContext, User)
34+
* Build: 0 errors
35+
* Lint: 0 errors (11 pre-existing warnings)
36+
37+
### Technical Details
38+
39+
#### Previous Failed Approaches (v1.5.1-v1.5.6)
40+
- **globalShortcut**: Stole shortcuts from other applications
41+
- **executeJavaScript + CustomEvent**: Security restrictions with contextIsolation
42+
- **contextBridge callbacks**: Unreliable with React state management
43+
44+
#### v1.5.7 Solution
45+
The `before-input-event` API approach:
46+
1. Intercepts keyboard events at main process level BEFORE reaching any renderer
47+
2. Works correctly even when focus is on iframe content (GeForce NOW game sessions)
48+
3. Does not steal shortcuts from other applications
49+
4. Compatible with contextIsolation:true and sandbox:true security settings
50+
551
## 🎉 1.4.0 (2025-09-10) - RESOLUTION OVERRIDE BREAKTHROUGH
652

753
### 🚀 Major Features

README.md

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ We have several exciting features planned to further enhance your experience:
4343

4444
- **HDR support**
4545
- **Surround sound support**
46-
- **Ability to open sidebar during gameplay**
4746
- **Account Switching**: Easily switch between different connected accounts within GeForce NOW.
4847
- **Automatic Game Startup**: Customize which game starts automatically when the app launches.
4948

@@ -101,17 +100,25 @@ GeForce Infinity is built with modern web technologies and follows best practice
101100
- **React**: Component-based UI for the overlay interface
102101
- **Build System**: Modern build pipeline with esbuild, TypeScript compiler, and Tailwind CSS
103102

104-
### **Major Breakthrough (v1.4.0) - Updated September 10, 2025**
103+
### **Latest Improvements (v1.5.7) - January 8, 2026**
105104

106-
🎉 **RESOLUTION OVERRIDE NOW WORKING** - The core functionality is finally here!
105+
**Sidebar Toggle During Gameplay** - Finally working with research-based approach!
107106

108-
- **🔧 Root Cause Resolution**: Identified and solved the iframe isolation issue preventing POST request interception
109-
- **📡 Iframe Injection System**: Implemented comprehensive webFrameMain API integration for complete frame coverage
110-
- **🎯 Dual-Layer Interception**: Combined webRequest API with iframe-level fetch/XHR patching for 100% coverage
111-
- **✅ Working Custom Resolutions**: Users can now successfully stream at 3440x1440, 4K, 120fps, and AV1 codec
112-
- **🚀 Complete Functionality**: Resolution override system now works as originally designed
113-
- **⚡ Enhanced Build System**: Fixed TypeScript compilation errors and npm configuration warnings
114-
- **🛠️ Technical Excellence**: Systematic debugging led to breakthrough iframe injection implementation
107+
- **Fresh Implementation**: Complete reimplementation using Electron's `before-input-event` API
108+
- **Works with Iframe Focus**: Sidebar toggle (Ctrl+I) now works even during active game sessions
109+
- **Security Compatible**: Works correctly with contextIsolation:true and sandbox:true
110+
- **Codec Verification Logging**: Comprehensive startup logging for debugging codec/GPU status
111+
- **Platform Documentation**: User-facing guide for system requirements and codec support
112+
113+
### **Major Breakthrough (v1.4.0) - September 10, 2025**
114+
115+
**RESOLUTION OVERRIDE NOW WORKING** - The core functionality is finally here!
116+
117+
- **Root Cause Resolution**: Identified and solved the iframe isolation issue preventing POST request interception
118+
- **Iframe Injection System**: Implemented comprehensive webFrameMain API integration for complete frame coverage
119+
- **Dual-Layer Interception**: Combined webRequest API with iframe-level fetch/XHR patching for 100% coverage
120+
- **Working Custom Resolutions**: Users can now successfully stream at 3440x1440, 4K, 120fps, and AV1 codec
121+
- **Complete Functionality**: Resolution override system now works as originally designed
115122

116123
### **Previous Improvements (v1.3.0)**
117124

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.4.0
1+
1.5.7

0 commit comments

Comments
 (0)