Johannes Millan
09492f5243
fix(tasks): fix deadline reminders showing empty dialog and re-triggering infinitely
...
Strip _deadline suffix from reminder IDs before passing to the dialog so
task lookups succeed. Add isDeadlineReminder flag so the dialog can use
deadlineRemindAt for display, clear it on dismiss, and snooze by updating
the deadline reminder time instead of the schedule reminder.
2026-03-14 13:04:44 +01:00
Johannes Millan
0f12bcb113
feat(tasks): add deadline fields to task model
2026-03-14 13:04:44 +01:00
Johannes Millan
4c0c23d033
feat(github): add two-way sync framework with auto-create issues
...
Implement a flexible two-way sync system for GitHub issues:
- Add field mapping framework (isDone↔state, title↔title, notes↔body)
with configurable sync directions (off/pullOnly/pushOnly/both)
- Push field changes to GitHub on task update via NgRx effect
- Auto-create GitHub issues for new top-level tasks (opt-in toggle)
- Add adapter interface for future provider extensibility
- Add conflict detection using last-synced baseline values
2026-03-03 11:27:20 +01:00
Johannes Millan
bfdac6d19a
refactor(op-log): merge LWWOperationFactory into ConflictResolutionService
...
- Consolidate LWWOperationFactory methods (createLWWUpdateOp, mergeAndIncrementClocks)
into ConflictResolutionService to reduce service count
- Remove redundant caching in SuperSyncProvider (SyncCredentialStore already caches)
- Remove _onBlurWhenNotTracking$ sync trigger from SyncTriggerService
- Add documentation for dueDay/dueWithTime mutual exclusivity pattern
- Change docker-compose postgres port to 55432 to avoid conflicts
2026-01-29 18:24:15 +01:00
Johannes Millan
ce91c8b1dc
Merge branch 'master' into feat/operation-logs
...
Resolve merge conflicts:
- package.json: use @types/node@^22.19.5
- sync-form.const.ts: keep eslint-disable for naming convention
- global-config.effects.ts: remove extra blank line
- unlink-all-tasks-on-provider-deletion.effects.ts: keep deprecation notice
- auto-fix-typia-errors.ts: keep better-typed getValueByPath
- undo-task-delete.meta-reducer.spec.ts: keep getLastDeletePayload import
- Accept deletions for files refactored into operation-logs architecture
2026-01-10 17:08:09 +01:00
Johannes Millan
b69dded9f1
chore(deps): update minor/patch dependencies
...
- prettier: 3.5.1 → 3.7.4
- pretty-quick: 4.1.1 → 4.2.2
- stylelint: 16.18.0 → 16.26.1
- @playwright/test: 1.56.1 → 1.57.0
- jasmine-core: 5.10.0 → 5.13.0
- eslint-plugin-prettier: 5.2.1 → 5.5.4
- chrono-node: 2.8.3 → 2.9.0
- ical.js: 2.1.0 → 2.2.1
- electron-builder: 26.3.3 → 26.4.0
- core-js: 3.39.0 → 3.47.0
- And other minor updates
Applied prettier formatting changes from v3.7.4.
2026-01-10 16:16:47 +01:00
Johannes Millan
709d40c829
fix(tasks): include reminderId on TaskCopy
2025-12-12 20:48:40 +01:00
Johannes Millan
6839c20c27
refactor(task): remove deprecated reminderId field
...
The reminderId field was deprecated in favor of remindAt. After migration
4.6, tasks store reminder timestamps directly in remindAt instead of
referencing a separate Reminder entity.
Changes:
- Remove reminderId from TaskCopy interface and plugin-api Task type
- Update all code checking reminderId to use remindAt instead
- Update data repair to clear legacy reminderId values
- Remove obsolete reminderId validation (reminders array is now empty)
- Update migration files to handle legacy types
- Update tests to reflect new behavior
2025-12-12 20:47:40 +01:00
Johannes Millan
3129c1dbca
test(oplog): add persistent-action tests and fix compilation/lint errors
...
- Add unit tests for isPersistentAction type guard.
- Fix compilation errors in task scheduling components caused by removed reminderId/removeReminderFromTask.
- Fix type error in create-sorted-blocker-blocks.spec.ts.
- Fix lint errors in various files.
2025-12-12 20:46:27 +01:00
Johannes Millan
794a13a76a
fix: inline scheduling of Overdue tasks results in abnormal behavior
...
Closes #5656
2025-12-05 12:02:56 +01:00
Johannes Millan
bc00f3da9a
feat(issue): improve legacy compatability #5056
2025-09-03 15:16:35 +02:00
Milosch Füllgraf
47eeed90fd
add support for subtasks to issue providers
2025-08-10 21:51:16 +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
598023164d
feat: add modified date to task model
2025-07-12 14:15:37 +02:00
Johannes Millan
d4d81bf511
feat(plugin-api): create foundational plugin API package
...
- 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
2025-06-27 18:13:19 +02:00
Johannes Millan
d978d33cd7
feat: add Later Today section with disabled drag-and-drop #4382
...
Implement collapsible "Later Today" section on work-view page that shows:
- Main tasks scheduled for later today
- Subtasks scheduled for later today (even if parent isn't)
- Tasks hidden from normal undone task list
- Chronological ordering by earliest scheduled time
- Disabled drag-and-drop functionality
Includes comprehensive test coverage with 14 test cases covering edge cases,
parent-subtask relationships, and sorting behavior.
2025-06-22 16:54:17 +02:00
Johannes Millan
8a35067d77
test: fix all unit tests
2025-05-11 17:13:18 +02:00
Johannes Millan
976aeb09ee
feat(inbox): use inbox project rather than tag
2025-05-10 16:40:03 +02:00
Johannes Millan
3fa8f2ba82
feat(dueDate): make drag and drop work
2025-05-03 13:48:22 +02:00
Johannes Millan
309334c79a
feat(dueDate): outline new add tasks for tomorrow stuff
2025-05-01 13:19:55 +02:00
Johannes Millan
96fe0ca342
refactor(dueDate): use new dueDay to simplify things
2025-05-01 13:19:55 +02:00
Johannes Millan
f4b9cef218
feat(dueDate): rename again
2025-05-01 13:19:55 +02:00
Johannes Millan
b8976e54ce
feat(dueDate): rename plannetAd to due
2025-05-01 13:19:55 +02:00
Johannes Millan
77514141b7
feat(dueDate): outline model changes
2025-05-01 13:19:55 +02:00
Johannes Millan
4e0940f53b
feat(pfapi): improve migration and avoid potential error cases
2025-04-14 15:54:50 +02:00
Johannes Millan
fb3a3810c5
feat(task): improve ShowSubTasksMode model by renaming it and reducing data by allowing undefined
2025-04-12 13:59:21 +02:00
Johannes Millan
40cd575f88
feat(pfapi): add task model validation and proper migration
2025-04-12 13:59:20 +02:00
Johannes Millan
3d132f13f7
feat(pfapi): make most basic validations via typia work
2025-04-12 13:59:17 +02:00
Trang Le
67fd3116c6
add property to check whether a planned task has scheduled time or not
2025-03-08 15:56:27 +07:00
Johannes Millan
3113ad0f8c
feat: make task data smaller
2025-03-02 16:43:01 +01:00
Johannes Millan
2d199e02b2
feat(issueProvider): proof of concept for dropping search items
2024-11-29 21:06:20 +01:00
Johannes Millan
47b124c8d8
fix: don't open side panel when dialog-task-detail-panel is used
2024-09-02 20:53:27 +02:00
Johannes Millan
bd3d9c1c08
refactor: rename remaining occurrences of taskAdditionalInfo
2024-08-24 10:06:46 +02:00
Johannes Millan
9eb622f86a
refactor: task additional info to task detail panel
2024-08-23 15:00:05 +02:00
Johannes Millan
215475b574
feat: rework scheduled/repeat page
2024-08-23 15:00:05 +02:00
Johannes Millan
d83c5c3b65
feat(schedule): make day indication work for autoflow
2024-08-09 21:30:02 +02:00
Johannes Millan
935f7fa555
feat(horizontalTimeline): make plan for day work better
2024-08-09 21:28:17 +02:00
Johannes Millan
c66180d1f9
test(2FileSync): outline super basic unit tests for service
2024-07-06 18:29:58 +02:00
Johannes Millan
83ae398f3e
feat(2FileSync): outline basic stuff
2024-07-06 18:29:58 +02:00
Johannes Millan
4cbb523472
feat(calendarIntegration): add isueProviderId for calendar tasks and make adding from timeline work correctly
2024-01-23 13:12:20 +01:00
Johannes Millan
b34886de6d
feat(gitlab): save and use info about already tracked data for issue provider tracking
2023-12-08 12:45:12 +01:00
Johannes Millan
61cfad0c52
feat: ask to update all previous instances if task repeat settings change
2022-01-04 12:22:52 +01:00
Johannes Millan
0dcd9b3e65
refactor: improve task model checks by always requiring subTasks property for TaskWithSubTasks
2021-07-07 14:48:07 +02:00
Johannes Millan
f3ffc81586
feat(repeat): also make remind at configurable
2021-06-24 17:40:22 +02:00
Johannes Millan
00458c0e98
refactor(schedule): extract task reminder options
2021-06-24 17:40:22 +02:00
Johannes Millan
9e7dfce590
feat(task): remove not needed optional chaining
2021-05-26 21:03:18 +02:00
Johannes Millan
35a2616c64
feat(timeline): also show sub tasks if parent is planned
2021-05-12 21:05:45 +02:00
Johannes Millan
584915a630
feat(timeline): make splitting logic work
2021-05-12 21:05:16 +02:00
Johannes Millan
9a5f346e05
feat(timeline): first draft of new sorting strategy
2021-05-12 21:05:16 +02:00
Johannes Millan
43022f8e83
refactor: format everything with prettier
2021-05-06 22:37:37 +02:00