mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-09 16:14:40 +00:00
The worklist re-enqueued a node's dependents on every >convergence nudge, so on a dense graph its total work scaled with the in-degree of the churning core — an offline score over the full ~419k-node / 19.3M-edge Vitor graph ran 640M+ node-visits and still had not converged after 32 minutes. Replace it with synchronous Gauss-Seidel sweeps over all nodes (in-place updates, so trust flows outward within a sweep), ending when no node moves more than the convergence delta. Same per-node formula, same 0.0001 threshold, same unique fixed point as NosFabrica's Brainstorm reference (which iterates the same way) — verified byte-identical by the existing GrapeRankTest suite — but each node is touched once per sweep instead of once per churning rater, cutting the work by roughly the average in-degree. Progress now reports per-sweep (node-updates + nodes-still-moving) and the CLI surfaces the sweep count. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RWk2ZMrGBSr4WenKgwqmbB