Tchannel should't make any assumption about the module tree in which it is in. Let's assume we have the following node_modules tree:
Both dep1 and dep2 have tchannel as dependency matching all minor version up to 4:
"dependencies": {
"tchannel": "^3.5.0"
}
Running npm install on this tree will (rightfully) mark both 3.5.0 and 3.6.0 versions as valid and matching their respective semver ranges.
I think it's a very bad practice for a module to expect a shape of the project's entire modules tree in which it is.