fix(delphi): Clojure-parity math writers + committing write path in PostgresClient#2624
Draft
jucor wants to merge 1 commit into
Draft
fix(delphi): Clojure-parity math writers + committing write path in PostgresClient#2624jucor wants to merge 1 commit into
jucor wants to merge 1 commit into
Conversation
…ostgresClient The four math writers had zero live callers (verified: only commented-out refs in test_postgres_real_data.py) and did not match the Clojure SQL. Rewrite them to the verified Clojure statements: - write_math_main: caching_tick = COALESCE((select max(caching_tick)+1 from math_main where math_env=?), 1) upsert (postgres.clj:323-338). The prod TS prefetch (pca.ts:84-151) polls caching_tick > last, so this is fidelity-critical. - increment_math_tick: atomic INSERT ... ON CONFLICT ... math_tick+1 RETURNING (postgres.clj:292-295), replacing the read-modify-write. - add MathBidToPid model + write_math_bidtopid (net-new; participants.ts depends on it). - write_participant_stats: add the shared math_tick (Clojure writes all three data tables with one tick, conv_man.clj:158-169). Add a committing write path _write_returning (engine.begin()) and route the four writers through it: query() uses engine.connect() (SQLAlchemy 2.0 commit-as-you-go) which rolls back INSERTs on close. Mocked unit tests could not catch this; the postgres integration test did. execute() now commits too. Add global watermark reads for the poll loops: poll_votes_since (WHERE created > wm ORDER BY zid,tid,pid,created, sign-flipped, postgres.clj:132-145) and poll_moderation_since (postgres.clj:148-161). Add ORDER BY zid,tid,pid,created to poll_votes so the full-history rebuild reproduces Clojure's row-insertion order (base-cluster IDs seed k-means -> parity). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> commit-id:6324b652
This was referenced Jul 18, 2026
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 four math writers had zero live callers (verified: only commented-out refs
in test_postgres_real_data.py) and did not match the Clojure SQL. Rewrite them
to the verified Clojure statements:
math_main where math_env=?), 1) upsert (postgres.clj:323-338). The prod TS
prefetch (pca.ts:84-151) polls caching_tick > last, so this is fidelity-critical.
(postgres.clj:292-295), replacing the read-modify-write.
on it).
data tables with one tick, conv_man.clj:158-169).
Add a committing write path _write_returning (engine.begin()) and route the four
writers through it: query() uses engine.connect() (SQLAlchemy 2.0
commit-as-you-go) which rolls back INSERTs on close. Mocked unit tests could not
catch this; the postgres integration test did. execute() now commits too.
Add global watermark reads for the poll loops: poll_votes_since (WHERE
created > wm ORDER BY zid,tid,pid,created, sign-flipped, postgres.clj:132-145)
and poll_moderation_since (postgres.clj:148-161). Add ORDER BY zid,tid,pid,created
to poll_votes so the full-history rebuild reproduces Clojure's row-insertion
order (base-cluster IDs seed k-means -> parity).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
commit-id:6324b652
Stack: