Commit graph

14104 commits

Author SHA1 Message Date
Johannes Millan
a92fbfdf43 feat(schedule): make mobile month view slightly more useful 2025-07-17 11:25:44 +02:00
Johannes Millan
be8e102f47 fix(schedule): mobile week planner 2025-07-17 11:23:00 +02:00
Johannes Millan
6edff77bb4 refactor: convert to signals 2025-07-17 11:21:36 +02:00
Johannes Millan
1d2e80e552 cleanup 2025-07-17 09:12:43 +02:00
Johannes Millan
4b7bdf1b14 feat: cleanup all old migration functions from last year and remove MODEL_VERSION and MODEL_VERSION_KEY 2025-07-16 22:20:19 +02:00
Johannes Millan
eee99938c5 14.2.0 2025-07-15 14:13:17 +02:00
Johannes Millan
fad4d69886 build: make stage behave like production 2025-07-14 23:09:10 +02:00
Johannes Millan
c94b33125b Merge branch 'feat/env-file-support'
* feat/env-file-support:
  build: cleanup
  build: final approach
  build: env file improve
  build: add env files first draft
2025-07-14 21:04:19 +02:00
Johannes Millan
2fc99afd6a build: cleanup 2025-07-14 21:03:58 +02:00
Johannes Millan
966f65e6a9 build: final approach 2025-07-14 20:52:51 +02:00
Johannes Millan
560384238d Merge remote-tracking branch 'origin/master'
* origin/master:
  Fix grammar.
  fix(notes): fix #4758 to allow scrolling in notes view drag/drop
2025-07-14 20:48:15 +02:00
Johannes Millan
930aa84bf7 feat: add glass and colorful theme 2025-07-14 20:37:07 +02:00
Johannes Millan
97dd02fe7a build: env file improve 2025-07-14 19:47:48 +02:00
Johannes Millan
920aab19ee
Merge pull request #4759 from niranjankartha/master
fix(notes): fix #4758 to allow scrolling in notes view drag/drop
2025-07-14 19:17:53 +02:00
Johannes Millan
8432e1bbb4 build: add env files first draft 2025-07-14 18:58:27 +02:00
Niranjan A. Kartha
7d50bf0869 Fix grammar. 2025-07-14 21:06:22 +05:30
Niranjan A. Kartha
dcd3ec4d4d fix(notes): fix #4758 to allow scrolling in notes view drag/drop 2025-07-14 20:53:34 +05:30
Johannes Millan
e8093154d7 build: fix settings.json 2025-07-13 21:30:31 +02:00
Johannes Millan
ffe2ca8b94 test: improve 2025-07-12 18:19:49 +02:00
Johannes Millan
8ee4344a79 fix(release): update GitHub release notes configuration
Remove non-existent release_notes parameter from GitHub Actions workflow
and update build/release-notes.md with proper installation instructions
2025-07-12 18:11:59 +02:00
Johannes Millan
074df13bf5 build: fix settings 2025-07-12 17:58:27 +02:00
Johannes Millan
a302687d11 14.1.0 2025-07-12 17:05:30 +02:00
Johannes Millan
ca47847266 fix(plugins): resolve TypeScript errors in plugin logging implementation
- Fix log property to return logger object directly instead of function
- Update plugin iframe util to handle mixed types in boundMethods
- Remove unused MatIcon import from plugin menu component
2025-07-12 16:39:17 +02:00
Johannes Millan
0cbc7e704d feat(sync-md): update meta data 2025-07-12 16:31:23 +02:00
Johannes Millan
11f119555d feat(plugins): pass Log class through plugin system to sync-md
- Add log property to PluginAPI interface and implementation
- Extend PluginBridgeService to provide Log.withContext for each plugin
- Create simplified logger helper for sync-md plugin with fallback
- Replace console.log statements in sync-md with centralized logging
- All plugin logs now integrate with main app's Log class and history
2025-07-12 16:30:45 +02:00
Johannes Millan
775d5846e6 test(sync-md): add unit tests for deleted task cleanup functionality
- Test removal of deleted tasks from parent subTaskIds
- Test creation of new update operations when no existing updates exist
- Test updating existing operations when parent already has pending updates
- Ensures proper cleanup when tasks are deleted from markdown
2025-07-12 15:57:55 +02:00
Johannes Millan
9f5d1d2be3 test(sync-md): add comprehensive unit tests for title-based task matching
- Test matching existing task by title when markdown has no ID
- Test prevention of duplicate matches for same task
- Test parent relationship changes when matching by title
- Covers edge cases and ensures proper operation generation
2025-07-12 15:46:14 +02:00
Johannes Millan
d24605f1b9 fix(sync-md): handle parent task gaining new subtasks correctly
- Fix issue where parent task was incorrectly updated with parentId: null
- Normalize undefined and null parent IDs for proper comparison
- Include temp IDs for new subtasks when updating parent's subTaskIds
- Add test case to prevent regression
2025-07-12 15:10:17 +02:00
Johannes Millan
7ca216f64a fix(task-consistency): simplify orphaned subtask deletion logic
- Iterate over all tasks and remove subtasks with non-existent parents
- Ensure explicit task updates are applied before consistency checks
- Clean up non-existent task references from tags
- All tests now pass
2025-07-12 15:04:20 +02:00
Johannes Millan
07e4f01602 feat(sync-md): general improvements 2025-07-12 14:43:53 +02:00
Johannes Millan
e6d371f01d feat(sync-md): general improvements 2025-07-12 14:37:00 +02:00
Johannes Millan
598023164d feat: add modified date to task model 2025-07-12 14:15:37 +02:00
Johannes Millan
c4e4eb7b70 fix(sync-md): use proper ParsedTask interface in performance benchmarks
- Replace incorrect partial type casting with proper mock creation functions
- Add createMockParsedTask() and createMockTask() helper functions
- Fix all test cases to use correct interfaces for ParsedTask and Task objects
- Move mock creation functions to shared scope for reusability
- Update sync manager console logs for better debugging
2025-07-12 14:03:16 +02:00
Johannes Millan
5fb3328a1f feat(sync-md): extract validate-and-fix-data-consistency-after-batch-update.ts 2025-07-12 13:58:07 +02:00
Johannes Millan
d1cab9a605 feat(sync-md): improve task-batch-update.reducer.ts 2025-07-12 13:44:28 +02:00
Johannes Millan
fcb912fbf9 fix(sync): afterCurrentSyncDoneOrSyncDisabled$ not working correctly 2025-07-12 11:39:04 +02:00
Johannes Millan
18e158d585 refactor(sync): improve syncStatus handling 2025-07-12 11:27:24 +02:00
Johannes Millan
cd9b4e1eeb refactor: cleanup omit tokens as it is not needed anymore 2025-07-12 11:14:56 +02:00
Johannes Millan
4ea38843d0 feat: add npm commands for single file operations with minified output
- Add 'npm run checkFile <file>' to run prettier and lint on a single file
- Add 'npm run prettier:file <file>' for formatting individual files
- Add 'npm run lint:file <file>' for linting individual files
- Add 'npm run test:file <file>' for running tests on individual spec files
- Create wrapper scripts that show minimal output on success, full output on errors
- Update CLAUDE.md to emphasize using checkFile command frequently
- Add 25-second timeout for test execution to prevent hanging
2025-07-12 10:48:51 +02:00
Johannes Millan
6f40e18d34 feat(plugin): make svg menu icon work 2025-07-11 21:43:04 +02:00
Johannes Millan
0d2ac37b82 fix(task-batch-update): respect explicit subTaskIds updates in batch operations
When batch operations include explicit subTaskIds updates, the reducer now trusts
those updates rather than rebuilding subTaskIds based on parent-child relationships.
This fixes issues where subtasks are moved to root level but the parent's subTaskIds
array isn't properly updated.

- Track tasks with explicit subTaskIds updates
- Skip automatic subTaskIds rebuilding for those tasks in validateAndFixDataConsistency
- Ensure parent tasks can have their subtask lists explicitly modified
2025-07-11 21:36:53 +02:00
Johannes Millan
7678fd9f04 test(sync-md): add comprehensive test suite for subtask parent-child relationships
- Add tests for subtask cleanup when moved to root
- Add tests for parent-child relationship changes
- Add tests for production bug scenarios
- Add debug test files for subtask issues
- Replace failing tests with placeholders pending fix
2025-07-11 21:21:08 +02:00
Johannes Millan
ea38eb7532 test: add unit tests for task-batch-update reducer subtask ID updates 2025-07-11 21:14:52 +02:00
Johannes Millan
351407472e feat(sync-md): handle multiple subtasks to parent case 2025-07-11 21:02:15 +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
Johannes Millan
9b8c810210 test: add comprehensive tests for task-archive.service _reduceForArchive
- Add tests for _reduceForArchive method behavior
- Test deleteTasks with proper state reduction
- Test updateTasks with iterative state reduction
- Test roundTimeSpent with proper state reduction
- Ensure consistent state reduction across all methods
2025-07-11 18:37:16 +02:00
Johannes Millan
9b845191fa fix: use _reduceForArchive consistently in task-archive.service
- Fix deleteTasks to pass ArchiveModel instead of TaskState
- Refactor updateTasks to properly iterate and maintain ArchiveModel structure
- Ensure all archive operations use consistent state reduction
2025-07-11 18:31:15 +02:00
Johannes Millan
7305f8ad70 test: fix or remove failing 2025-07-11 18:20:47 +02:00
Johannes Millan
9a18ec174c feat: re-implement task-archive restoring 2025-07-11 17:09:20 +02:00
Johannes Millan
f329a60079 fix(sync-md): fix subtask cleanup when tasks change parents
- Add tracking for tasks that change parents during sync operations
- Clean up old parent's subTaskIds when tasks are moved to different parents or root level
- Group cleanup operations by parent to prevent overwriting updates
- Add comprehensive test suite for subtask cleanup scenarios

This fixes the issue where tasks moved from being subtasks to root-level tasks
would still be referenced in their old parent's subTaskIds array, causing
task duplication in the UI.

Resolves the replication error where subtasks appeared both as root tasks
and as children of their original parent.
2025-07-11 17:00:30 +02:00