Actually it is not resourcing each time you run `cd`. When the `activate.sh` is sourced, `cd` is overrided by the one from `autoenv`. You can try `which cd` to observe the change.

But I do like your pull request, although I cannot decide to merge or not.