When searching priorities, labels, or dates, it is not possible to show completed tasks. I am sure this was simply an oversight.
Thank you for your feedback, we'll consider adding it as we improve completed task search. For now, you're welcome to request it to our Votebox: https://todoist.com/Vote/
May I ask why it is technically more difficult to display completed tasks for a search that inclues a label or a priority, versus a search for only a string like "email" ?
Basically, our tasks are objects with certain fixed priorities which we can easily track so searching for completed tasks with a certain label is a simple query such as (simplified) "get elements where completed = 1 AND label_ID = 1245678" (because labels also have their unique IDs which our app can identify), similarly, it's "where priority = 1".
Text search is much more complex, we don't search for an exact 1:1 match as then it would only work if you really match every single character, for example "get elements where completed = 1 AND task_name = Send email to John". In this example, searching for "email" would not work so we need a more sophisticated way that will match tasks that start with "email", end with it, contain it in the middle, contain words that contain "email" (such as "emails"), contain words that are parts of the query (such as "mail") and on top of that, do the same within notes of tasks, which we also search through.
Now, each time you make a search for active tasks, you search locally through the data file that's cached in your browser. Each time you click "search completed", you query our server and right now, we don't have the search mechanism we have on the front end implemented and optimized to be executed on the back-end.
Of course we'll look into adding it in future updates.
Thanks for this explanation. Would there be a way to load, say, one month of completed tasks into the frontend, which would make them searchable?
The cached data uses HTML5 (for best compatibility among all platforms) and unfortunately HTML5 local storage has limitations to how large it can be. The same data file also caches all changes you make offline for a delayed sync.
That said, it's hard to find a compromise - if someone doesn't have too many tasks, one month could not be much, for others, the active task list may barely fit the storage. Plus, what if we set it to 1 month and the task you search for was completed 1 months and 3 days ago - you could be mislead into thinking that the feature works, but the task simply isn't there if you don't know about this limitation which introduces another necessity to design the UI to inform the user what's the limitation and why exactly we've chosen 1 month. We prefer to not have it at first and then support it fully.
For now, as a workaround, please try to access the "View All Completed" list, set the maximum timeframe and use your browser's Ctrl+F search function. The benefit of this would be that this list also includes completion events of recurring tasks while the other completed search only looks for items that are actually archived (tasks moved to history).
Thanks again. I see the problem now. Are you not worried that TD will eventually run into the limitations of HTML5 as you continue to develop?
Are you planning to fully support completed task search?
HTML5 should continue to be developed and improved, so we are not that worried about that, but if need be, we can change and adapt to what we need it to be.