What's Changed in v0.4.0
- chore(release): v0.4.0
- fix: align mobile config and tests
- chore(release): v0.4.0
- fix(desktop): replace prompt dialogs; add mobile sync timeouts
- perf(desktop): avoid Date allocation in sidebar counts
- fix(mobile): clean up retries and checklist updates
- fix(core): treat blank search queries as no filter
- fix(api): parse bearer auth header robustly
- fix(cloud): validate data on read
- fix(mobile): clear notification state when unavailable
- fix(ai): strip API key from Gemini endpoint URLs
- fix(core): handle invalid completed dates in auto-archive
- fix: resolve desktop search i18n and mobile useRef
- fix(ai): require OpenAI API key
- feat(desktop): highlight tasks from global search
- fix(core): guard against malformed storage data
- fix(desktop): serialize sync operations
- feat(mobile): highlight tasks after global search
- fix(mobile): serialize sync and log sharing checks
- a11y(desktop): make modal backdrops keyboard accessible
- a11y(desktop): mark search dialog
- fix(mobile): show truncated search hint
- fix(desktop): inline attachment and AI errors
- fix(desktop): shorten quick add placeholder
- fix(desktop): open search via custom event
- fix(settings): inline update notices
- fix(calendar): inline schedule errors
- perf(mobile): debounce checklist updates
- perf(desktop): memoize sidebar counts and tags
- chore(api): allow configurable cors origin
- fix(core): harden sorting and uuid fallback
- fix(api): enforce body limits and runtime dep
Full Changelog: v0.3.9...v0.4.0