Verification checklist — YO Referrals visual surface (approved via cl8y-ecosystem-qa, follow-up to #59) #64

Closed
opened 2026-04-26 04:29:46 +00:00 by Brouie · 16 comments
Brouie commented 2026-04-26 04:29:46 +00:00 (Migrated from gitlab.com)

Mirror tracking issue for execution of the /referrals page visual surface checklist. Spec at cl8y-ecosystem-qa specs/YO-Referrals-Visual-Verification-Checklist.md (commit 13af95a).

Background

YO #43 Referrals slice closed with code-level signoff (8/8 path-capture vitest, query-override-path, no-shadow on /timecurve/arena|protocol, /home preservation post-launch, REFERRAL_EACH_BPS=500 invariant across contract/docs/tests/frontend fallback). Visual surface of the /referrals page itself was not walked in that session — stack could not satisfy post-launch routing AND configured registry env in one go. Tracked as #59. Dev approved scope on 2026-04-24.

Scope (7 rows)

  • R1 Page renders post-launch
  • R2 Empty / unregistered state (connected wallet)
  • R3 Empty / disconnected state
  • R4 Register flow E2E (CL8Y approve → registerCode → success → localStorage write)
  • R5 Wallet-connected post-register state (registered code + copy-able link)
  • R6 Copy-to-clipboard / share-link UX (desktop + mobile)
  • R7 Path capture from /?ref= visual walkthrough

Out of scope

  • Leaderboard UI — not yet built per dev (#43 comment 2026-04-23 08:05)
  • Contract-level slug registry + restricted-word set — separate verification track
  • kumbayaRoutes / Buy CTA referral plumbing — code-signed in #43

Pre-conditions

Frontend built post-launch (VITE_LAUNCH_TIMESTAMP past), VITE_REFERRAL_REGISTRY_ADDRESS configured, Anvil stack with referral registry fixture OR live network with registry, wallet with gas + CL8Y for registerCode approval.

Acceptance

All 7 rows produce evidence (screenshot or tx hash) and either PASS or have a filed sub-issue.

cc @PlasticDigits

Mirror tracking issue for execution of the /referrals page visual surface checklist. Spec at cl8y-ecosystem-qa specs/YO-Referrals-Visual-Verification-Checklist.md (commit 13af95a). ## Background YO #43 Referrals slice closed with code-level signoff (8/8 path-capture vitest, query-override-path, no-shadow on /timecurve/arena|protocol, /home preservation post-launch, REFERRAL_EACH_BPS=500 invariant across contract/docs/tests/frontend fallback). Visual surface of the /referrals page itself was not walked in that session — stack could not satisfy post-launch routing AND configured registry env in one go. Tracked as #59. Dev approved scope on 2026-04-24. ## Scope (7 rows) - R1 Page renders post-launch - R2 Empty / unregistered state (connected wallet) - R3 Empty / disconnected state - R4 Register flow E2E (CL8Y approve → registerCode → success → localStorage write) - R5 Wallet-connected post-register state (registered code + copy-able link) - R6 Copy-to-clipboard / share-link UX (desktop + mobile) - R7 Path capture from /?ref= visual walkthrough ## Out of scope - Leaderboard UI — not yet built per dev (#43 comment 2026-04-23 08:05) - Contract-level slug registry + restricted-word set — separate verification track - kumbayaRoutes / Buy CTA referral plumbing — code-signed in #43 ## Pre-conditions Frontend built post-launch (VITE_LAUNCH_TIMESTAMP past), VITE_REFERRAL_REGISTRY_ADDRESS configured, Anvil stack with referral registry fixture OR live network with registry, wallet with gas + CL8Y for registerCode approval. ## Acceptance All 7 rows produce evidence (screenshot or tx hash) and either PASS or have a filed sub-issue. cc @PlasticDigits
Brouie commented 2026-04-26 04:30:04 +00:00 (Migrated from gitlab.com)

mentioned in issue #59

mentioned in issue #59
PlasticDigits commented 2026-04-26 08:23:08 +00:00 (Migrated from gitlab.com)

mentioned in commit 3d45e3b90d

mentioned in commit 3d45e3b90dcf6f9e75b4ec3f17f633c0e2c9b3f0
PlasticDigits commented 2026-04-26 08:23:08 +00:00 (Migrated from gitlab.com)

mentioned in commit 4b5f84e2b1

mentioned in commit 4b5f84e2b11bd855edba8e3e7da76dbda53a6f83
PlasticDigits commented 2026-04-26 09:08:49 +00:00 (Migrated from gitlab.com)

mentioned in commit 54ba8cd736

mentioned in commit 54ba8cd736f81b92faaeafe830302c97f05d540c
PlasticDigits commented 2026-04-27 02:46:57 +00:00 (Migrated from gitlab.com)

@Brouie Leaderboards are now in the repo and should be included in verification scope. Otherwise verification scope approved

@Brouie Leaderboards are now in the repo and should be included in verification scope. Otherwise verification scope approved
Brouie commented 2026-04-28 04:21:54 +00:00 (Migrated from gitlab.com)

All 7 rows verified, signing off.

Setup: SKIP_ANVIL_RICH_STATE=1 stack at e35bede, frontend built with VITE_LAUNCH_TIMESTAMP=1735689600 (past) and VITE_REFERRAL_REGISTRY_ADDRESS=0x0B306BF915C4d645ff596e518fAf3F9669b97016, MetaMask wallet 0xf39fd6...2266 funded with gas + CL8Y.

Verification matrix

# Row Status Evidence
R1 Page renders post-launch PASS /referrals loads, no white-screen, no infinite spinner. Arcade shell + REFERRALS hero + Client capture / Slug Transfer / Reward Parameters / Register a Code / Indexer mirror panels all render. Console: only the standard MetaMask/Backpack provider conflict and AudioContext autoplay warnings — no referrals-page-specific errors.
R2 Empty / unregistered (connected) PASS Connected wallet pre-register sees Register CTA + code input + Burn per registration (DECIMAL 1, ABBR 1, CL8Y) + Per-side referral bonus 5.00% from REFERRAL_EACH_BPS.
R3 Empty / disconnected PASS Disconnect → header switches to "Connect Wallet", Register a Code panel renders read-only with "Connect a wallet. Code registration and ownership reads require a connected address." No crash. Indexer panel still operates (read-only chain reads).
R4 Register flow E2E PASS Typed qatest1 → CL8Y spending cap prompt (Token 0x5FbDB...80aa3, Spender 0x0B306...97016 = ReferralRegistry) → approve → register tx submitted → success state shown. localStorage write confirmed via DevTools: key yieldomega.myrefcode.v1.0xf39fd6e51aad88f6f4ce6ab..., value {"code":"qatest1","ts":1777348688574}. Spec mentions key yieldomega.ref.v1 — actual key in source is yieldomega.myrefcode.v1.<wallet> (wallet-scoped). Storage write itself is happening correctly, just a spec doc drift.
R5 Wallet-connected post-register PASS Page now shows "This wallet has a code" + "Your share links" subsection with both URL formats rendered: http://localhost:5173/timecurve/qatest1 and http://localhost:5173/?ref=qatest1.
R6 Copy-to-clipboard / share-link UX PASS (with note) Click Copy → URLs land in clipboard correctly (verified by paste). However, no visible toast or button state change on click — button label stays "Copy" before/after. Functional copy works, the user-facing feedback is silent. Minor UX gap, not a launch-blocker. Mobile long-press not exercised this session.
R7 Path capture from /?ref= PASS Fresh disconnected visit to http://localhost:5173/?ref=qatest1 — page routes correctly, no 404, no crash, header shows "Connect Wallet". applyReferralUrlCapture runs silently to write the captured code for downstream buy CTAs.

Observations

  1. localStorage key spec drift (R4) — actual: yieldomega.myrefcode.v1.<wallet>, spec: yieldomega.ref.v1. Worth aligning the spec to the source, or vice versa. Functional behavior is correct.

  2. R6 silent copy UX — clipboard write works but there's no visible confirmation. Users may double-click thinking it didn't work. Suggest a toast or a 2s "Copied!" label change. Flag if you want me to file as a separate sub-issue.

Closing #64.

cc @PlasticDigits

All 7 rows verified, signing off. Setup: SKIP_ANVIL_RICH_STATE=1 stack at e35bede, frontend built with VITE_LAUNCH_TIMESTAMP=1735689600 (past) and VITE_REFERRAL_REGISTRY_ADDRESS=0x0B306BF915C4d645ff596e518fAf3F9669b97016, MetaMask wallet 0xf39fd6...2266 funded with gas + CL8Y. ## Verification matrix | # | Row | Status | Evidence | |---|---|---|---| | R1 | Page renders post-launch | PASS | /referrals loads, no white-screen, no infinite spinner. Arcade shell + REFERRALS hero + Client capture / Slug Transfer / Reward Parameters / Register a Code / Indexer mirror panels all render. Console: only the standard MetaMask/Backpack provider conflict and AudioContext autoplay warnings — no referrals-page-specific errors. | | R2 | Empty / unregistered (connected) | PASS | Connected wallet pre-register sees Register CTA + code input + Burn per registration (DECIMAL 1, ABBR 1, CL8Y) + Per-side referral bonus 5.00% from REFERRAL_EACH_BPS. | | R3 | Empty / disconnected | PASS | Disconnect → header switches to "Connect Wallet", Register a Code panel renders read-only with "Connect a wallet. Code registration and ownership reads require a connected address." No crash. Indexer panel still operates (read-only chain reads). | | R4 | Register flow E2E | PASS | Typed `qatest1` → CL8Y spending cap prompt (Token 0x5FbDB...80aa3, Spender 0x0B306...97016 = ReferralRegistry) → approve → register tx submitted → success state shown. localStorage write confirmed via DevTools: key `yieldomega.myrefcode.v1.0xf39fd6e51aad88f6f4ce6ab...`, value `{"code":"qatest1","ts":1777348688574}`. Spec mentions key `yieldomega.ref.v1` — actual key in source is `yieldomega.myrefcode.v1.<wallet>` (wallet-scoped). Storage write itself is happening correctly, just a spec doc drift. | | R5 | Wallet-connected post-register | PASS | Page now shows "This wallet has a code" + "Your share links" subsection with both URL formats rendered: `http://localhost:5173/timecurve/qatest1` and `http://localhost:5173/?ref=qatest1`. | | R6 | Copy-to-clipboard / share-link UX | PASS (with note) | Click Copy → URLs land in clipboard correctly (verified by paste). However, no visible toast or button state change on click — button label stays "Copy" before/after. Functional copy works, the user-facing feedback is silent. Minor UX gap, not a launch-blocker. Mobile long-press not exercised this session. | | R7 | Path capture from `/?ref=` | PASS | Fresh disconnected visit to `http://localhost:5173/?ref=qatest1` — page routes correctly, no 404, no crash, header shows "Connect Wallet". applyReferralUrlCapture runs silently to write the captured code for downstream buy CTAs. | ## Observations 1. **localStorage key spec drift (R4)** — actual: `yieldomega.myrefcode.v1.<wallet>`, spec: `yieldomega.ref.v1`. Worth aligning the spec to the source, or vice versa. Functional behavior is correct. 2. **R6 silent copy UX** — clipboard write works but there's no visible confirmation. Users may double-click thinking it didn't work. Suggest a toast or a 2s "Copied!" label change. Flag if you want me to file as a separate sub-issue. Closing #64. cc @PlasticDigits
Brouie (Migrated from gitlab.com) closed this issue 2026-04-28 04:22:18 +00:00
PlasticDigits commented 2026-04-28 05:38:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #85

mentioned in issue #85
PlasticDigits commented 2026-04-28 05:38:51 +00:00 (Migrated from gitlab.com)

mentioned in issue #86

mentioned in issue #86
Brouie commented 2026-04-28 08:08:46 +00:00 (Migrated from gitlab.com)

mentioned in issue #38

mentioned in issue #38
Brouie commented 2026-04-29 06:46:33 +00:00 (Migrated from gitlab.com)

mentioned in issue #91

mentioned in issue #91
PlasticDigits commented 2026-04-30 03:24:54 +00:00 (Migrated from gitlab.com)

mentioned in issue #94

mentioned in issue #94
PlasticDigits commented 2026-04-30 05:25:10 +00:00 (Migrated from gitlab.com)

mentioned in issue #100

mentioned in issue #100
PlasticDigits commented 2026-05-13 15:58:58 +00:00 (Migrated from gitlab.com)

mentioned in issue #204

mentioned in issue #204
PlasticDigits commented 2026-05-13 16:01:24 +00:00 (Migrated from gitlab.com)

mentioned in issue #205

mentioned in issue #205
PlasticDigits commented 2026-05-13 16:03:46 +00:00 (Migrated from gitlab.com)

mentioned in issue #206

mentioned in issue #206
PlasticDigits commented 2026-05-20 04:19:09 +00:00 (Migrated from gitlab.com)

mentioned in issue #223

mentioned in issue #223
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#64
No description provided.