GothenburgBitFactory / taskwarrior

Taskwarrior - Command line Task Management
https://taskwarrior.org
MIT License
4.45k stars 305 forks source link

task number changes without listing #3608

Open thevikas opened 2 months ago

thevikas commented 2 months ago

To report a bug...

I did a marked task a as done using the number from prev task list command. Now immediately I did another task done.

I expected my intended task should have also been marked done.

A different task was picked and marked done. This ia behavivour different from prev versions. A task list done last would always keep the task numbers even after few commands. Have been doing this exactly for past 5+ years. The new version disrupts the task numbers immediately after every command. Previously we did not need to do task list everytime. we could use the prev task list showing on cli for cleanup for many tasks at once. Now this will require getting fresh list everytime after every command.

not a runtime bug

djmitche commented 2 months ago

I can't reproduce:

✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task add one
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
Created task 1.
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task add two
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
Created task 2.
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task add three
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
Created task 3.
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task 1 done
Completed task 1 'one'.
Completed 1 task.
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task 2 done
Completed task 2 'two'.
Completed 1 task.
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task 3
TASKRC override: /home/dustin/p/taskwarrior/.taskrc

Name          Value                               
ID            3                                   
Description   three
Status        Pending                             
Entered       2024-08-27 08:13:50 (6s)
Last modified 2024-08-27 08:13:50 (6s)            
Virtual tags  LATEST PENDING READY UNBLOCKED
UUID          2a961cfd-cf0d-4e91-b790-9f4a266b54cf
Urgency       0

Can you be more specific about how this occurs?

thevikas commented 2 months ago
$ task                                                                                                                                                                                                                                                                                                                                                                          
ID Age   Project       Due    Description                          Urg
 3  3w   santro         -2w   repair santro                        13.1
 5 11d   aurum.backend -10d   change phone cdoe to country code    13.1
 2  3w   aurum.backend        check all vendor and admin functions 1.12
 4  2w   banking              doo KYC with ICICI                    1.1
 1  3w                        check google ad approval             0.12

5 tasks

$ task 2 done                                                                                                                                                                                                                                                                                                                                                                   Completed task 2 'check all vendor and admin functions'.
Completed 1 task.
You have more urgent tasks.
The project 'aurum.backend' has changed.  Project 'aurum.backend' is 50% complete (1 of 2 tasks remaining).

$ task 4 done                                                                                                                                                                                                                                                                                                                                                                   Completed task 4 'change phone cdoe to country code'.
Completed 1 task.
You have more urgent tasks.
The project 'aurum.backend' has changed.  Project 'aurum.backend' is 100% complete (0 of 2 tasks remaining).

The first task which was closed was correct. The second task which was closed is wrong one. I wanted to close the one with ICICI but another aurum task got closed instead. The list shows 4 is icici. I know how dbs work but the re-numbering always waited till the task list was re-made.

djmitche commented 2 months ago

That works for me:

✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task
TASKRC override: /home/dustin/p/taskwarrior/.taskrc

ID Age   Project       Description                          Urg 
 2 40s   aurum.backend check all vendor and admin functions    1
 3 33s   santro        repair santro                           1
 4 13s   banking       doo KYC with ICICI                      1
 5  3s   aurum.backend change phone cdoe to country code       1
 1 55s                 check google ad approval                0

5 tasks
There are 30 local changes.  Sync required.
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task 2 done
Completed task 2 'check all vendor and admin functions'.
Completed 1 task.
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
The project 'aurum.backend' has changed.  Project 'aurum.backend' is 50% complete (1 of 2 tasks remaining).
✖ sofia ~/p/taskwarrior ⸨issue3605⸩
⸩ task 4 done
Completed task 4 'doo KYC with ICICI'.
Completed 1 task.
TASKRC override: /home/dustin/p/taskwarrior/.taskrc
The project 'banking' has changed.  Project 'banking' is 100% complete (0 of 1 tasks remaining).

so, something must be different.

Do you have any hooks that might be running a list command? Or perhaps some task invocation in another terminal or cronjob?

Can you turn on the affected verbose output, so it prints the Completed task # <descr>, just to check that it is really completing the ICICI task?

ksandvik commented 1 month ago

I've noticed the task numbers change if an entry was closed (or deleted), but it would make sense to try to keep the existing human ids for a longer time, for example for one hour, as there's muscle memory after listing the tasks a short moment before....

djmitche commented 1 month ago

I'm not sure what "closed" means, but deleted should not be any different than the task N done example in my previous comment.

Something, somewhere in your configuration must be listing tasks between those commands, and that's what's causing the renumbering.