- 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
- Remove localLamport and lastSyncedLamport from all interfaces and models
- Simplify sync logic to use vector clocks exclusively for change tracking
- Remove Lamport-based conflict detection and sync status logic
- Update UI components to remove Lamport display elements
- Clean up backwards compatibility utilities
- Fix getVectorClock import error in sync.service.ts
- Remove debug alert from sync-safety-backup.service.ts
This simplifies the sync system by eliminating the dual tracking
mechanism that was causing complications and false conflicts.
Vector clocks provide better causality tracking for distributed sync.
* fix/multiple:
feat: improve reliably for repeatable tasks 2
feat: improve reliably for repeatable tasks
fix: avoid mutation
docs: add theme colors overview
fix: date pipe error with indonesian
build: fix docker build
fix: only filter out later today tasks for today list
fix: task detail panel not opening for tasks planned for later
- Document the root cause of the failing test
- Explain why setting Lamport values to 0 fixes the issue
- Provide verification of the fix logic
- Complete documentation of vector clock implementation work
- 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