Update measure_time function to properly handle command exit codes:
- Check command success/failure and return appropriate exit code
- Log failure messages with timing and exit code information
- Ensure TypeScript type checking failures stop the build process
- Maintains timing logs for both success and failure cases
This prevents deployment of code with TypeScript type errors by making
test and production builds fail fast when tsc --noEmit reports issues.
Add comprehensive documentation explaining the order of precedence for
environment variables in TimeSafari project. Covers shell script overrides,
platform-specific configurations, .env file usage, and API alignment between
claim and partner APIs. Includes troubleshooting guide and best practices
for maintaining consistent environment configuration across development,
test, and production environments.
Extend custom API IP feature to iOS platform with platform-appropriate defaults:
- Android: Defaults to 10.0.2.2 for emulator, custom IP for physical devices
- iOS: Uses localhost for simulator, custom IP for physical devices
- Added npm scripts for iOS custom IP builds (dev:custom, test:custom)
- Updated documentation to cover both platforms with examples
- Consistent --api-ip parameter across Android and iOS build scripts
Usage:
./scripts/build-ios.sh --dev # Default localhost
./scripts/build-ios.sh --dev --api-ip 192.168.1.100 # Custom IP
Implement --api-ip parameter for Android builds with smart defaults:
- Defaults to 10.0.2.2 for emulator development when no IP specified
- Supports custom IP for physical device development
- Added npm scripts for common use cases (dev:custom, test:custom)
- Updated help documentation with usage examples
- Created comprehensive documentation with troubleshooting guide
Usage:
./scripts/build-android.sh --dev # Default 10.0.2.2
./scripts/build-android.sh --dev --api-ip 192.168.1.100 # Custom IP
- Move Android-specific API server logic from common.sh to build-android.sh
- Remove unnecessary ANDROID_BUILD environment variable
- Set localhost:3000 as default in common.sh for all Capacitor builds
- Override to 10.0.2.2:3000 specifically in build-android.sh for Android development
- Fix execution order issue where common.sh ran before ANDROID_BUILD was set
- Maintain proper separation: Android emulator uses 10.0.2.2, iOS simulator uses localhost
- Add type checking to build scripts for production/test builds only
- Fix TypeScript errors in migration service, router, and platform services
- Add electronAPI type declarations for Electron platform
- Remove type checking from development builds for faster hot reload
- Update tsconfig.node.json to resolve configuration conflicts
- Ensure type safety for production while maintaining fast development workflow
Updated scripts/common.sh to set appropriate API server endpoints based on build mode:
- Development: localhost:3000 for Endorser API, production for Image/Partner APIs
- Test: test-api.endorser.ch for Endorser API, production for Image/Partner APIs
- Production: All production endpoints
This ensures mobile builds use correct API endpoints for each environment
while keeping Image and Partner APIs on production servers for dev/test.
Remove duplicate APP_SERVER imports in ContactsView.vue and ClaimView.vue that were causing compilation errors during testing. The duplicate imports occurred when both files had APP_SERVER imported from constants/app and also assigned as class properties.
- ContactsView.vue: Remove duplicate import, keep class property assignment
- ClaimView.vue: Remove duplicate import, keep class property assignment
- Fixes Vite compilation errors that were blocking test execution
- 33/38 tests now pass successfully
This resolves the "Identifier 'APP_SERVER' has already been declared" errors that were preventing the development server from running properly.
- Add clarifying comment in ios/.gitignore for App/App/public directory
- Document that public directory contains Capacitor sync output from dist/
- Add comment in build-ios.sh clarifying build directory is temporary output
- Reinforces best practice of keeping platform files in ios/ folder
- Add clarifying comment in ios/.gitignore for App/App/public directory
- Document that public directory contains Capacitor sync output from dist/
- Add comment in build-ios.sh clarifying build directory is temporary output
- Reinforces best practice of keeping platform files in ios/ folder
- Deleted src/registerServiceWorker.ts and all related imports
- Cleaned up WebPlatformService and main.web.ts to remove manual SW logic
- Updated VitePWA config for correct dev/prod SW handling
- Fixed missing FontAwesome download icon in PWA prompt
- Updated docs to reflect new PWA registration approach
PWA now works reliably in all web environments with zero manual SW code.
- Deleted src/registerServiceWorker.ts and all related imports
- Cleaned up WebPlatformService and main.web.ts to remove manual SW logic
- Updated VitePWA config for correct dev/prod SW handling
- Fixed missing FontAwesome download icon in PWA prompt
- Updated docs to reflect new PWA registration approach
PWA now works reliably in all web environments with zero manual SW code.
- Removed 24 redundant build:capacitor:* scripts that were just aliases
- Kept essential build:capacitor and build:capacitor:sync scripts
- Improves script clarity and reduces maintenance overhead
- No functional changes to build processes
- Removed 24 redundant build:capacitor:* scripts that were just aliases
- Kept essential build:capacitor and build:capacitor:sync scripts
- Improves script clarity and reduces maintenance overhead
- No functional changes to build processes
- Implement scripts/build-ios.sh with dev/test/prod, IPA, deploy, and Xcode support
- Integrate all iOS build and legacy scripts into package.json (including deploy)
- Update docs/ios-build-scripts.md: mark as complete, add usage and status
- Update README.md: add iOS to quick start, platform builds, and docs links
- Ensure iOS build system matches Android/Electron pattern for consistency
- Implement scripts/build-ios.sh with dev/test/prod, IPA, deploy, and Xcode support
- Integrate all iOS build and legacy scripts into package.json (including deploy)
- Update docs/ios-build-scripts.md: mark as complete, add usage and status
- Update README.md: add iOS to quick start, platform builds, and docs links
- Ensure iOS build system matches Android/Electron pattern for consistency
Remove sourceMappingURL comment from plugin.js in @capacitor-community/sqlite to
prevent Electron DevTools from attempting to load the source map via the custom
capacitor-electron:// protocol. This eliminates harmless but noisy 404 warnings
in development. No impact on runtime or debugging.
- Remove //# sourceMappingURL=plugin.js.map from plugin.js
- Confirmed plugin.js.map exists for manual inspection if needed
- No changes to app logic or build process
Remove sourceMappingURL comment from plugin.js in @capacitor-community/sqlite to
prevent Electron DevTools from attempting to load the source map via the custom
capacitor-electron:// protocol. This eliminates harmless but noisy 404 warnings
in development. No impact on runtime or debugging.
- Remove //# sourceMappingURL=plugin.js.map from plugin.js
- Confirmed plugin.js.map exists for manual inspection if needed
- No changes to app logic or build process
Replace chained npm commands with single build-electron.sh script supporting
multiple build modes (dev/test/prod), platforms (windows/mac/linux), and
package types (appimage/deb/dmg). Add platform validation to prevent
cross-platform build issues and integrate cleaning functionality.
- Replace 15+ chained npm scripts with single modular build script
- Add platform detection and validation with early failure on mismatch
- Support environment-specific builds (development/test/production)
- Add comprehensive documentation in docs/electron-build-patterns.md
- Update BUILDING.md with new build patterns and examples
- Remove legacy electron:build:* scripts and consolidate under build:electron:*
- Add clean:electron script integrated into build process
- Improve error handling and user feedback throughout build process
This refactoring follows DRY principles, eliminates command chaining,
and provides a more maintainable and user-friendly build system.
Replace chained npm commands with single build-electron.sh script supporting
multiple build modes (dev/test/prod), platforms (windows/mac/linux), and
package types (appimage/deb/dmg). Add platform validation to prevent
cross-platform build issues and integrate cleaning functionality.
- Replace 15+ chained npm scripts with single modular build script
- Add platform detection and validation with early failure on mismatch
- Support environment-specific builds (development/test/production)
- Add comprehensive documentation in docs/electron-build-patterns.md
- Update BUILDING.md with new build patterns and examples
- Remove legacy electron:build:* scripts and consolidate under build:electron:*
- Add clean:electron script integrated into build process
- Improve error handling and user feedback throughout build process
This refactoring follows DRY principles, eliminates command chaining,
and provides a more maintainable and user-friendly build system.
- Add PWAInstallPrompt component for custom install UI and event handling
- Register PWAInstallPrompt in App.vue for global visibility
- Enable PWA features and install prompt in dev, test, and prod (vite.config.web.mts)
- Update service worker registration to work in all environments
- Update docs/build-web-script-integration.md with PWA install guidance and visual cues
- Add scripts/build-web.sh for unified web build/dev workflow
PWA is now installable and testable in all web environments, with clear user prompts and desktop support.
- Add PWAInstallPrompt component for custom install UI and event handling
- Register PWAInstallPrompt in App.vue for global visibility
- Enable PWA features and install prompt in dev, test, and prod (vite.config.web.mts)
- Update service worker registration to work in all environments
- Update docs/build-web-script-integration.md with PWA install guidance and visual cues
- Add scripts/build-web.sh for unified web build/dev workflow
PWA is now installable and testable in all web environments, with clear user prompts and desktop support.
- Removed extra blank lines at end of file to resolve MD012 (no-multiple-blanks)
- Standardized heading spacing to resolve MD019 (no-multiple-space-atx)
- Stripped trailing whitespace and ensured file ends with a single newline
All changes maintain content integrity and bring the file into full markdownlint compliance.
- Removed extra blank lines at end of file to resolve MD012 (no-multiple-blanks)
- Standardized heading spacing to resolve MD019 (no-multiple-space-atx)
- Stripped trailing whitespace and ensured file ends with a single newline
All changes maintain content integrity and bring the file into full markdownlint compliance.
- Eliminated all debugging console statements from 7 files (194 deletions)
- Fixed parsing errors from broken function calls in databaseUtil.ts
- Resolved orphaned console.log parameters in util.ts and ImportAccountView.vue
- Maintained legitimate logging in PlatformServiceFactory and registerServiceWorker
- Reduced lint issues from 33 problems (11 errors + 22 warnings) to 16 warnings
- All builds and core functionality verified working
- Eliminated all debugging console statements from 7 files (194 deletions)
- Fixed parsing errors from broken function calls in databaseUtil.ts
- Resolved orphaned console.log parameters in util.ts and ImportAccountView.vue
- Maintained legitimate logging in PlatformServiceFactory and registerServiceWorker
- Reduced lint issues from 33 problems (11 errors + 22 warnings) to 16 warnings
- All builds and core functionality verified working
Time Tracking Integration: Add mandatory timing steps and performance analysis
Performance Targets: Include realistic complexity-based duration estimates
Quality Gates: Require time data in commits and performance comparison
Project Estimates: Update to 2-3 weeks based on actual performance data
Time: 15 minutes | Complexity: Simple | Issues: None
Testing: Manual | Validation: Template review complete
Time Tracking Integration: Add mandatory timing steps and performance analysis
Performance Targets: Include realistic complexity-based duration estimates
Quality Gates: Require time data in commits and performance comparison
Project Estimates: Update to 2-3 weeks based on actual performance data
Time: 15 minutes | Complexity: Simple | Issues: None
Testing: Manual | Validation: Template review complete
- Removed all vestigial Dexie/USE_DEXIE_DB references from code and docs
- Centralized DB logic in PlatformServiceMixin; resolved logger/databaseUtil circular dependency
- Modularized SQL helpers (`$generateInsertStatement`, `$generateUpdateStatement`) and added unit tests
- Created/updated migration tracking docs and helper script for cross-machine progress
- Confirmed all lint/type checks and tests pass; ready for systematic file migration
- Removed all vestigial Dexie/USE_DEXIE_DB references from code and docs
- Centralized DB logic in PlatformServiceMixin; resolved logger/databaseUtil circular dependency
- Modularized SQL helpers (`$generateInsertStatement`, `$generateUpdateStatement`) and added unit tests
- Created/updated migration tracking docs and helper script for cross-machine progress
- Confirmed all lint/type checks and tests pass; ready for systematic file migration
- Add TODO annotation to MembersList.vue requiring human testing validation
- Create migration templates for systematic component migration
- Add best practices guide for PlatformServiceMixin usage
- Create ESLint rules template for pattern enforcement
- Add validation script to track migration progress
- Document Phase 1 completion summary with current state
Migration Infrastructure:
- Component migration checklist template
- Automated validation script (validate-migration.sh)
- Best practices documentation
- ESLint rules for preventing regression
Status: MembersList.vue migration complete but requires human testing
Next: Select next component for migration when ready to continue
- Add TODO annotation to MembersList.vue requiring human testing validation
- Create migration templates for systematic component migration
- Add best practices guide for PlatformServiceMixin usage
- Create ESLint rules template for pattern enforcement
- Add validation script to track migration progress
- Document Phase 1 completion summary with current state
Migration Infrastructure:
- Component migration checklist template
- Automated validation script (validate-migration.sh)
- Best practices documentation
- ESLint rules for preventing regression
Status: MembersList.vue migration complete but requires human testing
Next: Select next component for migration when ready to continue
fix: eliminate SharedArrayBuffer checks on non-web platforms
* Add platform guard in AbsurdSqlDatabaseService to only initialize on web
* Change singleton pattern from eager to lazy instantiation
* Update worker import to use lazy singleton pattern
* Prevents absurd-sql initialization on Electron/Capacitor platforms
* Reduces console noise and memory footprint on desktop/mobile
* Maintains full web platform functionality and performance
Resolves SharedArrayBuffer-related console output on Electron platform
while preserving all web features and maintaining clean architecture.
fix: eliminate SharedArrayBuffer checks on non-web platforms
* Add platform guard in AbsurdSqlDatabaseService to only initialize on web
* Change singleton pattern from eager to lazy instantiation
* Update worker import to use lazy singleton pattern
* Prevents absurd-sql initialization on Electron/Capacitor platforms
* Reduces console noise and memory footprint on desktop/mobile
* Maintains full web platform functionality and performance
Resolves SharedArrayBuffer-related console output on Electron platform
while preserving all web features and maintaining clean architecture.