Clean up done todos to speed up the tasks plugin?

Like many users of the tasks plugin with many many tasks, I am facing a lot of performance issues, even if it’s getting a bit better recently (thanks for the plugin dev contributor’s hard work !), I would like to try “marking off” the thousands of “done” todos that are certainly slowing down the plugin code.

I do not want to purely “delete” the tasks because they contain precious information, but just replace the - [x] but something else, such as - [z], so it will not be processed by the tasks plugin anymore.

Is there a plugin for that? I checked the Janitor or File Cleaner plugins but they don’t seem to do that kind of cleanup.

Of course, I can open the vault into VSCode and make a big “replace all”, but ideally I would like to clean up only tasks done before a certain date…

Any ideas?

My tasks are mainly in my journal notes, which resides in a specific folder, and the notes are in addition tagged with the year and month. This means that when I do task queries they’re always limited to the folder, and the tag, and hopefully that’ll jeep the performance good even in a few years into the future as the search is limited.

If I discover it’ll not be good, I’m thinking my first step of action will be to move older journals into a different folder. Like moving all of last years tasks into a “journal archive” folder, possibly with the year as subfolder. Such a scheme I think should eliminate most performance issues related to having loads of tasks around.

Unfortunately, my practice is different. I like to put my tasks “in context” wherever the notes are, so they could be anywhere in the vault…

Hmmm, that does make it a little more difficult. And I reckon you don’t store the completion date of your tasks either?

If not, maybe it could be an option to do a query for completed tasks where the modification date of the note is more than a year ago, and in that query store some metadata which would make it easier for another script/tool to process and change the tasks into something else.

On another note, even with notes spread all over the vault I reckon you could tag each vault with a date tag (of sorts), and then every now and then you could look through all open tasks of a given period, and migrate those not done, and move your queries to only look for tasks in the new period.

Using VSCode, I can see that I have 2558 “done” todos spread into 388 note files in many different directories.

I think my only easy motion is to do a mass “find & replace in files” using VScode. That’s the beauty of MD files after all…

If I replace - [x] by - [z] I don’t lose any information anyway…

I will try.

Uhm… - [x] and - [z] it’s the same. Both are processed as “done” by the tasks plugin. I guess that any line with - [ ] with any character between the brackets is equivalent. But if I use - [xx] instead, it works…

Capture d’écran 2022-11-28 à 16.32.16