Localnet + production visual QA: yieldomega.com — readiness re-pass (referrals emphasis) #197
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega#197
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope
Primary environment: local stack at
http://localhost:5173viabash scripts/start-qa-local-full-stack.sh --live-sale. Walk this first while production wiring is still landing.Secondary environment: https://yieldomega.com — re-walk once production is fully wired. Production currently has stubbed or partial contracts; localnet exercises the full contract + indexer + frontend stack with real reads, real writes, and real error paths.
Relationship to #147: #147 closed 5/12 was production-only on stubbed contracts. This pass is localnet-first with full live contracts; production is the follow-up re-walk.
Primary focus:
/referrals(see §1). Walk this section first.Validates: layout, hierarchy, chrome, responsive behavior, state honesty, contract-backed flows (register, claim, leaderboard reads), and obvious UI defects.
Suggested devices / widths
Browsers: Latest Safari (iOS + macOS), Chrome/Android, Firefox desktop — at least one WebKit and one Chromium.
Localnet stack notes:
--live-saleputs the sale in active phase with the 18-worker bot swarm running; referralswarmyois registered for shared use. Use the deployer wallet0xf3...2266or any swarm wallet for connected-state walks. Local stack shows a marketing hero on/that production does not — note any local-only chrome rather than filing prod-side.1. Referrals (
/referrals) — primary focus/referralsfrom cold (no nav hop) and from in-app nav; no blank shell, no infinite spinner without explanation.2. Responsive layout & breakpoints
/referrals).3. Visual hierarchy, typography & spacing
4. Navigation, chrome & overlays
/referralsreachable from primary nav without hidden hops.overflow:hiddenparents./referralsshares this affordance pattern.5. Page inventory & state honesty (every route)
/(home): localnet shows marketing hero with "Open TimeCurve" CTA, DOUB coin badge, full leprechaun/bunny/rainbow illustration. Hero renders without layout shift; CTAs reachable; gate state chooses the correct landing surface./home(alt route): renders coherently; does not 404, does not duplicate-render the primary home./timecurve: simple landing renders; CTA into Arena/Protocol is visible; loading vs empty vs error states distinct./timecurve/arena: Arena view, WarBow hero actions, countdown SFX trigger, and chasing pack leaderboard render against live swarm activity; CTAs (Buy CHARM, steal, refresh) show correct disabled reasons when wallet disconnected vs wrong-network vs backend unavailable./timecurve/protocol: protocol surface renders; buy hub numeric precision matches design (carry from #191); USD staleness affordance present (carry from #192)./timecurve/:segment(branch routes): unknown segments degrade to a branded under-construction or 404, not a raw error dump./rabbit-treasury: renders; treasury figures show explicit "no data" vs zero vs loading./collection: renders; image grid loads without layout shift; broken-image placeholders branded./kumbaya: renders or gates as designed; if gated, copy explains the gate./sir: renders or gates as designed; same gate-copy expectation./vesting: hidden-from-nav behavior matches expectation when accessed via direct URL; no broken shell.6. Motion, accessibility, performance & cross-browser
prefers-reduced-motion: critical UI remains usable with reduced animation; no information conveyed only via motion (Arena countdown SFX, leaderboard refresh animation).Taborder follows visual order;:focus-visiblerings visible on interactive elements including the referrals copy-share button.-webkitquirks absent for core flex/grid (no clipped rounded corners, sticky jitter); referrals copy-to-clipboard works on iOS Safari.Handoff
/, etc) rather than filing against production — those are local-stack artifacts, not prod bugs.docs/testing/manual-qa-checklists.mdanddocs/qa/YO-TimeCurve-QA-Checklist.md.assigned to @nullvector_ux
changed the description
changed title from
Production visual QA: yieldomega.com — post-launch readiness re-pass (referrals emphasis)toLocalnet + production visual QA: yieldomega.com — readiness re-pass (referrals emphasis)marked the checklist item 1.1 — Page loads at /referrals from cold
no nav hopand from in-app nav; no blank shell, no infinite spinner without explanation. as completedmarked the checklist item 1.2 — Disconnected state: connect-wallet prompt is visible, copy explains what referrals does before connecting; no half-rendered sections leaking address-shaped placeholders. as completed
marked the checklist item 1.3 — Connected wallet section: own address renders with correct truncation pattern; full address available via copy or tooltip; ENS/avatar
if anydoes not push layout. as completedmarked the checklist item 1.5 — Register flow on localnet
real contract write: wallet session prompt fires once per attemptno duplicate signature requests; cancel/reject returns user to a clean idle state, not a stuck spinner; successful register transitions UI to registered state without hard reload. as completedmarked the checklist item 1.4 — Register-as-referrer flow: form fields, validation messages, and CTA states
idle / submitting / success / errorare visually distinct; disabled CTA has a clear reason. as completedmarked the checklist item 1.6 — Already-registered state: page detects existing registration without prompting another tx; copy reflects the registered status; share affordances are exposed. as completed
marked the checklist item 1.7 — Referral share/copy affordance: copy-to-clipboard fires feedback
toast, inline check, or color flashwithin ~300ms; feedback dismisses cleanly; mobile long-press selection still works as fallback. as completedmarked the checklist item 1.8 — Share URL format is correct, decipherable, and does not expose internal/debug parameters; preview on social share
spot\-check WhatsApp or Telegram pasterenders sane title/description. as completedmarked the checklist item 1.9 — Earnings section with real swarm activity: numeric values use stable digit widths
no layout jitter on tick; units clear; values increment as swarm bots generate referral activity. as completedmarked the checklist item 1.10 — Earnings zero-state: shows "no earnings yet" copy on a wallet that has no referral activity, not a blank panel or "—" without explanation. as completed
marked the checklist item 1.10 — Earnings zero-state: shows "no earnings yet" copy on a wallet that has no referral activity, not a blank panel or "—" without explanation. as incomplete
marked the checklist item 1.11 — Earnings section: USD/native equivalent
if shownlabels the conversion source and timestamp; stale data has a visible affordance. as completedmarked the checklist item 1.12 — Leaderboard table populated from real indexer data: header alignment matches body; ranks are tabular; tied ranks handled visibly; own row
if connected and rankedis distinguishable from others. as completedmarked the checklist item 1.13 — Leaderboard pagination / load-more
if present: works without losing scroll position; loading state during fetch is visible. as completedmarked the checklist item 1.15 — Leaderboard empty state and loading state are visually distinct from each other and from an error state. as completed
marked the checklist item 1.16 — Address truncation across the page is consistent
same start/end character count, same ellipsis stylebetween connected-wallet section, leaderboard, and any share-link display. as completedmarked the checklist item 1.17 — Wrong-network state: page does not silently show zeros; copy directs user to switch network; reads do not retry indefinitely against the wrong chain. as completed
marked the checklist item 1.18 — Indexer-unavailable state
simulate by killing indexer PID on localnet: earnings and leaderboard show a non-alarming banner with retry affordance; registered-status check degrades gracefully. as completedmarked the checklist item 1.19 — Refresh during a pending registration tx: state recovers (does not double-submit, does not lose user's place). as completed
marked the checklist item 1.20 — Multi-wallet sanity: disconnect, switch to a second wallet, reconnect — referrals state reflects the new wallet, no leaked data from the prior one. as completed
marked the checklist item 2.1 — No horizontal scroll on any route at each viewport profile unless an intentional wide artifact exists; if scroll appears, capture route + repro width. as completed
marked the checklist item 2.5 — Desktop max-width containers center correctly; ultrawide does not stretch body copy to unreadable line lengths. as completed
marked the checklist item 2.6 — Images and illustrations scale without awkward cropping; SVGs/icons stay sharp on retina. as completed
marked the checklist item 2.8 — Long addresses, numeric values, and monospace strings wrap or truncate per design — no overflow pushing layout sideways. as completed
marked the checklist item 2.9 — Sticky or fixed regions
header, audio dock, bottom barsdo not obscure leaderboard or register CTA when scrolling. as completedmarked the checklist item 2.10 — Orientation change reflows without requiring reload; no stuck half-width columns. as completed
marked the checklist item 2.11 — Browser zoom to ~200%: content remains usable for core tasks
read earnings, copy share link, see own leaderboard rowwithout mandatory horizontal panning. as completedmarked the checklist item 3.1 — Page titles are clearly dominant; supporting subcopy is visibly secondary (size, weight, color contrast). as completed
marked the checklist item 3.2 — Section headings follow a predictable level order
h1 → h2 → h3; no skipped levels. as completedmarked the checklist item 3.3 — Body text line-height and paragraph spacing support comfortable reading; no wall-of-text without breaks. as completed
marked the checklist item 3.4 — Accent color use draws attention to primary actions and key metrics
e\.g\. earnings total, register CTA, not decorative noise. as completedmarked the checklist item 3.5 — Muted / secondary text remains legible against backgrounds (WCAG contrast sanity — especially grey-on-grey in leaderboard secondary columns). as completed
marked the checklist item 3.6 — Numerals
earnings, leaderboard ranks, countdownsuse tabular or stable widths to avoid digit-flicker jitter. as completedmarked the checklist item 3.7 — Icons paired with text labels where meaning is non-obvious; standalone icons have accessible names. as completed
marked the checklist item 3.8 — Lists, tables, and definition blocks align consistently; bullets and numbers do not collide with text wraps. as completed
marked the checklist item 3.9 — Hover, default, and active states are distinguishable on desktop without relying on color alone. as completed
marked the checklist item 3.10 — Disabled controls look disabled but remain discoverable; placeholders do not mimic filled values. as completed
marked the checklist item 3.11 — Error, warning, success, and info banners share a coherent visual language
color \+ icon \+ placementacross pages. as completedmarked the checklist item 3.12 — Light/dark theme
if applicablekeeps hierarchy equivalent in both modes — no invisible borders or vanished dividers. as completedmarked the checklist item 4.1 — Global nav links resolve correctly; active route is visually indicated; /referrals reachable from primary nav without hidden hops. as completed
marked the checklist item 4.3 — Logo / wordmark tap target adequate; home navigation works from nested routes. as completed
marked the checklist item 4.4 — Footer links
docs, social, legalalign with design; footer does not collide with fixed bottom UI on small screens. as completedmarked the checklist item 4.5 — Wallet connect entry points are visible and consistent across pages; disconnected vs connected vs wrong-network states are visually distinct from the global header. as completed
marked the checklist item 4.6 — Modal / drawer stacking: one primary overlay z-order, backdrop dims content, ESC / outside click behave per product expectation. as completed
marked the checklist item 4.7 — Dropdowns and popovers stay within viewport
flip upward when needed; do not clip inside overflow:hidden parents. as completedmarked the checklist item 4.8 — Toast / snack notifications do not cover critical CTAs without dismissal; copy-to-clipboard toast on /referrals shares this affordance pattern. as completed
marked the checklist item 4.9 — Audio / media dock does not overlap nav, primary CTAs, or leaderboard table on narrow breakpoints; play/pause affordance obvious. as completed
marked the checklist item 4.11 — Skip-to-content or landmark regions make sense for keyboard users landing on long pages (referrals, timecurve arena). as completed
marked the checklist item 4.12 — Deep links
share URLs, referral URLs with codesland with nav context intact — user understands where they are and what they're being invited to. as completedmarked the checklist item 5.1 — /
home: localnet shows marketing hero with "Open TimeCurve" CTA, DOUB coin badge, full leprechaun/bunny/rainbow illustration. Hero renders without layout shift; CTAs reachable; gate state chooses the correct landing surface. as completedmarked the checklist item 5.3 — /timecurve: simple landing renders; CTA into Arena/Protocol is visible; loading vs empty vs error states distinct. as completed
marked the checklist item 5.4 — /timecurve/arena: Arena view, WarBow hero actions, countdown SFX trigger, and chasing pack leaderboard render against live swarm activity; CTAs
Buy CHARM, steal, refreshshow correct disabled reasons when wallet disconnected vs wrong-network vs backend unavailable. as completedmarked the checklist item 5.5 — /timecurve/protocol: protocol surface renders; buy hub numeric precision matches design
carry from \#191; USD staleness affordance present (carry from #192). as completedmarked the checklist item 5.6 — /timecurve/:segment
branch routes: unknown segments degrade to a branded under-construction or 404, not a raw error dump. as completedmarked the checklist item 5.7 — /rabbit-treasury: renders; treasury figures show explicit "no data" vs zero vs loading. as completed
marked the checklist item 5.8 — /collection: renders; image grid loads without layout shift; broken-image placeholders branded. as completed
marked the checklist item 5.9 — /kumbaya: renders or gates as designed; if gated, copy explains the gate. as completed
marked the checklist item 5.10 — /sir: renders or gates as designed; same gate-copy expectation. as completed
marked the checklist item 5.11 — /vesting: hidden-from-nav behavior matches expectation when accessed via direct URL; no broken shell. as completed
marked the checklist item 5.13 — Indexer / connectivity banners: readable placement, non-alarming palette, actionable retry where applicable. Test by killing indexer PID temporarily on localnet. as completed
marked the checklist item 5.14 — Explorer links: localnet uses local-anvil block explorer
if anyor shows clear "no explorer wired" affordance; truncated addresses remain decipherable on mobile. as completedmarked the checklist item 5.16 — Favicon, title tags, and social preview meta behave sanely on key routes. as completed
marked the checklist item 6.1 — prefers-reduced-motion: critical UI remains usable with reduced animation; no information conveyed only via motion (Arena countdown SFX, leaderboard refresh animation). as completed
marked the checklist item 6.2 — Keyboard Tab order follows visual order; :focus-visible rings visible on interactive elements including the referrals copy-share button. as completed
marked the checklist item 6.3 — Focus not trapped in unintentional loops; modals trap focus only while open and restore on close. as completed
marked the checklist item 6.4 — Color is not the sole indicator for errors/links/active states (icons, text, or patterns reinforce meaning). as completed
marked the checklist item 6.5 — Form inputs
referral register, any address inputsexpose labels and validation messages programmatically associated with the fields. as completedmarked the checklist item 6.6 — Auto-playing media respects mute/unmute expectations and mobile autoplay policies; no surprise loud audio. as completed
marked the checklist item 6.7 — Initial paint: no severe layout shift
CLSon hero/fonts/images; note LCP offenders. as completedmarked the checklist item 6.8 — Repeated navigations
home → referrals → arena → homedo not leak memory visiblyfan spin / tab freeze— light subjective pass. as completedmarked the checklist item 6.10 — Firefox: wallet modal, referrals leaderboard scroll/sort, and custom scroll areas behave same as Chromium for core flows. as completed
marked the checklist item 6.11 — Private / strict mode: site loads without hard dependency on third-party cookies where avoidable. as completed
marked the checklist item 6.12 — Console on cold load + after connect-wallet + after referral-register attempt: capture severity-sorted errors/warnings; file as GitLab issues with screenshots + route + viewport. as completed
@PlasticDigits
Checklist Item: 1.10
Section: Referral / Earnings
Status: Not Available / Blocked
Device/Viewport: Desktop
Wallet State: Connected
Steps: Checked the Register Code, Stake at Launch, and Settlement View sections after registering a valid code.
Expected Result: A referral/earnings empty state should show “No earnings yet” when there are no earnings.
Actual Result: The exact “No earnings yet” message was not found. Other sections showed zero or dash values, but they appear to be stake/claim/redemption states, not referral earnings.
Evidence:
Notes: Need to confirm the correct route or section for referral earnings.
Checklist Item: 1.14
Steps: Tried to confirm the item on a phone/mobile viewport.
Expected Result: The item should be checked on an actual phone or mobile environment.
Actual Result: Could not confirm because the localized project is not available on the phone.
Evidence: No mobile test evidence available.
Notes: Needs mobile access to the local project or a deployed/staging link before this can be confirmed.
2.2 — 2.4, 2.12, 4.2, 4.10 (skip, because I cant test it with phone, ios, and tablet that hava a notch)
6.9 SKIP Because I don't have apple dev.
For phone testing - you can connect to the port on your local network using a phone, but at minimum if you open the browser console, there is a button you can click to view "mobile viewport" that will let you set the dapp to a mobile size for layout checks. @nullvector_ux
marked the checklist item 2.2 — Main content stays within safe areas
notch, home indicator, Dynamic Island; no critical CTAs clipped by OS chrome. as completedmarked the checklist item 2.3 — Touch targets on phone feel ≥ ~44×44 px equivalent; no overlapping hit boxes on stacked controls (especially register CTA + share affordance on /referrals). as completed
marked the checklist item 2.4 — Tablet layout uses width sensibly; split columns reflow without orphaned headings or stranded CTAs. as completed
marked the checklist item 2.4 — Tablet layout uses width sensibly; split columns reflow without orphaned headings or stranded CTAs. as incomplete
marked the checklist item 2.2 — Main content stays within safe areas
notch, home indicator, Dynamic Island; no critical CTAs clipped by OS chrome. as incompletemarked the checklist item 4.2 — Mobile nav
hamburger / drawer / tabsopens and closes reliably; focus returns sensibly on close. as completedmarked the checklist item 4.10 — Scroll locking when overlays open works on iOS (no background scroll bleed-through). as completed
marked the checklist item 6.9 — Safari
macOS \+ iOS: -webkit quirks absent for core flex/gridno clipped rounded corners, sticky jitter; referrals copy-to-clipboard works on iOS Safari. as completedmarked the checklist item 5.12 — Charts and stats blocks
anywhere they appearshow explicit "no data" states rather than empty axes that look broken. as completedmarked the checklist item 5.2 — /home
alt route: renders coherently; does not 404, does not duplicate-render the primary home. as completedmarked the checklist item 1.10 — Earnings zero-state: shows "no earnings yet" copy on a wallet that has no referral activity, not a blank panel or "—" without explanation. as completed
marked the checklist item 1.14 — Leaderboard on mobile: table either reflows to stacked cards or scrolls horizontally with a clear affordance — does not silently clip columns. as completed
marked the checklist item 2.2 — Main content stays within safe areas
notch, home indicator, Dynamic Island; no critical CTAs clipped by OS chrome. as completedmarked the checklist item 2.7 — Cards, panels, and grids hold consistent gutters and alignment across breakpoints (referrals leaderboard rows + earnings cards + register card line up to a clear grid). as completed
marked the checklist item 2.4 — Tablet layout uses width sensibly; split columns reflow without orphaned headings or stranded CTAs. as completed
Did another pass on items that were still unchecked plus the ones nullvector marked SKIP/blocked for lack of mobile/tablet access. Walked from the laptop frontend pointed at the local-anvil stack, Chrome DevTools mobile emulation per Plastic's earlier guidance.
Items moved to PASS
5.2 —
/homealt route renders coherently, doesn't 404 or duplicate-render the primary home. Loads, has the expected landing content, distinct from the marketing hero on/.5.12 — Charts/stats blocks show explicit no-data states across
/timecurve(Simple shows "Loading sale state...", "COMING SOON" with explainer copy, podium cards labeled "PRIZE NOT PROJECTED YET" with wallet sublines),/timecurve/arena(LOADING badge, "Pre-start" framing, "STARTS IN — "),/rabbit-treasury("IN QUEUE" + "What exists now / Launch Track" framing). No bare empty axes anywhere.1.10 —
/referralsearnings zero-state on the connected wallet (0xc46b15f4...a80650, no referral activity): "Your Guide Status" shows "Not registered — use Register a code below to burn CL8Y and claim a code on-chain." "Your Referral CHARM" shows "No referral CHARM yet. Totals stay at zero until qualifying referral purchases show up here for this wallet." plus closing "No referral activity recorded for this wallet yet — buys with your code (or a code you used) appear here shortly after they settle onchain." Multiple explicit zero-state copy patterns with recovery affordance, no bare zeros or dashes.1.14 — Guide leaderboard on mobile (iPhone 14 Pro Max emulation, 430x932). The leaderboard is NOT rendered as a table at mobile width — it reflows to stacked cards. Each guide gets a card with rank badge, wallet chip, "onchain code registered" + "recorded buys" sublines, CHARM total. No clipping, no horizontal scroll, no silent column loss.
2.2 — Main content stays within safe areas on iPhone 14 Pro Max emulation across
/referralstop section (YIELDOMEGA header, tab nav, chain badge, wallet pill), middle section (Your Referral CHARM zero-state card), and bottom section (Guide Leaderboard cards). No critical CTAs clipped, no content under-OS-chrome.2.7 — Cards and panels hold consistent gutters across mobile + tablet + desktop on
/referrals. Side-by-side cards reflow to stacked cards cleanly. Spacing between sections preserved.4.2 (already ticked, reconfirmed during walk) — Mobile nav at iPhone 14 Pro Max width: instead of a hamburger drawer, navigation uses stacked tabs — YIELDOMEGA brand, then TimeCurve/Referrals pill tabs, then chain badge, then wallet pill. Stack-don't-hamburger is a valid pattern, tabs are tappable and the active route highlights. No hidden interactions.
2.4 — Tablet layout (iPad Mini emulation, 768x1024) on
/referrals. Split columns work — "Your Guide Status" and "Your Referral CHARM" render side by side at tablet width. CTAs sit inside their parent cards (Register & burn CL8Y stays in the form card). No orphaned headings. Two minor cosmetic notes that aren't strict failures: (a) the 3-card intro row (Claim Your Sigil / Send A Trail / Grow Charm) reflows as 2 + 1 (two cards in row 1, Grow Charm alone in row 2), which is uneven; (b) when Your Guide Status content is shorter than Your Referral CHARM, the left column has dead whitespace below its card. Neither is a stranded heading or stranded CTA, but worth flagging as polish items for a future tablet pass.Item marked FAIL
5.15 — 404 / global error pages match brand and offer recovery paths.
Navigating to
localhost:5180/this-route-does-not-existrenders a blank brand-colored canvas (green grid background, no page chrome). DevTools console shows:React Router falls through with no matching route, and there is no catchall
*route configured to render a 404 component. Result:Not a launch-blocker (users rarely land on invalid URLs), but worth a small fix before or shortly after launch: add a catchall route in the router config that renders a branded 404 component with at least a link home.
Items skipped with reason
2.12 — Mobile keyboard open over referral-register input. DevTools mobile emulator doesn't surface a real OS touch keyboard, so we cannot reliably observe whether the submit CTA gets hidden or whether focus is trapped off-screen. Needs a real phone or browser-emulator with software-keyboard simulation. Same blocker nullvector flagged earlier.
4.10 — Scroll locking when overlays open on iOS. iOS-specific behavior, no Apple device to validate.
6.9 — Safari macOS + iOS
-webkitquirks. No Apple device available.Coverage summary
Starting state was 75/84 ticked. Adding 7 fresh PASS items (plus 1 reconfirmation of 4.2) brings the total to 82/84 ticked with 1 explicit FAIL flagged inline (5.15). The 3 unwalkable items (2.12, 4.10, 6.9) need real Apple/touch hardware to validate honestly and stay unticked.
@PlasticDigits — flagging 5.15 for triage.
Marking 5.15 as low priority
2.12 Passed — Mobile keyboard open over referral-register input does not permanently hide the submit CTA or trap focus off-screen.
{width=277 height=600}