- Add WebdavServerCapabilities interface to detect server features
- Implement detectServerCapabilities() method in WebdavApi
- Support detection of ETags, Last-Modified, If headers, and locking
- Add comprehensive test coverage for capability detection
- Cache detected capabilities to avoid repeated requests
- Support configuration-based capability overrides
- Add documentation for WebDAV conditional headers analysis
- Maintain 100% backward compatibility with existing ETag behavior
This is Phase 2 of WebDAV non-ETag server support implementation.
All existing 180 tests continue to pass.
- dialog-edit-task-repeat-cfg: converts timestamp to local date string correctly
- date.service: utility wrapper working as intended
- metric.util: converts timestamps for metrics display correctly
- archive.service: uses current time for today string correctly
When GitLab and OpenProject return due dates as YYYY-MM-DD strings,
we should use them directly instead of converting through getWorklogStr()
which causes timezone issues. In timezones with negative UTC offset,
dates would appear as the previous day.
- GitLab: use issue.due_date directly
- OpenProject: use issue.startDate directly
* master: (93 commits)
test: add comprehensive tests for task-archive.service _reduceForArchive
fix: use _reduceForArchive consistently in task-archive.service
test: fix or remove failing
feat: re-implement task-archive restoring
feat: add helper function for reducing for archive
feat: persist overdue & later today toggle state
feat: move overdue before later today
feat: improve styling for work-view sections
feat: move overdue below
fix(sync): prevent overwrite form sync when importing safety backup
fix(sync): wait for real initial sync instead of just loaded data and current sync to be done
feat(log): adjust logs
feat(sync): improve clientId
feat(log): improve readability
build: fix e2e tests
feat: adjust log path
test: fix
fix: weird no window error
fix(logs): improve log download for Android and fix test failures
fix(log): make export work better for android
...
# Conflicts:
# src/app/plugins/plugin-api.ts
# src/app/plugins/plugin-bridge.service.ts
# src/app/plugins/plugin-hooks.ts
# src/app/plugins/util/plugin-iframe.util.ts
- Document current mobile logging limitations
- Propose phased approach for log collection and export
- Include privacy-first design considerations
- Outline implementation details and testing strategy
- Fix add-tasks-for-tomorrow service to use dateStrToUtcDate() instead of new Date()
to prevent timezone issues in negative UTC offsets
- Add comprehensive timezone tests for date utility functions:
- getDateRangeForDay: test day boundaries, DST transitions, edge cases
- getDateTimeFromClockString: test clock parsing, local time preservation
- getDateRangeForWeek: enhance with timezone, DST, and boundary tests
- Document timezone behavior analysis and decisions
- Update CI to test in Los Angeles timezone in addition to Berlin
These changes ensure consistent date/time behavior across all timezones,
preventing issues like the day of week mismatch reported in issue #4653.
Fixes issue #4653 where the day of week displayed in Worklog and Quick History
views was incorrect for users in negative UTC offset timezones (e.g., America/Los_Angeles).
The bug was caused by using `new Date(dateStr)` which interprets YYYY-MM-DD format
strings as UTC, causing date shifts in negative timezone offsets.
Changes:
- Use `dateStrToUtcDate` utility in `formatDayStr` and `formatDayMonthStr` functions
- Add comprehensive timezone tests for date formatting utilities
- Fix string to number conversion in `autoFixTypiaErrors` for task entities
- Fix TypeScript type issues in multiple test files
- Add timezone test scripts to package.json for CI testing
The fix ensures dates are parsed correctly in the local timezone regardless
of the user's timezone offset.
- Add @super-productivity/plugin-api package with TypeScript definitions
- Define core plugin interfaces, types, and manifest structure
- Add plugin hooks system for event-driven architecture
- Create plugin API type definitions and constants
- Add documentation and development guidelines