- Update GitHub Actions to use Node.js v22 and actions/setup-node@v4
- Fix Electron debug.ts TypeScript error for devToolsMode union types
- Prepare compatibility for Angular 20 requirements
- Create dedicated lazy-loading service and component for charts
- Remove Chart.js from main bundle, load on-demand instead
- Fix responsive scaling issues for smaller screens
- Improve TypeScript typing throughout chart components
- Ensure single module load with proper caching
- Fix chart overlap issue in simple counter dialog
- Set inlineCritical to true in all production builds
- This inlines critical CSS in the HTML for faster FCP
- Roboto fonts already have font-display: swap via @fontsource
The issue was that moveToArchive started an async operation but didn't wait
for it to complete. This caused a race condition where:
1. Tasks were removed from the store (memory)
2. Archive save started but didn't complete before shutdown
3. On next app load, tasks reappeared from persistence
This fix:
- Makes moveToArchive async and properly awaits the archive operation
- Ensures archive completes before sync or app shutdown
- Removes the insufficient 50ms timeout
Fixes#4884
* fi/various9:
refactor(env): add getEnvOptional for non-required environment variables
feat(unsplash): disable UI feature when API key not available
fix(docker): simplify env handling for Docker builds
- Add getEnvOptional() method for accessing optional environment variables
- Separate REQUIRED_ENV_KEYS from OPTIONAL_ENV_KEYS in load-env.js
- Update UnsplashService to use getEnvOptional() instead of getEnv()
- ENV object now only contains actual values, not 'undefined' strings
- Cleaner separation between required and optional configuration
- Add isAvailable() method to check if Unsplash API key is configured
- Hide Unsplash button in image input when service is not available
- Prevent dialog opening if API key is missing
- Improve string check to handle 'undefined' string value
- Always read system environment variables first, then override with .env file
- Ensure all required keys are always present in generated types
- Pass environment variables correctly in Docker build
- Update .dockerignore to exclude build artifacts