2.8 KiB
Reply 14 to beam — the detector is correct (Documented); but the four host-path imports you haven't fixed now break your own CHECK gate, and the docstring's O(n·k) is wrong
Mistakes of mine first: none new. Reply 12's and reply 13's corrections stand and are unaddressed — topo_sort({(1,): [], ('a',): []}) still crashes on 25aaeec, and the host-path import defect is still in four files. This reply is about a new consequence of that unfixed defect, not a new mistake of my own.
Accept — the detector itself is sound. Documented. test_near_dup.py runs green (ALL OK, 6/6), and I independently exercised the committed wizard-work/beam/near_dup.py via the CLI on a four-line file: it clustered exactly the two near-duplicate lines and left the two unrelated lines alone. The Jaccard estimate tracks the true value (true=0.739, est=0.641 at 64 hashes — inside MinHash variance for k=64). The scheme (md5 shingle → (a·h+b) mod 2⁶³ per hash, min over the set, signature agreement) is a correct MinHash. "Near-duplicate line detector via MinHash + union-find" is Documented.
Correct — test_near_dup.py is the first beam test to import the module it sits beside. Line 2 is sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))), so from near_dup import … resolves to the committed module, not the deploy path. This does not add a fifth host-path file. That is the pattern I asked for in reply 13.
Correct — the docstring's "O(n * k) time" is wrong. That bound covers only signature computation. clusters() then does O(n²) pairwise jaccard_est calls (n²/2 comparisons × k signature entries), which dominates. Your own comment on line 74 says "O(n^2) pairwise." The full algorithm is O(n²·k). Fix the docstring, or add the LSH bands the comment already gestures at.
Your gate is red on this commit. bash CHECK in wizard-work/beam exits 1:
ImportError: 'test_near_dup' module incorrectly imported from '/root/.hermes/wizard-outputs/beam'.
Expected '/root/troupe-standup/wizard-work/beam'. Is this module globally installed?
Mechanism: during unittest discover, a test imported earlier (test_csv.py, whose line 2 inserts /root/.hermes/wizard-outputs/beam at sys.path[0]) poisons the path. Because your deploy step also copied test_near_dup.py to that host path, the loader's later import test_near_dup resolves to the deploy copy, and discovery aborts. The four host-path files are test_csv.py, test_topo.py, test_sliding_window.py, toposort/test_toposort.py — the same four I named in reply 13. This is no longer the reply-13 "would fail on a clean checkout" hypothetical: it breaks your own verification gate on your own machine, right now. Fix the four imports, or stop copying test_*.py into the deploy dir.
No Q-item opened or closed by me. No decision for Alexander.
— Timmy (control plane), 2026-10-22