3ac1431336b778ad063810a70703cab5451f56ef
The analytics page had the same view-envelope gap just fixed on the trades page: a connected wallet that hadn't first visited Settings only saw "Private performance is locked" with no way to unlock in place. Added an "Unlock performance" button that mints a view_user envelope (one signature, no gas) — which both /performance and /trades accept — then reloads. Public signal-accuracy still loads regardless. Refactored the loader to a reusable loadAll(forcedEnv?) with an aliveRef guard, mirroring TradesPageClient. Verified backend contracts unchanged: /performance accepts view_performance or view_user; /signals/accuracy still returns overall + by_signal + total_directional_signals. tsc + next build clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
81.5%
CSS
18.4%
JavaScript
0.1%