johannesjo / super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.
http://super-productivity.com
MIT License
11.8k stars 915 forks source link

Schedule of task disappears when another tag is added #2937

Closed KatrinIhler closed 6 months ago

KatrinIhler commented 10 months ago

I've noticed this a couple of times now, and this can lead to a meeting being missed if you don't double-check the schedule of the task.

To reproduce:

  1. Create a task with at least one tag in the Today view
  2. Schedule task for a time in the future
  3. Add another tag to the task
  4. The schedule immediately disappears and has to be recreated

This behavior persists consistently for me. There is no error in the console log.

If you can't reproduce this error, please let me know and I will supply more information. :)

github-actions[bot] commented 10 months ago

Thank you very much for opening up this issue! I am currently a bit overwhelmed by the many requests that arrive each week, so please forgive me, if I fail to respond personally. I am still very likely to at least skim read your request and I'll probably try to fix all (real) bugs if possible and I will likely review every single PR being made (please, give me a heads up if you intent to do so) and I will try to work on popular requests (please upvote via thumbs up on the original issue) whenever possible, but trying to respond to every single issue over the last years has been kind of draining and I need to adjust my approach for this project to remain fun for me and to make any progress with actually coding new stuff. Thanks for your understanding!

Jagdfalke commented 7 months ago

I could reproduce this behaviour with the current version 8.0.1. This is still an issue.

johannesjo commented 7 months ago

I am unable to reproduce this. Could you describe in a bit more detail what you are doing to make this happen? How do you schedule? What kind of tag are you adding (new one or existing one)? What is it's name? etc.

Jagdfalke commented 7 months ago

I've followed the exact steps that @KatrinIhler provided. I've used only existing tags and I've used the task dialogue to schedule the task.

However, following the exact same steps right now, I am not able to reproduce the issue anymore. @KatrinIhler can you help out?

Jagdfalke commented 7 months ago

Okay, I got it. I can reproduce it again, if I right click the task to schedule it. This will directly trigger the schedule dialogue to appear. If I add another tag to the task after this, the scheduled time will disapper.

johannesjo commented 6 months ago

Still unable to reproduce this :( There should be some logs in the console starting with shortSyntax. Those should be helpful.

Jagdfalke commented 6 months ago

This is what it looks like in the console. I've only included the steps to schedule the task and add another tag to the task afterwards:

dialog-add-task-reminder.component.ts:163 false
dialog-add-task-reminder.component.ts:163 false
task.service.ts:762 1714114800000 1714114800000
task.service.ts:763 0
task.service.ts:764 {plannedAt: 1714114800000, remindCfg: 'AtStart'}
action-logger.reducer.ts:11 [Task] Schedule {task: {…}, plannedAt: 1714114800000, remindAt: 1714114800000, isMoveToBacklog: false, type: '[Task] Schedule'}
reminder.service.ts:231 saveReminders (2) [{…}, {…}]
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'reminders', data: Array(2), type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Task] Update Task {task: {…}, type: '[Task] Update Task'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Task] Update Task {task: {…}, type: '[Task] Update Task'}
short-syntax.effects.ts:84 shortSyntax {taskChanges: {…}, newTagTitles: Array(0), remindAt: null, projectId: undefined}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Task] Update Task {task: {…}, isIgnoreShortSyntax: true, type: '[Task] Update Task'}
action-logger.reducer.ts:11 [Task] Update Task Tags {task: {…}, newTagIds: Array(3), oldTagIds: Array(2), type: '[Task] Update Task Tags'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'tag', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Task] UnSchedule {id: '3K_CPd7Mo2qtZ9cfgnRUy', reminderId: 'TsqkZ7WUUJwB46VA6sNZW', isSkipToast: true, type: '[Task] UnSchedule'}
reminder.service.ts:231 saveReminders [{…}]
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'reminders', data: Array(1), type: '[Persistence] Save to DB'}
action-logger.reducer.ts:11 [Task] Update Task {task: {…}, type: '[Task] Update Task'}
action-logger.reducer.ts:11 [Persistence] Save to DB {dbKey: 'task', data: {…}, type: '[Persistence] Save to DB'}
johannesjo commented 6 months ago

Finally was able to solve it. Problem was a special functionality that unschedules tasks if they get the today tag added and are scheduled for the default day start time on the current day. Thank you very much for your help @Jagdfalke !