branch plan:

At the moment, we have:

3.0.1 - non-breaking update, just updates dependencies.
next - Beta branch, soon to be 3.1.0, which will contain a few fixes and changes, should be non-breaking
dev - Contains 4.0.0 release, which will contain a few breaking changes, chief among them will be the dropping of support for node 4. There will also be at least one other minor breaking change.

Keeping ^3.0.0 should be safe,. although if you're concerned, you could remove the ^ and just test the releases as they come out.

The version is a tag (3.0.1). The 3.x branch contains the changes for 3.0.1 plus the changes for the 3.1.0 beta.

dev contains the changes for 4.0.0.

master currently has some commits from 4.0, but it will contain the updated 4.0.0 code (and beyond) once that release comes out.