First Major Update to GTaskD

After taking some time the past few weeks to 1) catch up on sleep and 2) help launch the website for my other “fake” job, I pushed the latest version of GTaskD to production yesterday. The fact that the Canvas interface is still with us for now took some of the pressure off, but I’ve still been making upgrades as I’ve found time. Among other things, this update includes:

  • Added features
    • Added due dates to main UI (per user feedback)
    • Added truncated notes to main UI (per user feedback)
      • Added option for user to specify how long the shortened version of the notes should be
    • Option to delete entire subtree of tasks (with warning about how many tasks it would delete, as it’s a powerful but potentially dangerous feature)
    • Added support button link
  • Removed features
    • Unfortunately I had to disable the clear button in GTaskD because Google broke how clearing tasks works in the Google Tasks API. It used to simply mark a task as “hidden”, but now it does that, and deletes the reference to the parent task for every task that gets cleared. I will come up with a workaround for this, but in the meantime, I’m not going to let the changes Google made to the API break your tasks’ hierarchy.
      • WARNING: Please note that clearing tasks in the Google Tasks Canvas interface is also affected by this change, so if you care about the hierarchy of your completed tasks, don’t clear any lists until I’ve built my own backend database to sync with Google’s API.
  • UI improvements
    • Updated task arrows (per user feedback)
      • Left-click to expand/collapse subtree (changed from opening menu)
      • Right-click to open menu
      • Drag to move task and subtasks (same as before)
    • Added “Edit details” links to the right of each task when you hover over it
    • Upgraded checkboxes style
    • Added counter when tasks are loading, so users with hundreds or thousands of tasks see progress happening
  • Lots of bug fixes
    • Fixed sync issues some users were having by implementing better error handling so that there should no longer be any “stuck” tasks (i.e. “Changes left to save: 1” should now always change back to “All changes saved”)
    • Reworked code for how the task queue works to make it both more efficient and more reliable
    • Improved positioning of keyboard caret/cursor when moving up/down between tasks
    • Adjusted task width (per user feedback)
    • Fixed bugs with potential infinite loop when inserting, updating, and moving multiple tasks quickly
    • Slowed down the speed at which data is sent to the Google Tasks API to make it more consistent. Even though the API has a theoretical limit of 5 API calls/second, there’s a bug in it. When checking off a bunch of subtasks at once, the API apparently can’t keep up, even though Google’s server returns a confirmation that each task got checked off.
    • Added troubleshooting code to help a few users with login issues

Next on the list are the only things still missing from Canvas: sort by date mode, automatic linking of URLs, and adding/renaming/deleting lists, which will all be coming soon.

After that I’ve got to build my own backend database, as using the Google Tasks API directly has become too slow if you have hundreds or thousands of tasks. I’ll of course keep your tasks in sync with the Google Tasks API, but the major changes Google made in late February and again in early March make it unusable for heavy users. They also haven’t yet made their new features (repeat tasks and due times in addition to due dates) available through the API. I’m hoping that changes soon.

Another thing my own backend database will allow me to do is re-create some of the features I’d already built before the API changes made them unreasonably slow. One is expanding hidden/cleared and/or deleted tasks under only part of the subtree of task, and another is starting with only showing the top-level tasks, then expanding only the tasks you want to see at any given time. It will also allow me to create many of the features that I’ve been wanting for a long time in Google Tasks, and you can have some input too.

I’ll soon be setting up a way for users to vote on what features should come next. As you can see above, I’ve got a lot of work to do before I’ll be able to get to it, but know that I want to keep building on what we’ve already got, with your ideas helping guide the development roadmap going forward.

Please give the new version a test drive at https://tasks.gtaskd.com/ and let me know what you think. As always, any donations are always greatly appreciated, and thanks so much to those of you that have donated so far!