[test-qa-hourly] test: pin deterministic metric snapshot tie-break - #428
Conversation
QA run update — 2026-09-09Inspection
QA changeAdded
Commit: Commands / validation
Auto-mergeNot enabled. Repository setting Next QA targetAfter CI is green, test a minimal fail-closed invariant for concurrent mutation during |
e30dd6c to
a38cd9e
Compare
QA run update — CI-first repairInspection
Action
Current replay commits:
Commands / results
Scope guardStill test-only: the PR changes only the two Control Center waitlist-growth test files. No production implementation, workflow, docs, ignores, CI gates, or coverage thresholds changed. Auto-mergeNot enabled in this run. Will only be considered after updated-head CI is green and repository auto-merge policy permits it. Next QA targetAfter CI is green, exercise concurrent mutation around offset pagination: duplicate/disappearing metric rows across adjacent pages should not silently yield a plausible stale conversion rate. |
Intent
Continue continuous QA from current
mainwith one small regression-focused test around deterministic waitlist conversion metrics.Inspection
[test-qa-hourly], labeltest-qa, or branch prefixtest-qa/ongoing-.mainisea659d8e6f5e3e72e92289c7dd0814be46623d63(merge of [test-qa-hourly] test: cover waitlist signup pagination boundary #427).34313809759) completed successfully.apps/control-center/src/server/services/waitlist-growth.tsreads collected 24h metric snapshots ordered bycaptured_at ASC, thenid ASC; later rows overwrite earlier entries in the per-post views map.captured_atbehavior and 500-row pagination, but did not directly pin theidtie-break when two snapshots share an identical timestamp..github/workflows/ci.ymlstill runs quick gates (format repo contracts), code quality (type-check lint deadcode dup), tests (test analytics), E2E, security, and deploy gates.scripts/coverage.sh summary->turbo run test:coverage+scripts/coverage-summary.ts.QA change
Strengthen
waitlist-growth-metrics-pagination.test.tswith one regression test where two collected 24h snapshots for the same post share the exact samecaptured_atvalue. The higher ordered metric id must deterministically win, preservingviews24h = 250andsignupRate = 1 / 250.This is test-only. No implementation, workflow, docs, ignore, coverage threshold, or agent-instruction change is included.
Validation / commands and results
waitlist-growth.ts— PASS: current query explicitly orderscaptured_at ASC, thenid ASCand overwrites the views map in read order..github/workflows/ci.ymlinspection — PASS: existing gates unchanged.scripts/coverage.shinspection — PASS: coverage aggregation path remains available.Scope guard
Changed file only:
apps/control-center/src/server/services/waitlist-growth-metrics-pagination.test.tsAuto-merge
Not enabled. Repository setting
allow_auto_mergeis currently false; never bypass protections or repository policy.Next QA target
Inspect concurrent mutation during
social_post_metricsoffset pagination. A delete/insert between pages should not silently turn a partial/stale snapshot into a plausible conversion rate; identify the smallest fail-closed invariant that can be tested without overbuilding the telemetry layer.