- 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
The lightning button on the symbol panel was the single biggest
"agent does nothing" complaint: it created a trader and a strategy via
direct REST calls, then handed the user a hardcoded reply that read
"我没有自动启动实盘交易。请到 Traders 面板确认风控后手动 Start" —
i.e. the chat bot openly admitted it bypassed the agent and refused to
do the work the user had clearly asked for.
- web/src/lib/hyperliquidQuickTrade.ts: after createStrategy +
createTrader (or finding an existing trader), call POST
/api/traders/:id/start immediately. Report `started`, `reusedTrader`,
and an optional `startError` so the chat reply can be honest about
what happened — created vs reused, running vs failed, and why.
- web/src/pages/AgentChatPage.tsx: replace the canned "please start
manually" reply with one that reflects reality. Success path shows
the symbol, strategy, 5-min scan interval, and how to halt it via
chat. Failure path surfaces the actual start error and tells the
user the trader exists but is not running.
- web/src/lib/hyperliquidQuickTrade.ts: per-symbol prompt now routes
on category. Stocks (category="stock") get a long-only, momentum-
seeking prompt — break of high, volume spike, support reclaim, sector
catalyst — because shorting individual US equities through the agent
is rarely what the user wants. Crypto stays bidirectional but
disciplined. The trader-level custom_prompt is rewritten in the same
style and explicitly forbids rotating to other symbols.
- Add stock symbol panel and agent chat page wiring
- Update onboarding and tool visibility for focused trader flows
- Tighten related tests around configuration and trader scope
- Add missing .nofx-glass CSS class (used in 20+ places but undefined)
- Fix Input component referencing undefined --brand-black/--brand-light-gray
- Unify background colors to #0B0E11 (was 3 different near-blacks)
- Switch body font from IBM Plex Mono to Inter for readability
- Improve chat bubble contrast (bg 0.03→0.05, border 0.05→0.08)
- Brighten timestamp (#2c2c42→#5a5a72) and disclaimer (#1e1e32→#4a4a62)
- Unify ::selection color to gold (was orange)
- Remove global button:hover translateY that conflicted with active:scale
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>