Add robust SQLite migration system with initial schema for TimeSafari desktop app.
Includes comprehensive error handling, transaction safety, and detailed logging.
Key Changes:
- Add migration system with version tracking and rollback support
- Implement initial schema with accounts, secret, settings, contacts tables
- Configure SQLite PRAGMAs for optimal performance and reliability
- Add detailed logging and state verification
- Set up WAL journal mode and connection pooling
Technical Details:
- Use @capacitor-community/sqlite for native SQLite integration
- Implement atomic transactions per migration
- Add SQL validation and parsing utilities
- Configure PRAGMAs:
* foreign_keys = ON
* journal_mode = WAL
* synchronous = NORMAL
* temp_store = MEMORY
* page_size = 4096
* cache_size = 2000
* busy_timeout = 15000
* wal_autocheckpoint = 1000
Note: Current version has duplicate migration v1 entries that need to be
addressed in a follow-up commit to ensure proper versioning.
Testing:
- Verified migrations run successfully
- Confirmed table creation and index setup
- Validated transaction safety and rollback
- Checked logging and error handling
- Update worker format to ESM in Vite config to fix IIFE format error
- Increase PWA precache file size limit to 10MB to accommodate SQL.js files
- Fix type declarations for worker configuration
- Add proper type annotations for Vite config
- Add type declarations for absurd-sql module
- Configure ESLint to ignore node_modules
- Add VS Code settings for Java diagnostics
This fixes the Android build issues and improves the development
environment by properly ignoring node_modules in linting and
diagnostics.
- Move type definitions from src/types/ to src/interfaces/ for better organization
- Enhance deep linking type system documentation with detailed examples
- Update package dependencies to latest versions
- Improve code organization in README.md
- Fix formatting in WebPlatformService.ts
This change consolidates all type definitions into the interfaces folder,
improves type safety documentation, and updates dependencies for better
maintainability. The deep linking system now has clearer documentation
about its type system and validation approach.
Breaking: Removes src/types/ directory in favor of src/interfaces/
Add detailed documentation for camera switching functionality across web and mobile platforms:
- Add camera management interfaces to QRScannerService
- Document MLKit Barcode Scanner configuration for Capacitor
- Add platform-specific implementations for iOS and Android
- Include camera state management and error handling
- Add performance optimization guidelines
- Document testing requirements and scenarios
Key additions:
- Camera switching implementation for both platforms
- Platform-specific considerations (iOS/Android)
- Battery and memory optimization strategies
- Comprehensive testing guidelines
- Error handling and state management
- Security and permission considerations
This update provides a complete reference for implementing robust
camera switching functionality in the QR code scanner.
- Update capacitor.config.json:
- Change appId from com.brownspank.timesafari to app.timesafari
- Add server configuration with cleartext enabled
- Add plugins configuration for App URL handling
- Update script documentation paths:
- Change ./openssl_signing_console.sh to /scripts/openssl_signing_console.sh
- Change ./openssl_signing_console.rst to /doc/openssl_signing_console.rst
This change standardizes the app identifier and adds necessary
capacitor configurations for development, while also fixing script
documentation paths to use absolute references.
Merge multiple QR code documentation files into a single comprehensive guide
that accurately reflects the current implementation. The consolidated guide:
- Combines information from qr-code-implementation-guide.mdc,
qr-code-handling-rule.mdc, and camera-implementation.md
- Clarifies the relationship between ContactQRScanView and ContactQRScanShowView
- Streamlines build configuration documentation
- Adds detailed sections on error handling, security, and best practices
- Improves organization and readability of implementation details
- Removes redundant information while preserving critical details
This change improves documentation maintainability and provides a single
source of truth for QR code implementation details.