ManicTime v4.0 changes

What's new in this version:

Move to SQLite database engine and a new database design

On the surface this will not look like a big release, but it was an enormous effort for us. Up until now, ManicTime worked on MS SQL Ce database, from v4.0 on it will work on SQLite. This release is not just a different database engine, it is a completely different database. We spent a lot of time changing how ManicTime works internally, while trying to keep every existing feature of ManicTme working with the new database.

Because data has to be migrated to a different database, it will take some time before the upgrade is complete (upgrade time depends on the size of your database). Upgrade will go through these steps:
  1. First it will upgrade the data it needs to start tracking again, this should be finished fairly quickly. After that, the tracker will start tracking your usage, but ManicTime will not yet be fully functional.
    Tracker database upgrade
  2. At this point you can start ManicTime, but you won't be able to use it yet. Reports will still be generating for some time. You will see the progress in ManicTime.
    Reports database upgrade
  3. After upgrade completes, you can use all features of ManicTime, but you still might experience some slowness. That's because there are still a few things going on in the background, which should complete soon. After this finishes, the upgrade is complete and ManicTime should work smoothly.

One Tag timeline per user on ManicTime Server

Different database design is now a lot more compatible with ManicTime Server. This helps in two ways:
  • communication with ManicTime Server is more efficient
  • there is now only one Tag timeline per user

If you've used ManicTime server before, you've probably noticed that each machine had its own Tag timeline. In one of the previous versions of ManicTime Server we also introduced Server tag timeline, which was used if you've created some tags via web UI. That meant that each user had as many tag timelines as he had machines, plus the server Tag timeline. If the user wanted to make changes to Tag timeline, he/she had to make changes on the device where the tags were first created.
Now you can have only one tag timeline per user. Lets say that you have two machines and an Android phone connected to ManicTime Server. One tag timeline means that if you make tags on one machine, those same tags are synced to all other machines, where you can also edit them. So from now on there is only one Tag timeline by default.
Same tag timeline on client
Same tag timeline on server


If you are already sending data to ManicTime Server, then this will not be automatically converted to one Tag timeline.
To use this feature, install ManicTime v4.0, then:
  1. Go to Server configuration and uncheck Tag timeline sending.
    Edit server settings
    Uncheck Tag timeline sending
  2. Edit again, then recheck Tag timeline
    Recheck Tag timeline sending
    Then you will probably see a warning, which will tell you that all your tags will now be joined
    Join tags warning
  3. Now you can change the tag on the server or on any other machine.

Undo

There were a lot of requests for undo over the years. Its one of those hard to do features, but the new database design allowed us to add this feature fairly easily.
On most actions, you will now see an Undo button, which will show up for about 10 seconds.
Undo

Minimum tracking activity duration

Since the first version, ManicTime only tracked applications which were in use for more than 5 seconds. So if you quickly switched to one application and back to the previous one, ManicTime did not pick this up. We had a few requests over the years to make this setting public, so that users could change to a longer interval. Longer interval means that the captured data is not as accurate, but ManicTime generates less of it.
You can now change this setting in Settings, Tracking.
Minimum tracking activity duration