Skip to content

feat(math): participant-ban leak replication in clojure-legacy mode (Q1)#2644

Draft
jucor wants to merge 1 commit into
spr/edge/96c1f19efrom
spr/edge/d4116474
Draft

feat(math): participant-ban leak replication in clojure-legacy mode (Q1)#2644
jucor wants to merge 1 commit into
spr/edge/96c1f19efrom
spr/edge/d4116474

Conversation

@jucor

@jucor jucor commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

The Clojure math worker NEVER honored participants.mod = -1: its ingest path
has no mod filter, so banned participants keep influencing user-vote-counts,
in-conv, PCA, clustering and repness. Python's real ban feature
(mod_out_ptpts row drop in _apply_moderation, 2026-06-10) is correct but a
certification divergence.

clojure-legacy mode now stores mod_out_ptpts without applying it (rows kept;
single choke point: the _apply_moderation row drop is gated on improved
mode). Everything downstream then leaks exactly like Clojure. improved mode
keeps the ban byte-for-byte.

Supersedes the legacy-mode premise of #2623's T1 carry-prune test: banning
can no longer shrink the legacy clustering pool, so the stale-carry trap
cannot arise; the vote_counts intersection stays as belt-and-braces
(comment updated) and the test now pins ban-invariance
(TestCarryUnderParticipantBan).

TDD: tests/test_mod_ptpt_leak_parity.py — 4 legacy tests RED on old code
(rows dropped / not clustered / not counted / not in-conv), GREEN after;
improved-mode pin green throughout. Neighbors green: greedy-carry +
degenerate-tick suites (22 passed), discrepancy moderation subset
(19 passed, 6 pre-existing data skips).

commit-id:d4116474


Stack:


⚠️ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

The Clojure math worker NEVER honored participants.mod = -1: its ingest path
has no mod filter, so banned participants keep influencing user-vote-counts,
in-conv, PCA, clustering and repness. Python's real ban feature
(mod_out_ptpts row drop in _apply_moderation, 2026-06-10) is correct but a
certification divergence.

clojure-legacy mode now stores mod_out_ptpts without applying it (rows kept;
single choke point: the _apply_moderation row drop is gated on improved
mode). Everything downstream then leaks exactly like Clojure. improved mode
keeps the ban byte-for-byte.

Supersedes the legacy-mode premise of #2623's T1 carry-prune test: banning
can no longer shrink the legacy clustering pool, so the stale-carry trap
cannot arise; the vote_counts intersection stays as belt-and-braces
(comment updated) and the test now pins ban-invariance
(TestCarryUnderParticipantBan).

TDD: tests/test_mod_ptpt_leak_parity.py — 4 legacy tests RED on old code
(rows dropped / not clustered / not counted / not in-conv), GREEN after;
improved-mode pin green throughout. Neighbors green: greedy-carry +
degenerate-tick suites (22 passed), discrepancy moderation subset
(19 passed, 6 pre-existing data skips).

commit-id:d4116474
This was referenced Jul 22, 2026
@jucor
jucor marked this pull request as draft July 22, 2026 00:52
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 02:01
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 02:02
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 02:10
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 02:10
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 03:54
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 03:54
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 06:16
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 06:16
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 06:50
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 06:50
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 08:11
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 08:11
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 09:58
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 09:58
@jucor
jucor changed the base branch from spr/edge/96c1f19e to edge July 22, 2026 11:20
@jucor
jucor changed the base branch from edge to spr/edge/96c1f19e July 22, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant