[test-qa-hourly] test: pin social waitlist attribution keys - #423
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
QA run updateInspection and validation for this run:
Auto-merge remains disabled until the updated head has completed all required checks and the PR is confirmed mergeable. |
Hourly QA update — 2026-09-08Inspection
QA changeAdded one regression test only: a valid social signup whose canonical attribution lookup errors must return failure and must not upsert the waitlist row. This prevents a future swallowed lookup error from silently persisting a social conversion with missing/incorrect canonical attribution. Commit: Commands / results
Next QA targetAfter this head is green, inspect Control Center waitlist-growth aggregation for a product-visible attribution/counting invariant that is not already directly covered, rather than adding more route micro-cases. |
QA run update — 2026-09-08Inspection:
QA change:
Commands / results:
New head: Next QA target after green CI: inspect Control Center waitlist-growth snapshot aggregation for a product-visible attribution/count invariant not already covered, especially canonical-job gaps and metric snapshot consistency. |
Continuous QA updateInspection:
Finding / action:
Validation / commands and results:
Auto-merge:
Next QA target:
|
Continuous QA update — CI-firstInspection:
Action:
Commands / results:
Auto-merge remains disabled until the updated head completes required checks successfully. Next QA target after green CI: inspect Control Center waitlist-growth aggregation / snapshot consistency for one product-visible count or attribution invariant, rather than adding more waitlist route micro-cases. |
QA run update — 2026-09-09Inspection
QA changeAdded Commit: Commands / results
Auto-mergeNot enabled yet. Blocker: updated-head CI #2404 has not completed. Next QA targetIf this head is green, inspect waitlist conversion-rate aggregation around 24h metrics, especially stale/multiple metric rows and zero-view semantics, for one regression-prone invariant not already directly covered. |
Hourly QA update — CI-first fixInspection:
Root cause:
Action:
Commands / results:
Auto-merge:
Next QA target after green:
|
Hourly QA run — latest 24h conversion metric regressionInspection
QA changeAdded one regression test in Commit: Commands / results
Scope guardTest-only change. No implementation, workflow, docs, ignores, thresholds, secrets, or unrelated refactors changed. Next QA targetIf this head is green, cover the zero-view / unavailable-views boundary so conversion rate cannot accidentally become |
Hourly QA update — 2026-09-09Inspection
QA changeAdded one regression case for a product-visible conversion edge:
Commit: Scope remains test-only: 3 changed QA test files total; no production implementation, workflow, docs, ignores, or CI/coverage thresholds changed. Validation / commands and results
Auto-mergeNot enabled yet: updated-head CI #2407 has not completed. Next QA targetAfter CI is green, cover the sibling unavailable-metrics path: a 24h metrics query failure must preserve persisted signup counts while returning |
QA run — preserve persisted counts on metrics failureInspection
QA changeAdded one regression test in
It simulates a successful waitlist snapshot + canonical job lookup followed by a
Commit: Validation / commands and results
Auto-mergeNot enabled yet. Blocker: updated-head CI #2408 has not completed, so merge safety is not yet proven. Next QA targetIf #2408 is green, inspect how waitlist-growth handles attributed signups whose canonical |
Test QA run — 2026-09-09Inspection
CI-first findingPrior head
Exact required formatting was only the long expected ActionApplied exactly that canonical Prettier formatting and nothing else. Commit: No behavior, implementation, workflow, docs, ignore, threshold, mock strategy, or unrelated refactor changes. Validation / commands and results
Auto-mergeNot enabled this run because updated-head CI #2409 has not completed. No protections are bypassed. Next QA targetOnce #2409 is green, inspect the aggregation behavior when a persisted signup still references |
Hourly QA run — orphaned attribution boundaryInspection
QA changeAdded one regression test for a persisted signup whose Locked behavior:
Commit: Validation / commands and results
Auto-mergeNot enabled yet. Current blocker: updated-head CI #2411 has not completed, so the required safe-to-merge condition is not yet satisfied. Next QA targetAfter CI is green, inspect pagination/batching boundaries in canonical job and metrics reads (100 job IDs / 500-row pages), especially avoiding dropped conversions at batch boundaries or repeated pages. |
QA run update — 2026-09-09Inspection
QA changeAdded
Commit: Commands / results
Auto-mergeNot enabled yet: updated-head CI must complete successfully before the PR qualifies. Next QA targetExercise the 500-row pagination boundary for waitlist signup collection or social metrics collection, ensuring a full second page is neither skipped nor double-counted. |
Hourly QA run — 2026-09-09Inspection
CI-first findingCI #2412 failed only in
ActionApplied only the canonical Prettier layout to that assertion. Commit: No implementation, workflow, docs, ignores, mocks, thresholds, or unrelated refactors changed. Commands / results
Auto-mergeNot enabled. Updated-head CI #2416 has not completed, so the PR does not yet satisfy the safe auto-merge preconditions. Next QA targetOnce CI is green, add a focused regression for the 500-row pagination boundary so signups/metrics spanning page 2 cannot be silently dropped or double-counted. |
Intent
Continue continuous QA from current
mainwith one small regression-focused test strengthening around the newly merged waitlist acquisition path.Inspection
main:c2bfbd150b7669dc0a3c266ac0cf99016418bba5(Codex/waitlist demand integration (#421)).[test-qa-hourly], labeltest-qa, or branch prefixtest-qa/ongoing-.34227693146, run #2394) passed, and its Supabase migrations check also passed.apps/account-engine/test/unit/routes/waitlist.spec.tsbased on the surfaced scopes..github/workflows/ci.ymlstill runs quick gates (format repo contracts), code-quality (type-check lint deadcode dup), tests (test analytics), plus the repository's remaining E2E/security/deploy gates.scripts/coverage.sh summary->turbo run test:coverage+scripts/coverage-summary.ts.Finding
The newly merged waitlist route resolves a social signup to a canonical
social_publish_jobsrow using the tuple(episode_id, platform, language_code). Existing route coverage asserted the episode filter and final job id, but did not pin the platform/language filters themselves. A regression that accidentally drops either filter could attribute a signup to the wrong language/platform release for the same episode.QA change
Strengthen the existing canonical social waitlist test to assert all three lookup keys:
episode_id = utmCampaignplatform = utmSourcelanguage_code = utmContentTest-only change; no implementation, workflow, docs, ignore, threshold, or agent-instruction changes.
Validation / commands and results
apps/account-engine/src/routes/waitlist.ts— PASS: implementation currently applies all three canonical lookup filters.waitlist.spec.tsreview — PASS: duplicate normalized-email first-touch behavior is already covered viaonConflict: email+ignoreDuplicates: true, so this run avoids duplicating that assertion..github/workflows/ci.ymlinspection — PASS: existing gates unchanged.scripts/coverage.shinspection — PASS: coverage aggregation path remains available.Scope guard
Changed file only:
apps/account-engine/test/unit/routes/waitlist.spec.tsNext QA target
After this PR is green, inspect the waitlist canonical-job resolution failure/error paths and Control Center waitlist-growth aggregation for one product-visible attribution invariant that is not already directly covered.