Commit graph

206 commits

Author SHA1 Message Date
Johannes Millan
2e7bd3a660 docs: update operation log docs with B-Lite implementation status
Mark Phase 0.1, 0.2, and 0.2.5 as complete:
- Legacy sync stale data: Implemented PfapiStoreDelegateService
- Feature flag: useOperationLogSync already existed
- SaveToDbEffects gating: Now filtered by feature flag

Update architecture to reflect B-Lite delegate pattern:
- Exclusive persistence based on feature flag
- PfapiStoreDelegateService reads from NgRx store
- Backward compatibility flush when disabling op-log mode
2025-12-12 20:46:12 +01:00
Johannes Millan
9f70a28bf5 feat(sync): implement B-Lite PFAPI integration for operation log sync
When useOperationLogSync is enabled:
- SaveToDbEffects is completely disabled (no writes to 'pf' database)
- Legacy sync (WebDAV/Dropbox) reads from NgRx store via delegate
- Non-NgRx models (reminders, archives, plugins) are loaded from 'pf' DB on-demand

Key changes:
- Add PfapiStoreDelegateService to read sync data from NgRx store
- Wire up delegate in PfapiService based on useOperationLogSync config
- Flush NgRx state to 'pf' database when disabling op-log mode

This approach simplifies PFAPI/OpLog integration by making SUP_OPS
the write path while keeping PFAPI functional for legacy sync.
2025-12-12 20:46:12 +01:00
Johannes Millan
88a987b184 docs: plan operation logs again 10 2025-12-12 20:46:12 +01:00
Johannes Millan
d174eae989 docs: plan operation logs again 9 2025-12-12 20:46:06 +01:00
Johannes Millan
4ef436be74 feat(sync): implement Phase 0 critical blockers for operation log
- Add useOperationLogSync feature flag to SyncConfig (default: false)
- Restore and gate SaveToDbEffects by feature flag
- Add provider gating in sync.service.ts (op-log disabled for all providers)
- Add delegate pattern in Pfapi.getAllSyncModelData() for NgRx reads
- Add dependency retry queue in OperationApplierService (max 3 retries)
- Update tests to provide required mocks

When useOperationLogSync is false (default), legacy sync behavior is
preserved. This ensures backward compatibility while laying groundwork
for future operation log sync support.
2025-12-12 20:46:05 +01:00
Johannes Millan
849a6cac4b docs: plan operation logs again 8 2025-12-12 20:46:05 +01:00
Johannes Millan
254df59615 docs: plan operation logs again 7 2025-12-12 20:46:05 +01:00
Johannes Millan
0f33d14df1 docs: plan operation logs again 6 2025-12-12 20:46:05 +01:00
Johannes Millan
f9464b347a docs: plan operation logs again 5 2025-12-12 20:46:05 +01:00
Johannes Millan
a270e7fda8 docs: plan operation logs again 4 2025-12-12 20:46:05 +01:00
Johannes Millan
9c12165e46 docs: plan operation logs again 3 2025-12-12 20:46:05 +01:00
Johannes Millan
9f1f0bc7a4 docs: plan operation logs again 2 2025-12-12 20:46:05 +01:00
Johannes Millan
f8e0160801 docs: plan operation logs again 1 2025-12-12 20:46:05 +01:00
Johannes Millan
0dd40a70c0 docs: analysis of delta sync 3 2025-12-12 20:46:05 +01:00
Johannes Millan
cb03bba281 docs: analysis of delta sync 2 2025-12-12 20:46:05 +01:00
Johannes Millan
ad31746db9 docs: analysis of delta sync 2025-12-12 20:46:05 +01:00
Johannes Millan
e1679d4b16 docs: plan operation log sync 14 2025-12-12 20:46:05 +01:00
Johannes Millan
911051fbf2 docs: plan operation log sync 12 2025-12-12 20:46:05 +01:00
Johannes Millan
7d47f37803 docs: plan operation log sync 11 2025-12-12 20:46:05 +01:00
Johannes Millan
22fa68e609 docs: plan operation log sync 10 2025-12-12 20:46:05 +01:00
Johannes Millan
17f1395d1b docs: plan operation log sync 9 2025-12-12 20:46:05 +01:00
Johannes Millan
f459f1e0c7 docs: plan operation log sync 6 2025-12-12 20:46:05 +01:00
Johannes Millan
21e1af25ef docs: plan operation log sync 3 2025-12-12 20:46:05 +01:00
Johannes Millan
5d69ba4761 docs: plan operation log sync 2 2025-12-12 20:46:05 +01:00
Johannes Millan
4679439084 docs: plan operation log sync 2025-12-12 20:46:05 +01:00
Johannes Millan
93c76d5cdb feat(syncServer): implement JWT authentication and user registration/login functionality 2025-12-12 20:46:04 +01:00
Johannes Millan
8e65d7263b feat(syncServer): refactor server functions to use arrow function syntax and improve error handling 2025-12-12 20:46:04 +01:00
Johannes Millan
ed1bc59a0a feat(syncServer): update plan 2025-12-12 20:46:04 +01:00
Johannes Millan
dfc84a2f88 feat(syncServer): add configuration file and enhance server setup 2025-12-12 20:46:04 +01:00
Johannes Millan
648ce47249 docs: add cool new plans 2025-12-07 13:41:55 +01:00
Mustache Games
273a1077d7 docs(plugin-dev): improve whitespaces
- Blank lines in Quick Start JS (after log/notification/counter)
- Spacing in Data Operations subsections (Tasks/Projects/Tags/Simple Counters)
2025-11-17 21:08:02 +02:00
Mustache Games
afa2f60450 docs(plugin-dev): document simple counters API
- Add "Simple Counters" subsection with basic/full model tables, validation/examples (regex, dates)
- Integrate counter demo in Quick Start (`plugin.js`: set/inc on button, snack update)
- Tie-in Hooks ACTION example: increment counter on task add
- List community plugins in Resources (`counter-tester-plugin`, `sp-reporter`)
- Clean Data Operations formatting
2025-11-17 20:55:11 +02:00
Johannes Millan
05f088a900 docs: add performance report 2025-11-13 18:23:50 +01:00
johannesjo
a0761732c2 docs: clarify certificate selection with 'For use in Xcode 11 or later' description 2025-11-10 16:06:58 +01:00
johannesjo
348dfeac82 docs: add comprehensive Mac App Store code signing guide
Documents the complete solution for certificate/provisioning profile matching issues with electron-builder and Apple's MAS validation.
2025-11-10 15:59:24 +01:00
johannesjo
63b021d942 build: make mas build work and fix guide 2025-11-09 16:35:09 +01:00
johannesjo
96a36a82ff docs: update update guidex 2025-11-08 13:05:38 +01:00
Johannes Millan
b77f407cc5 16.2.1 2025-11-01 13:22:58 +01:00
Johannes Millan
8c0624cbf7 docs: add info about 5 star ratings 2025-10-23 10:29:55 +02:00
rugk
6b23abb86a
Merge branch 'master' into patch-1 2025-10-08 18:30:02 +02:00
Dmitriy Shushlebin
b923160ff3
add other link 2025-10-02 08:07:06 +03:00
rugk
6781c71f84
Properly show other places in how-to-rate.md
Without it or at least `  ` (two spaces) at the end, it is shown in one line which is not really beautiful.
2025-09-25 11:05:50 +02:00
Johannes Millan
cd5b38a6c9 docs: cleanup 2025-08-03 10:40:48 +02:00
Johannes Millan
5b8c33caa0 feat(webdav): add server capability detection for non-ETag servers
- 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.
2025-07-18 12:11:05 +02:00
Johannes Millan
c346694055 test: add timezone tests for getWorklogStr occurrences that work correctly
- 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
2025-07-17 20:55:46 +02:00
Johannes Millan
d22d0ff97f fix(issue-providers): use date strings directly to avoid timezone conversion issues
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
2025-07-17 17:53:25 +02:00
Johannes Millan
966f65e6a9 build: final approach 2025-07-14 20:52:51 +02:00
Johannes Millan
97dd02fe7a build: env file improve 2025-07-14 19:47:48 +02:00
Johannes Millan
8432e1bbb4 build: add env files first draft 2025-07-14 18:58:27 +02:00
Johannes Millan
7dcc9b0736 Merge branch 'master' into feat/sync-md
* 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
2025-07-11 20:00:08 +02:00