taskfinder 2.15.0

A terminal user interface that extracts and displays tasks from plain text files, hooking into your default terminal-based editor for editing.
Tasks for taskfinder
#project #rust #term pri@2

For those seeing this on the repo: This is a bit of an experiment to see how hard-linking a file from my zettelkasten-like system (where I keep all of my notes and tasks and run taskfinder from) to the project repo works out. Ignore the bit at the bottom - it's a backlink to the main project file. Otherwise, you can see what I'm thinking about doing in the future.

TODO
- [ ] ?fix sorting of files by priority
  - reconsidering this: it's not unambiguously a bug. Even if all the incomplete tasks of the task set have a lower set priority, maybe the task set priority is what's important and the fact that there are incomplete tasks, and it doesn't matter what their priority is.
  - the priority of a task set is (incorrectly) being used as the file's priority when it is higher than the file even when all the incomplete tasks of that set have a lower priority. That is, if you have file with no priority, a task set within it with priority 1, and only one incomplete task within that task set (of priority > 1), the file will be sorted in the list of files as if it had a priority of 1. (If there were incomplete tasks with priority 1 within the set, this behavior would be expected.)
- [ ] allow user to ignore certain tags in count
  - this will accomplish what I was thinking about in <https://codeberg.org/kdwarn/taskfinder/issues/32> with minimum change to how the app is used (though perhaps a decent amount of change in the code). Easiest/most performant way to do this on the counting side may be to add a field to Task, "contains_ignored_tag" or
- [ ] more robust tag/search filter
  - not, and, or
  - currently, excluding by tag ("!tagname" in the dialog) works in both file mode and tasks mode, but expanding this to the other ways will probably require a different way to tackle it;
  - write tests for this
- [ ] fix date in completed task view
  - seems it is not using current date if there's been a date change since the app was started
- [ ] refresh interface when date has changed
  - though I recently got the log to update (though see task about the bug with it), the dates aren't updated unless you change the view (e.g. "today" will not be changed to "yesterday")
- [ ] add more tests
  - particularly on due/completed dates at task-set level and the inheritance of that in tasks
- [ ] watch multiple directories
  - optionally put under separate tabs. <https://ratatui.rs/examples/widgets/tabs/>
- [x] in log mode (table), add a navigation control to go down/up one month (or maybe to beginning/end of month) completed:2025-12-21
   - 30 rows up/down
- [ ] handle all expects and unwraps
  - except ones where they are absolutely ok - in this case, add comments
- [x] hard link a tasks file (with tasks only) from here to project repo as way to keep users informed of intended changes completed:2025-04-29
- [x] show number of tasks due/completed within a week in Tasks mode completed:2025-04-30
- [x] remove leading characters that identifies a task (all the variations of []) of the task text in Tasks mode completed:2025-05-12
- [x] search for tasks in Tasks mode completed:2025-05-14
- [x] add a tips section? completed:2025-05-24
- [x] filter for recurring/non-recurring tasks in Tasks mode completed:2025-05-29
- [x] tag at the taskset/task level completed:2025-06-16
- [x] slow blink overdue dates in files mode, and allow user to turn it off completed:2025-06-17
- [x] bad dates can make the program panic. Set them to very old date. completed:2025-07-01
- [x] add a way to manually order tasks completed:2025-07-05
- [x] fix task counting - in log and files mode, wasn't going to individual task level for priorities completed:2025-07-06
- [x] include a way to make a task or taskset no priority - override higher level completed:2025-07-06
- [x] fix filtering by priority in Files mode (doesn't filter at the task level) completed:2025-07-07
- [x] fix location of "no tasks" in Tasks mode - put in third column (task name); getting cut off in 2nd (order) completed:2025-07-08
- [x] log tasks in file each new day the program is running completed:2025-07-12
- [x] fix bug where previous date in log will be duplicated after date change (e.g. at Midnight) completed:2025-09-13
  - this doesn't seem to happen all the time; not sure exact circumstances
- [x] improve error message when no task found - include the directory it's looking in completed:2025-09-13
  - brought up by user who thought running it in a particular directory would search that directory
- [x] use action enum to act on user input completed:2025-10-12
- [x] add method to show only complete/incomplete line in chart (`c`), rename "toggle chart" to toggle graph so it can use `g` instead of `c` completed:2025-10-07
- [x] export upcoming tasks to ~/.config/taskfinder/upcoming.txt. completed:2025-10-30
- [x] consolidate config mode and tasks mode message_to_user into one at app-level completed:2025-11-02
- [x] add to terminal trove due:2026-01-11 completed:2026-01-11
- [x] count recurring and non-recurring tasks in log completed:2026-02-09
- [x] switch TaskCount from being usizes to Option<usize>.
- [x] include recurring/non-recurring differences in info box in log mode table completed:2026-02-12
- [x] make extract priorities more efficient completed:2026-02-13
  - every time a priority is extracted or displayed, the config file is opened, which is definitely not necessary.
- [x] fix direct index on line 59 of files_mode.rs completed:2026-02-14
- [x] do screencasts, update ratatui/tui dialog versions, release 2.14.0 completed:2026-02-15 completed:2026-02-15
- [x] add CLI with --version flag  completed:2026-04-02

## Back
[[notes/2023-12-21-2248.md]] Taskfinder