diff --git a/evidence/user-test/2026-03-27-post-stake-fix.json b/evidence/user-test/2026-03-27-post-stake-fix.json new file mode 100644 index 0000000..c390015 --- /dev/null +++ b/evidence/user-test/2026-03-27-post-stake-fix.json @@ -0,0 +1,172 @@ +{ + "date": "2026-03-27", + "candidate_commit": "f96ca9ddb4f7cd7210ca47dbac755404ee93cdbe", + "context": "Post-attemptStake-fix verification run. PR #1171 (merged 2026-03-26) fixed the /stakestake navigation bug in attemptStake helper: now uses new URL(page.url()).origin + '/stake' instead of appending 'stake' to the current URL. This run verifies that staking navigation works correctly after the fix.", + "methodology": "Playwright headless chromium (1280x720) against local full stack (anvil + postgres + ponder + webapp + caddy). Each persona spec runs sequentially with chain state reset between runs via evm_snapshot/evm_revert. Test timeout set to 120s. Stack started with anvil port override (18545 host) due to port conflict.", + "personas": [ + { + "name": "tyler", + "display": "Tyler 'Bags' Morrison", + "funnel": "passive-holder", + "task": "passive-holder funnel: land -> connect wallet -> buy KRK -> stake -> hold", + "completed": true, + "wallet_connected": true, + "actions_succeeded": ["Connect wallet", "Mint 10 ETH"], + "actions_failed": ["Buy KRK (deployer balance exceeded)", "Stake 50 KRK at 5% tax (stake form timeout: slider not visible within 15s, 504 Gateway Timeout on ponder API)"], + "friction_points": [ + "Buy failed: deployer KRK balance exceeded after chain state resets", + "Stake form did not fully load (504 Gateway Timeout from ponder during page load)", + "No buy button visible on main page - had to navigate to Cheats page", + "Tax rate concept confusing - 'Am I PAYING tax or EARNING tax?'", + "No Discord or community links visible" + ], + "screenshot_refs": [ + "test-results/usertest/tyler/tyler-landing-page-2026-03-27T08-37-28-808Z.png", + "test-results/usertest/tyler/tyler-wallet-connected-2026-03-27T08-37-34-925Z.png", + "test-results/usertest/tyler/tyler-buy-error-2026-03-27T08-37-39-818Z.png", + "test-results/usertest/tyler/tyler-stake-page-2026-03-27T08-37-49-765Z.png", + "test-results/usertest/tyler/tyler-stake-failed-2026-03-27T08-38-08-065Z.png" + ], + "notes": "Wallet connection succeeded. Navigate to /stake worked correctly (fix verified - no /stakestake). Stake form failed to load due to 504 Gateway Timeout on ponder API, not navigation. Test PASSED (non-blocking failure)." + }, + { + "name": "alex", + "display": "Alex Rivera", + "funnel": "passive-holder", + "task": "passive-holder funnel: land -> understand DeFi -> connect wallet -> buy KRK -> stake", + "completed": true, + "wallet_connected": true, + "actions_succeeded": ["Connect wallet (first time)", "Mint 5 ETH"], + "actions_failed": ["Buy KRK (JsonRpcProvider failed to detect network)", "Stake 25 KRK at 15% tax (stake form timeout: slider not visible within 15s, 504 Gateway Timeout)"], + "friction_points": [ + "No 'New to DeFi?' or tutorial section for newcomers", + "No trust signals (Audited, Secure, Non-custodial badges)", + "Stake form did not load (504 Gateway Timeout from ponder)", + "DeFi jargon overwhelming: VWAP, tax rate, snatching, claimed slots" + ], + "screenshot_refs": [ + "test-results/usertest/alex/alex-landing-page-2026-03-27T08-38-46-172Z.png", + "test-results/usertest/alex/alex-wallet-connected-2026-03-27T08-38-51-277Z.png", + "test-results/usertest/alex/alex-stake-failed-2026-03-27T08-39-24-854Z.png" + ], + "notes": "Wallet connection worked first try. Navigate to /stake worked correctly (fix verified - no /stakestake). Stake form failed to load due to 504 Gateway Timeout. Buy failed due to RPC network detection issues after chain revert. Test PASSED." + }, + { + "name": "sarah", + "display": "Sarah Park", + "funnel": "passive-holder", + "task": "passive-holder funnel: land -> research -> connect wallet -> evaluate yield -> stake", + "completed": false, + "wallet_connected": true, + "actions_succeeded": ["Connect wallet", "Mint 20 ETH"], + "actions_failed": ["Buy KRK (contract balanceOf returned empty data after chain revert)"], + "friction_points": [ + "Landing page does not explain 'What is Harberger tax?' in simple terms", + "No audit badge visible", + "Test crashed on buyKrk: balanceOf returned 0x after chain snapshot/revert cycle" + ], + "screenshot_refs": [ + "test-results/usertest/sarah/sarah-landing-page-2026-03-27T08-40-05-846Z.png", + "test-results/usertest/sarah/sarah-wallet-connected-2026-03-27T08-40-14-067Z.png" + ], + "notes": "Wallet connection succeeded. Test FAILED due to contract state issue after chain revert (balanceOf returned empty data). This is a test infrastructure issue with evm_snapshot/evm_revert, not related to the stake navigation fix. Did not reach stake step." + }, + { + "name": "priya", + "display": "Dr. Priya Malhotra", + "funnel": "staker", + "task": "staker funnel: land -> analyze mechanism design -> connect wallet -> evaluate staking", + "completed": true, + "wallet_connected": true, + "actions_succeeded": ["Connect wallet", "Mint 100 ETH"], + "actions_failed": ["Buy KRK (balanceOf returned empty data after chain revert)", "Stake 500 KRK at 12% tax (stake form timeout: slider not visible within 15s, 504 Gateway Timeout)"], + "friction_points": [ + "No whitepaper, technical appendix, or formal specification accessible from UI", + "No governance structure, DAO participation, or admin key disclosures visible", + "Stake form did not load (504 Gateway Timeout from ponder)", + "Insufficient liquidity depth for institutional positions (>$100k)" + ], + "screenshot_refs": [ + "test-results/usertest/priya/priya-landing-page-2026-03-27T08-41-02-959Z.png", + "test-results/usertest/priya/priya-wallet-connected-2026-03-27T08-41-07-293Z.png", + "test-results/usertest/priya/priya-stake-dashboard-2026-03-27T08-41-13-263Z.png", + "test-results/usertest/priya/priya-final-analysis-2026-03-27T08-41-59-057Z.png" + ], + "notes": "Wallet connection succeeded. Navigate to /stake worked correctly (fix verified - no /stakestake). Stake form failed to load due to 504 Gateway Timeout. Buy failed due to contract state issue after chain revert. Test PASSED (graceful failure handling)." + }, + { + "name": "marcus", + "display": "Marcus 'Flash' Chen", + "funnel": "staker", + "task": "staker funnel: land -> probe for exploits -> connect wallet -> test edge cases", + "completed": false, + "wallet_connected": true, + "actions_succeeded": ["Connect wallet", "Mint 50 ETH"], + "actions_failed": ["Buy KRK (ERC20: transfer amount exceeds deployer balance after chain revert)"], + "friction_points": [ + "No 'Audited by X' badge prominently displayed", + "Contract addresses not easily visible for verification", + "Test crashed on buyKrk: deployer balance exhausted after multiple chain reverts" + ], + "screenshot_refs": [ + "test-results/usertest/marcus/marcus-landing-page-2026-03-27T08-42-26-011Z.png", + "test-results/usertest/marcus/marcus-wallet-connected-2026-03-27T08-42-30-090Z.png", + "test-results/usertest/marcus/marcus-cheats-page-2026-03-27T08-42-36-514Z.png" + ], + "notes": "Wallet connection succeeded. Test FAILED due to deployer KRK balance exceeded after chain snapshot/revert cycles. This is a test infrastructure issue, not related to the stake navigation fix. Did not reach stake step." + } + ], + "personas_completed": 3, + "personas_total": 5, + "wallet_connections_succeeded": 5, + "wallet_connections_total": 5, + "fix_verification": { + "pr": "#1171", + "issue": "#1168", + "fix_description": "attemptStake helper now uses new URL(page.url()).origin + '/stake' instead of appending 'stake' to the current URL path, which previously produced the invalid route /stakestake", + "previous_result": "0/5 personas completing staking — all blocked at /stakestake invalid route (2026-03-26 evidence)", + "current_result": "Navigation to /stake confirmed working for all 3 personas that reached the stake step (tyler, alex, priya). The /stakestake bug is eliminated.", + "fix_status": "verified_working", + "remaining_blocker": "Stake form elements do not render within timeout (15s). Root cause: 504 Gateway Timeout on ponder GraphQL API during stake page load. This is an infrastructure/ponder issue, not a navigation bug." + }, + "new_issues_discovered": [ + { + "description": "Stake page returns 504 Gateway Timeout from ponder API, preventing the stake form (slider, amount input) from rendering", + "root_cause": "Ponder indexer may be overloaded or timing out on GraphQL queries needed by the stake page. The 504 comes through caddy proxy.", + "impact": "All personas that reach /stake cannot complete staking (form elements never appear)", + "severity": "high" + }, + { + "description": "Chain snapshot/revert cycle causes contract state corruption: balanceOf returns empty 0x data, and deployer KRK balance is not properly restored", + "root_cause": "evm_snapshot/evm_revert in anvil may not fully restore contract storage or the snapshot ID management in helpers.ts has edge cases with multiple sequential reverts", + "impact": "2/5 persona tests crash during buyKrk step; other personas see transfer failures", + "severity": "medium" + } + ], + "critical_friction_points": [ + "Stake form 504 timeout: ponder API times out, preventing stake page from loading (all personas)", + "No onboarding/tutorial content for DeFi newcomers (alex, sarah)", + "No prominent audit badge or trust signals (marcus, alex, sarah)", + "No whitepaper or formal mechanism specification accessible from UI (priya)", + "Tax rate concept confusing without guidance (tyler, alex, sarah)", + "Snatching concept frightening without explanation (tyler, alex, sarah)" + ], + "verdict": "partial_pass", + "verdict_detail": "The /stakestake navigation bug (issue #1168, PR #1171) is VERIFIED FIXED. All 3 personas that reached the stake step (tyler, alex, priya) successfully navigated to /stake with no invalid route error. However, a new blocker emerged: the ponder GraphQL API returns 504 Gateway Timeout when the stake page loads, preventing the stake form from rendering. 0/5 personas completed an actual on-chain stake transaction. 2/5 tests failed outright due to chain state corruption from evm_snapshot/evm_revert cycles (infrastructure issue). Wallet connections: 5/5 succeeded.", + "comparison": { + "previous_date": "2026-03-26", + "previous_evidence": "2026-03-26-post-wallet-fix.json", + "previous_navigation_bug": "/stakestake (present in all 5 personas)", + "current_navigation_bug": "None — /stake navigation works correctly", + "previous_staking_completed": 0, + "current_staking_completed": 0, + "improvement": "Navigation fix verified working. Staking blocked by different issue (ponder 504 timeout, not navigation)." + }, + "raw_reports": { + "tyler": "tmp/usertest-results/tyler-bags-morrison.json", + "alex": "tmp/usertest-results/alex-rivera.json", + "sarah": "tmp/usertest-results/sarah-park.json", + "priya": "tmp/usertest-results/dr-priya-malhotra.json", + "marcus": "tmp/usertest-results/marcus-flash-chen.json" + } +}