Problem
I noticed that when a dependency, example.one, was removed from another namespace, example.two, example.one still showed up under [::track/deps :dependents 'example.two] in the tracker after an invocation of repl/scan.
After digging into this for some time, I saw that the implementation of remove-node in MapDependencyGraph didn't make any changes to the :dependents attribute.
This seems like a mistake to me, as the remove-node docstring reads:
Removes the node from the dependency graph without removing it as a
dependency of other nodes. That is, removes all outgoing edges from
node.
The implementation of remove-node follows:
(remove-node [graph node]
  (MapDependencyGraph.
    (dissoc dependencies node)
    dependents))
This removes outgoing edges from dependencies, but if dependents is effectively an inverse of dependencies, then I'd expect to see some sort of removal from dependents as well. Instead, dependents remains unmodified.
Proposed Fix
If this is indeed a bug, and not a misunderstanding on my part, I have a fix here along with a couple tests on my behavioral-tests branch that removes node from values in the dependents map.
Does this align with the expected behavior of remove-node, or am I misunderstanding the intended behavior of this function?