- Refactor main.rs
- Remove configuration file requirement for
config check-version
- Render comments in
task next
andlist process
- Add comment count to task formatting
- Fix table of contents links in configuration docs
- Remove config requirement for
shell completions
, thank you@WingsZeng
- Add
task comment
- Add
comment
as a menu option inlist process
- Internal code refactoring
- Add
list import
- Add colors when selecting priority
- Add
sort
flag forlist
commands
- Add issue templates
- Refine scripts for releasing new versions
- Added
shell completions
for generating shell completions with various shells
- Update CI
yaml
file - Added
project delete
- Use multi-select in
task create
when no flags are used - Standardized language used in inputs
- Added due to multi-select in
task edit
- Make all updates selected in multi-select run asynchronously
- Added labels to multi-select in
task edit
- Add multi-select to
task edit
, allowing editing of content, description, and priority
- Fetch Timezone from API rather than prompting user
- Pull labels from API if not provided when performing
list label
- Show number of tasks completed today when using
list process
- Show sync status errors correctly
- Speed up project empty by prefetching sections for all projects in parallel
- Fix bug where durations larger than u8 were not supported
- Support using
list label
with projects
- Improve
reqwest
errors - Divide page size (from term size in last commit) by two to fix prompt spacing bug.
- Add
rusty-hook
git hooks - Add ability to schedule tasks in
list process
- Fix
DateTime
sorting
- Add
list timebox
- Adjust page size of select options based on terminal size
- Don't show spinner for
list label
asynchronous requests - Add
Skip
option totod list label
- Sort the tasks returned from
list label
- Add configurable terminal bell with
bell_on_success
andbell_on_failure
- Put the error channel transmitter in
Config
, removing the need to pass around the additional argument in many places - Add
config set-timezone
- Format Markdown links as OSC8 links in supported terminals using
supports-hyperlinks
crate. Falls back in unsupported terminal - Added
disable-links
configuration option
- Changed file system calls to asynchronous
tokio
calls - Asynchronous errors are now sent to a channel, so they can be printed at the end rather than when the error occurs (which can disrupt the formatting of any menu that the user is currently in)
- Add
auto
toproject import
, which imports any projects not in config - Add additional instructions to project missing error
- Internal refactoring to use an error struct and provide better errors
- Ask for labels in
list label
when labels are not provided. Previously just showed an error - Check Cargo version asynchronously
- Make
list schedule
calls asynchronously - Make
list label
calls asynchronously - Make
list prioritize
calls asynchronously
- Remove blocking
reqwest
client
- Make
list process
calls asynchronously - Make
project empty
calls asynchronously
- Make
task quick-add
--content
flag optional (this feature was lost in the 0.6.0 API change)
- Show project name when printing a task when the task was obtained through a filter (not a project)
- Add
timeout
argument - Add
repeat
flag toproject remove
- BREAKING CHANGE Rewrote the external API, both to make it more coherent for the end user and to make it easier to add to from a development perspective. No functionality lost. The main change is that instead of using the
project
orfilter
command for searching for lists of tasks, we now use thelist
command that can take either--project
or--filter
flags. This is a change needed to proceed with planned features - Added short commands for all sub commands and flags
- Switch back to Sync API for completing tasks, because REST API doesn't handle subtasks correctly
- Config path now supports expanding
~
into the home directory - Add
config reset
command that deletes config
- Add spaces in between tasks in
process
- Show JSON responses when using
verbose
flag
- Don't
process
child tasks when the parent task is in the future - Don't
process
parent tasks when child tasks are still unchecked - Disable spinner in test
- Use REST API for completing tasks
- Added more
quickadd
examples - Don't
empty
subtasks - Add delete option to
empty
andprocess
- Stopped overwriting verbose in config when using
verbose
flag - Print task durations
- Allow custom sorting of tasks through config
- Fix bug that deleted projects in config rather than renaming them
- Add tasks remaining counter to
process
sub commands
- Improve timezone parsing to handle offsets
- Add
labels
argument totask create
- Fix reversed priorities on
task create
- Improve formatting when labelling tasks
- Sort tasks by value when processing
- Fix
schedule
andprioritize
(they were asking for projects rather than filters)
- Add labels to formatted tasks
- Improve task formatting
- Add
filter
flag totask list
- Remove
scheduled
flag fromtask list
, thefilter
flag covers this use case now. Usetoday & !no time
- Add
filter
flag totask edit
andtask next
- Add
filter label
- Add
filter schedule
- Add
filter prioritize
- Add
verbose
flag - BREAKING CHANGE changed character flag for
overdue
fromv
tou
- Put single quotes around project names when printing them in terminal
- Re-enable
project schedule
for recurring tasks - Add
skip-recurring
flag toproject schedule
- Display due string when formatting task
- Add
nosection
flag totask create
- Add
No section
option to section selection - Add
no_sections
config option
- Add details about configuration file
- Fix
spinners
config check - Don't prompt for project when there is only one project in configuration file, just use it
task create
asks for section when project has sections- Add a
natural_language_only
option to config
- Use structs for projects instead storing as a
HashMap
in config. This means that projects need to imported again withproject import
, sorry for the inconvenience. The tech debt around project handling was slowing down development - Put date picker option first when scheduling
- Remove
project add
as onlyproject import
can be used now - Rename Items to Tasks internally
- Add
all
flag toproject remove
- Add a select and date picker to
project schedule
- Don't
reschedule
overdue recurring tasks (as it wipes out the recurring data) - Add
auto
flag toproject remove
- Fix out of date version text
- Add
overdue
flag toproject schedule
- Add
due
flag totask create
- Add
project rename
- Show item count in
project list
- Add remaining task count to
task next
- Add description flag to
task create
- Add ability to skip tasks in
project prioritize
andproject empty
- Improve naming of priorities in prompt
- Add
version check
to check if Tod is on the latest version
- Add
task edit
. Thank you@BobToninho
- Improve error when no projects found in config
- Internal refactor of priority code. Thank you,
@titoOdUA
- Clarify scheduled flag in help
- Add priority flag to
task create
- Add
project import
- Remove support for legacy path
- Create random config file for each test
- Speed up CI by improving caching
- Improve formatting of tasks both individually and in lists
- Return an error during complete task if there is no next task in config. Thank you,
@titoOdUA
- Add ability to skip a task in
project process
command. Thank you,@titoOdUA
- Refactor to reduce the use of clone by passing references
- Break the whole API and move over to GitHub CLI inspired commands i.e.
task create
instead of-tp
. This opens the path to adding many new features and eases the maintenance burden
- Update tod.gif to demonstrate current feel of app
- Check for
TODO
anddbg!
on CI - Allow completing tasks as one of the options when dating them
- Include overdue tasks in date tasks functionality
- Added ability to date tasks without due dates with
-d
- Removed some
dbg!
statements accidentally left in the code
- Prompt for section when moving an item to a project with sections
- Re-releasing due to an HTTP error on publish that could not be redone with the same version number
- Add the flag
x
to get the next item one at a time with an interactive prompt - Add additional test coverage
- Improve input prompts with the
inquire
library - Update dependencies
- Add the ability to disable spinners in the config file with
"spinners": false
- Resolve new Clippy warnings
- Use a constant for the time in tests
- Add spinners to API requests
- Fix for deprecation of token passed in the request body (using Bearer Token header now), previous versions of Tod do not work now
- Add a message when the config file is created
- Differentiate between no flags and wrong flags when unrecognized input
Todoist
removed their v8 Sync API, this update switches to v9
- Update clap to new major version (it had breaking changes)
- Add a shell script for manual testing that hits the
Todoist
API
- Fix a bug where the config file is moved, but the path inside the config file is not altered
- Update dependencies
- UPDATE: DO NOT USE THIS VERSION, use 0.2.14 instead, as the config change introduces a bug
- Move config from
~/.tod.cfg
to$XDG_CONFIG_HOME/tod.cfg
(i.e.~/.config/tod.cfg
). Thank you@hyblm
! - If the config is in the old location, it will be moved to the new one
- Update dependencies
- List all tasks by using -p (projects) without other flags
- Add support for custom configuration path
- Update dependencies
- Add Dependabot
- Add timezone to test cases
- Update clap and alter deprecated code
- Update to 2021 Edition
- Update dependencies
- Get the timezone from the user and use that for formatting. (Previously defaulted to Pacific)
- Use an Item fixture for test setup
- Update dependencies
- Fix timezone for formatted date times
- Default to Pacific Timezone instead of UTC when no timezone in response (sorry for people not on the Wet Coast, I will be adding time zones to the config shortly)
- Improve publish instructions
- Update dependencies
- Update dependencies
- Use exit code 1 when an error occurs, otherwise 0
- Use the timezone specified by the
Todoist
response
- Update dependencies
- Adding releases
- Added MIT license
- Git ignore binaries
- Added some philosophical ramblings to README
- Hotfix for moving items to different projects
- Check for the latest version once per day and prompt to update with
cargo install tod
- Update dependencies
- Only show the time when a Date Time is today
- Code cleanup around error handling
- Code cleanup around handling
- Sort projects alphabetically when listing
- Additional test coverage
- Publish checklist
- Prioritize overdue items when fetching the next item
- Add an ASCII icon ↻ for when an item is recurring
- Add
--scheduled
feature - Refactor of codebase
- Add pretty assertions and
Mockito
to dev dependencies - Can now use natural language for creating tasks outside of inbox (sends a task to inbox and then moves it to the other project)
- Breaking changes to command line arguments. Switched over to Clap crate for parsing arguments which will help handle additional features
- Add
--complete
feature - Set priority of no date to 80
- Set the date as Today when it is... today
- Add
--sort
feature - Add
--prioritize
feature - Don't show items that are not today in the
--next
command - Update dependencies
- Color the item content based on the priority assigned
- Print the item description below the content if exists
- Print the date below the description if exists
- Update dependencies
-
Breaking changes to
.tod.cfg
(added new keys) -
Fetches the next item from your to-do list based on
- Date
- Time
- Priority
- If it is recurring
Items are ranked by points and the first is returned:
Date is today with no time: 100 Date is today with time in next or last 15 min: 200 Item has no priority: 2 Priority 1: 1 Priority 2: 3 Priority 3: 4 Not recurring: 50
-
Saves the config file rather than deleting and recreating
-
Add tarpaulin for test coverage
-
Add shell script
test.sh
for testing -
Increase test coverage
- The first commit!
- Add and remove projects
- Create a task in either inbox or a project