feat(delphi): poller-equivalence harness (goal condition 2) — PASSES live on vw + pc-meta-02 - #2657
Draft
jucor wants to merge 1 commit into
Draft
feat(delphi): poller-equivalence harness (goal condition 2) — PASSES live on vw + pc-meta-02#2657jucor wants to merge 1 commit into
jucor wants to merge 1 commit into
Conversation
This was referenced Jul 24, 2026
Draft
Draft
docs(delphi): R1-parity goal docs, journal (2026-07-18 → 07-24 s5), quirks + divergence ledger
#2626
Draft
Draft
Draft
jucor
force-pushed
the
spr/edge/1530cd63
branch
2 times, most recently
from
July 24, 2026 20:20
5923073 to
020299f
Compare
…live on vw + pc-meta-02 The GOAL_R1_PARITY.md condition-(2) harness (MATH_POLLER_EQUIV_SPEC.md): one throwaway Postgres, the REAL Clojure container (clojure -M:run full, MATH_ENV=clj-ref) and the py MathPollerService (MATH_ENV=py-shadow) fed identical timed vote batches; written rows compared per batch with the battery acceptance (StepComparer projection, Q7 subgroup exclusion) plus a measured clj self-jitter envelope for floats (two independent clj runs; threshold max(2x envelope, 1e-9); structural divergences never excused); kill+restart seam mid-schedule; caching_tick MAX+1 per env, math_ticks monotonic, watermark exactly-once coverage. Guards: NO-COVERAGE (0 aligned batches / ready:false / empty store => FAIL — a vacuous pass is structurally impossible), fail-fast feeder with runner-log evidence capture, startup gate closing the Q19 window (see below). LIVE RESULTS (2026-07-24, stores + verdict JSONs under real_data/.local/replays/poller_equiv/): - vw: verdict MATCH, 8/8 batches, seam after 4, ticks OK, 0 envelope-excused divergences. - pc-meta-02: verdict MATCH, 6/6 batches, seam after 3, moderation stream live (146/146 mod events woven, matching clj). Real bugs found & fixed by the harness arc: - py poller pid/tid/zid stringification at ingestion (postgres.py poll_votes/poll_votes_since/poll_moderation, service.py str(zid)) — native DB ints now flow end-to-end, matching Clojure; the poll_moderation fix also prevents a would-be regression (int vote-tids vs str mod-tids would silently disable comment moderation). - derive_ptptstats wrote conv.participant_info — a DIFFERENT STATISTIC from Clojure's prep-ptpt-stats; now the verbatim geometric port (repness.clj:383-413: centricness/coreness/extremeness in PCA space, columnized per conv_man.clj:79-88, group order via clojure_hash_map_key_order). - Q19 (CLOJURE_QUIRKS.md): GENUINE Clojure production bug — conv_man.clj queue-message-batch! races on new-zid discovery (two conv-actors, one orphaned, votes silently lost; reproduced 3x). Harness carve: wait for the container's first poll cycle before feeding (test-input sequencing; acceptance untouched). Flagged for an upstream fix. - Five harness-env findings (clj postgres:// URL regex, POLL_FROM_DAYS_AGO long parse, SSL mode, shared-millisecond cut ties vs strict > watermarks, per-row insert visibility) — fixed in the harness with the clj behaviors documented. Tests: harness+poller 497 passed; full delphi suite 1134/22/46, zero failures. Live protocol is opt-in (real services); unit surface covers every pure decision point. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> commit-id:1530cd63
This was referenced Jul 25, 2026
Draft
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The GOAL_R1_PARITY.md condition-(2) harness (MATH_POLLER_EQUIV_SPEC.md):
one throwaway Postgres, the REAL Clojure container (clojure -M:run full,
MATH_ENV=clj-ref) and the py MathPollerService (MATH_ENV=py-shadow) fed
identical timed vote batches; written rows compared per batch with the
battery acceptance (StepComparer projection, Q7 subgroup exclusion) plus
a measured clj self-jitter envelope for floats (two independent clj runs;
threshold max(2x envelope, 1e-9); structural divergences never excused);
kill+restart seam mid-schedule; caching_tick MAX+1 per env, math_ticks
monotonic, watermark exactly-once coverage. Guards: NO-COVERAGE (0
aligned batches / ready:false / empty store => FAIL — a vacuous pass is
structurally impossible), fail-fast feeder with runner-log evidence
capture, startup gate closing the Q19 window (see below).
LIVE RESULTS (2026-07-24, stores + verdict JSONs under
real_data/.local/replays/poller_equiv/):
envelope-excused divergences.
stream live (146/146 mod events woven, matching clj).
Real bugs found & fixed by the harness arc:
poll_votes/poll_votes_since/poll_moderation, service.py str(zid)) —
native DB ints now flow end-to-end, matching Clojure; the
poll_moderation fix also prevents a would-be regression (int vote-tids
vs str mod-tids would silently disable comment moderation).
from Clojure's prep-ptpt-stats; now the verbatim geometric port
(repness.clj:383-413: centricness/coreness/extremeness in PCA space,
columnized per conv_man.clj:79-88, group order via
clojure_hash_map_key_order).
queue-message-batch! races on new-zid discovery (two conv-actors, one
orphaned, votes silently lost; reproduced 3x). Harness carve: wait for
the container's first poll cycle before feeding (test-input sequencing;
acceptance untouched). Flagged for an upstream fix.
POLL_FROM_DAYS_AGO long parse, SSL mode, shared-millisecond cut ties
vs strict > watermarks, per-row insert visibility) — fixed in the
harness with the clj behaviors documented.
Tests: harness+poller 497 passed; full delphi suite 1134/22/46, zero
failures. Live protocol is opt-in (real services); unit surface covers
every pure decision point.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
commit-id:1530cd63
Stack: