index/dag.js:131:~c recomputes revAncestors per rep per round and intersects
full sets. Against the real ~/src/linux lane, MAINTAINERS (797 reps, 21470
revs) did not finish in 900 s; kernel/sched/core.c (60 reps) takes 2.36 s.
The 797 reps are mostly ancestors of one another. The retry bound round <=
need.length + 1 grows with need, termination rests on the floor strictly
descending, need is never deduped and the {floor:null, above:[]} return is
unreachable. Found in the 2026-09-18 index review.
Reduce reps to their maximal elements first, then one descending sweep over rev numbers with a reachability mask; a single fixpoint over a parent-closed set with a stated failure.
reps is deduped once, into the bit assignment: a rep
named twice is one bit. The maximal-rep reduction the goal
asks for belongs to repsOf (CODE-056's frontier), not
here -- over the union of TWO tips' reps it would raise the
floor above a tip's own rep and the weave would lose that
view.{floor:null, above:[]} is replaced by a
STATED failure: when the revs share ancestors but no rev
holds the whole fold under it (a path re-rooted below the
common rev), the floor is null, above is everything and
one line says so. The old code answered such a floor and
folded the leak over its seed without a word.