- 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