Commit Graph

9 Commits

Author SHA1 Message Date
Jose Olarte III
4a1249d166 feat(electron): add editMenu to enable copy/paste keyboard shortcuts
- Add 'editMenu' role to AppMenuBarMenuTemplate in setup.ts and index.ts
- Enables standard keyboard shortcuts (Cmd+C, Cmd+V, etc.) in Electron app
- Fixes issue where copy/paste shortcuts were not working in text inputs
- Maintains existing clipboard service functionality for programmatic operations

Resolves keyboard shortcut functionality for better user experience in desktop app.
2025-08-29 18:05:37 +08:00
Matthew Raymer
2a9b6a6444 fix: resolve Electron auto-updater 404 errors
- Update repository URL to correct Gitea location
- Disable auto-updates due to Gitea hosting limitations
- Remove GitHub provider configuration from electron-builder
- Add comprehensive documentation for future update strategies
- Fixes HttpError 404 when checking for GitHub releases

The app was trying to check for updates on GitHub but the repository
is hosted on Gitea. Auto-updates are now disabled with manual
distribution as the current update mechanism.
2025-07-11 23:16:26 -07:00
Matthew Raymer
09a791622c fix: simplify Electron single instance enforcement
- Remove complex file-based locking that caused crashes
- Use only Electron's built-in requestSingleInstanceLock() API
- Second instances exit immediately with clear messaging
- Existing instance focuses and shows user-friendly dialog
- Prevents database conflicts and resource contention
- Update documentation with simplified approach

Fixes crashes when multiple instances run simultaneously.
2025-07-11 07:46:08 +00:00
Matthew Raymer
12496589a3 Add single-instance enforcement to Electron app
- Implement app.requestSingleInstanceLock() to prevent multiple instances
- Add user-friendly dialog when second instance is attempted
- Focus and restore existing window instead of creating new instance
- Prevent database corruption and resource conflicts
- Update documentation with single-instance behavior details
2025-07-11 07:23:48 +00:00
Matthew Raymer
e883029531 feat: implement secure IPC-based file export for Electron
Replace sandboxed Capacitor filesystem with native IPC for reliable file exports:
- Add IPC handler in main process for direct Downloads folder access
- Expose secure electronAPI via contextBridge in preload script
- Update ElectronPlatformService to use native IPC with web fallback
- Add TypeScript definitions for electron APIs
- Fix file export issues where files were trapped in virtual filesystem
- Enable proper date-stamped backup filenames in Downloads folder
- Follow Electron security best practices with process isolation

Files now export directly to ~/Downloads with exact path feedback.
2025-07-06 03:46:28 +00:00
Matthew Raymer
a4c44ff052 feat: Add database migration tools and fix Electron integration
- Add comprehensive IndexedDB to SQLite migration service (1,397 lines)
- Create migration UI with progress tracking and validation (1,492 lines)
- Fix Electron TypeScript compilation and SQLite plugin issues
- Expand migration system with detailed documentation and error handling
- Add development guide and coding standards

Resolves: #electron-startup #database-migration #typescript-errors
Impact: Enables user-friendly database migration with full data verification
2025-07-01 03:47:32 +00:00
Matthew Raymer
ea707aed62 Fix auto-updater error dialog in Electron AppImage 2025-06-27 09:26:13 +00:00
Matthew Raymer
da5ff012b0 Fix EPIPE error handling in Electron AppImage
- Added custom error handler for electron-unhandled to suppress EPIPE errors
- Added process.stdout and process.stderr error handlers for EPIPE
- EPIPE errors are common in AppImages due to console output pipe issues
- App now runs cleanly without unhandled error dialogs

Resolves console output errors that were causing unhandled error dialogs
in the distributed AppImage while maintaining proper error logging for
other types of errors.
2025-06-27 09:20:31 +00:00
Matthew Raymer
6e0e0cd6b5 WIP: Fix Electron TypeScript compilation and SQLite configuration
- Fixed TypeScript configuration in electron/tsconfig.json:
  * Added skipLibCheck: true to resolve node_modules type conflicts
  * Added allowSyntheticDefaultImports for better module compatibility
  * Disabled strict mode to avoid unnecessary type errors
  * Updated TypeScript version to ~5.2.2 for consistency

- Resolved SQLite plugin configuration issue:
  * Changed plugin key from 'SQLite' to 'CapacitorSQLite' in capacitor.config.json
  * This fixes 'Cannot read properties of undefined (reading electronIsEncryption)' error
  * All 45+ SQLite plugin methods now properly registered and available

- Added Electron development scripts:
  * electron-dev.sh for streamlined development workflow
  * setup-electron.sh for initial Electron environment setup

- Electron app now starts successfully without TypeScript compilation errors
- SQLite plugin fully functional with proper configuration access

Status: Electron platform now working for TimeSafari development
2025-06-26 08:06:56 +00:00