30fc7e5017
The reverse branch of TupleToUsersetRule ignored tuplesetDirection: it looked up the tupleset relation as outgoing-from-user even when 'in' was set, while the join honored 'in' by using t.src as the intermediate — the documented shape (intermediates hold the relation TO the user) never matched, and only a degenerate join-on-user shape produced results. The same gap existed in the compiled direct_join optimization. Fixed the fallback tupleset lookup (including the graph-neighbor path and the computed-join tupleEdge direction) and the optimized direct_join to honor tuplesetDirection in reverse mode. Matrix pins reverse-in (both evaluation paths, persistent + partial), multi_hop reverse, chain-in, union-with-chain-child, defeasible split legs, TTU value flow, and challenge-via-binary.