- /api/ai500 returned a success/data envelope but the web httpClient
wraps the raw body as data, so the panel read coins as undefined and
showed the empty state; return a flat {coins,count} body like
/api/symbols
- the agent rendered AI500 rankings as a markdown table that the chat
UI flattens into an unreadable line: tool note + system prompt now
mandate numbered lists (one coin per line) and ban tables outright
- provider/nofxos: GetAI500ListCached — 5min TTL cache with stale
fallback on upstream failure; ResolveClient routes through the claw402
gateway when a wallet key is configured (user's claw402 model key ->
CLAW402_WALLET_KEY env -> direct nofxos)
- new GET /api/ai500 endpoint serving the score-sorted board
- new get_ai500_list agent tool + prompt rule: when the user wants coin
picks or creates a strategy without naming coins, consult AI500's
high-scoring entries by default
- web: AI500 sidebar panel (rank, score badge, gain since entry,
5min auto-refresh); clicking an entry asks the agent to analyze it