Skip to content

ci: PPLNS parse seed-pin regression guard (seed -1679627146) - #52

Merged
frstrtr merged 1 commit into
masterfrom
ci-steward/seedpin-pplns-parse
May 31, 2026
Merged

ci: PPLNS parse seed-pin regression guard (seed -1679627146)#52
frstrtr merged 1 commit into
masterfrom
ci-steward/seedpin-pplns-parse

Conversation

@frstrtr

@frstrtr frstrtr commented May 31, 2026

Copy link
Copy Markdown
Owner

Permanent regression guard for the PPLNS parse property suite.

What

  • New workflow .github/workflows/pplns-parse-seedpin.yml — deterministically replays fast-check seed -1679627146 against tests/unit/pplns-parse-properties.test.ts on every PR/push touching the explorer.
  • New preload web-static/sharechain-explorer/.ci-seed-pin.mjs — pins the seed via fc.configureGlobal.

Why

Seed -1679627146 is the counterexample that surfaced the non-finite legacy bare-number regression (input [Infinity] -> totalPrimary Infinity), fixed in PR #51. The random-seeded web-static job in build.yml passed 245/0 without ever replaying this exact sequence — exactly the gap that let the regression land. This job forces the failing path so a future random run can never again be green while the pinned sequence fails.

Verification (local, current master)

  • Pinned replay: 13/13 pass, effective seed confirmed -1679627146.
  • Full suite unchanged: 245 pass / 0 fail / 12 skipped.

Guard only — no parser changes. Awaiting integrator review before merge.

Pin fast-check seed -1679627146 as a permanent CI replay. This is the
counterexample that surfaced the non-finite legacy bare-number regression
(input [Infinity] -> totalPrimary Infinity), fixed in PR #51. The random-
seeded web-static job can pass without ever replaying this sequence, so a
dedicated job preloads .ci-seed-pin.mjs to force the exact failing path on
every change to the parser or its tests.

Verified locally on master: pinned replay 13/13 pass; full suite 245/0/12.
@frstrtr

frstrtr commented May 31, 2026

Copy link
Copy Markdown
Owner Author

APPROVE — seed-pin regression guard (seed -1679627146).

Negative control passed: temporarily reverted the PR #51 finite-clamp in num() (parse.ts:49, dropped the Number.isFinite check). Pinned-seed run went RED — 3/13 fail, incl. assert Number.isFinite(snap.totalPrimary) at pplns-parse-properties.test.ts:321. Restored clean tree (verified, no diff). On the clamp-intact tree the same suite is GREEN 13/13.

The guard genuinely fails when the clamp regresses, so the pinned seed is a real teeth-bearing gate, not a no-op. LGTM to merge once A1 lands.

— explorer-merged

@frstrtr
frstrtr merged commit 986f4fc into master May 31, 2026
14 checks passed
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