All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
-
Fresh Sidebar Toggle Implementation: Complete reimplementation using Electron's
before-input-eventAPI- 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
- Resolves previous v1.5.1-v1.5.6 failed approaches (globalShortcut, executeJavaScript, contextBridge)
-
Startup Codec Verification Logging: Added comprehensive codec/GPU status logging on application startup
- 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
- SIDEBAR-TOGGLE-DESIGN.md: Architecture and rationale for sidebar toggle implementation
- PLATFORM-REQUIREMENTS.md: User-facing guide for system requirements per platform
- CUSTOM-ELECTRON-BUILD.md: Comprehensive research on custom Electron builds with codec support
- docs/research/: Detailed research notes including codec support analysis and diagnostic panel investigation
- Fixed unused parameter declarations (underscore prefix convention)
- Removed unused imports (createContext, User)
- Build: 0 errors
- Lint: 0 errors (11 pre-existing warnings)
- globalShortcut: Stole shortcuts from other applications
- executeJavaScript + CustomEvent: Security restrictions with contextIsolation
- contextBridge callbacks: Unreliable with React state management
The before-input-event API approach:
- Intercepts keyboard events at main process level BEFORE reaching any renderer
- Works correctly even when focus is on iframe content (GeForce NOW game sessions)
- Does not steal shortcuts from other applications
- Compatible with contextIsolation:true and sandbox:true security settings
- 🔧 Working Resolution Override: Successfully implemented the core functionality users have been waiting for
- 📡 Iframe Injection System: Added comprehensive webFrameMain API integration for complete frame coverage
- 🎯 Dual-Layer Network Interception: Combined webRequest API with iframe-level fetch/XHR patching for 100% coverage
- ✅ Custom Resolution Streaming: Users can now successfully use 3440x1440, 4K, 120fps, and AV1 codec settings
- 🛠️ Root Cause Resolution: Identified and solved iframe isolation preventing POST request interception
- webFrameMain API Integration: Implemented comprehensive iframe monitoring and script injection
- Fetch/XHR Patching: Added iframe-level request interception for complete network coverage
- POST Request Handling: Resolved critical issue where POST requests bypassed webRequest API
- Frame Isolation Solution: Overcame iframe security boundaries with proper script injection timing
- API Interception Enhancement: Extended network monitoring to handle all GeForce NOW API patterns
- Request Timing: Fixed critical timing issue ensuring patches are applied before GeForce NOW initialization
- TypeScript Compilation: Resolved all remaining compilation errors for clean builds
- NPM Configuration: Fixed package.json warnings and improved development experience
- Build System Reliability: Enhanced build pipeline stability and error handling
- Enhanced Debugging: Added comprehensive logging for iframe injection and network interception
- Code Quality: Systematic error resolution maintaining feature completeness
- Build Process: Improved development workflow with reliable compilation and testing
- 4K/5K Support: Added comprehensive 4K (3840x2160) and 5K (5120x2880) resolution support
- Ultrawide Support: Native support for 3440x1440 (21:9 aspect ratio) ultrawide gaming monitors
- Advanced Codec Selection: Implemented codec preference system with H.264, H.265/HEVC, and AV1 options
- AV1 Codec: Added AV1 codec support optimized for 4K streaming performance
- Resolution Enhancement: Upgraded default resolution from 1080p to 1440p for better streaming quality
- ES Module Architecture: Complete migration to ES modules with proper directory imports and file extensions
- TypeScript Modernization: Updated TypeScript codebase with modern import syntax and improved type safety
- Build System Enhancement: Resolved CommonJS/ES module compatibility issues including electron-updater integration
- Enhanced Settings UI: Redesigned settings interface with comprehensive resolution and codec options
- Configuration System: Expanded configuration schema to support new streaming parameters
- Code Quality: Fixed all TypeScript compilation errors and improved overall code reliability
- Module Resolution: Fixed __dirname references for ES modules using fileURLToPath and URL constructors
- Tailwind CSS Reliability: Resolved corrupted yaml package dependency affecting CSS compilation pipeline
- Development Workflow: Streamlined build process with reliable dependency management and error resolution
- ES Module Imports: Fixed directory imports with explicit .js extensions for proper module resolution
- CommonJS Compatibility: Resolved electron-updater integration issues with ES module architecture
- Module Path Resolution: Fixed __dirname references using fileURLToPath for ES module compatibility
- Import Syntax: Resolved TypeScript import inconsistencies across the codebase
- Type Safety: Enhanced type definitions for better development experience
- Settings Persistence: Improved configuration saving and loading reliability
- Application Startup: Resolved build and runtime issues preventing application launch
- Dependency Corruption: Fixed corrupted yaml package causing Tailwind CSS compilation failures
- Build Pipeline: Stabilized build process with comprehensive error handling and recovery
- Resolution Override Timing: Fixed critical issue where fetch patching was applied before GeForce NOW loaded
- Discord RPC Error Handling: Added proper connection error management preventing application crashes
- Renderer Script Execution: Enhanced overlay loading with improved error handling and timing optimization
- Repository References: Complete migration from AstralVixen to doublegate GitHub account across all files
- IBUS Warnings: Suppressed Linux GTK input method warnings with proper environment variable configuration
- Build Script Modernization: Updated Node.js loader from deprecated --loader to modern --import syntax
- Request Monitoring Enhancement: Added comprehensive debugging for GeForce NOW API interception patterns
- XHR Request Patching: Extended network interception to handle XMLHttpRequest alongside fetch() for complete coverage
- Unhandled Promise Rejections: Implemented proper error handling for Discord RPC connection failures