Commit Graph

6 Commits

Author SHA1 Message Date
k 8534d90589 ui: tighten dashboard copy and fix layout issues 2026-06-14 21:58:56 +08:00
k 4c3c8c6f87 KOL count: 29 → 25 across marketing/SEO copy
Backend KOL_FEEDS trimmed from 29 to 25 (dead feeds removed).
Sync all hardcoded count mentions:
- layout.tsx JSON-LD, page.tsx (metric + comparison + copy)
- kol/page.tsx, KolPageClient.tsx ("and 26 more" → "and 22 more")
- glossary/page.tsx, opengraph-image.tsx
- public/llms.txt, llms-full.txt
- drop removed KOLs (Dragonfly Capital, Nic Carter) from named lists

Bundles other in-flight frontend work already in the working tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 22:55:27 +08:00
k b2b96bb9c0 fix: Macro panel manage-only (not auto-open), Trump-only auto-trade copy, store docs
SystemControl was rendered as two per-system panels (Trump / Macro) that both
flipped the SAME global auto_trade, and its copy claimed a "qualifying Macro
Vibes signal auto-opens a trade". Both are wrong: bot_engine.process_post
early-returns for System 2, so the auto_trade gate only ever fires for Trump
(System 1). Macro Vibes is manage-only — it never auto-opens.

- Macro (`system="btc"`) panel: replaced the misleading Auto-Trade ON/OFF
  toggle with a manage-only explainer (open on HL → /adopt via Telegram → bot
  manages exits) and a note that the Trump-page switch has no effect here.
- Trump (`system="trump"`) panel: relabeled the switch "TRUMP (System 1)" and
  rewrote all copy/status lines to say Trump-only auto-open (was "GLOBAL
  (Trump + BTC)" / "both Trump & BTC").
- CLAUDE.md: corrected "No global store (no Redux/Zustand)" — the app DOES use
  a small Zustand store (store/dashboard.ts / useDashboardStore); documented
  what it holds and the guidance to keep it small.

Note (not a bug): dashboard adopt/release is intentionally Telegram-only —
there are no positions/adopt|hl|release client calls and the UI correctly
points to the Telegram /adopt command. No dashboard wiring is "broken".

tsc + next build clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 15:04:36 +08:00
k 3a113aaa8f fix: wallet/trades UX + SEO + commit Next.js 16 routing migration
Pre-launch audit findings (frontend):

- trades: unlock private history in-page. TradesPageClient only read a CACHED
  view envelope, so a connected user who hadn't visited Settings first saw
  "load settings once to unlock" with no way forward. Added an explicit
  "Unlock trade history" button that mints the view envelope via
  getOrCreateViewEnvelope (one signature, no gas) and reloads — no detour.
- wagmi: broaden connector from injected({target:'metaMask'}) to generic
  injected(). The MetaMask pin made Rabby / Coinbase ext / Brave / Frame / OKX
  and non-MetaMask browsers fail to connect. wagmi v2 EIP-6963 discovery covers
  all injected wallets; still uses the native provider path (not the MM SDK).
- sitemap: drop /settings. It was emitted in sitemap.xml while robots.ts
  disallows it — a self-contradicting crawler signal. Private pages stay out
  of both.
- docs: note the app runs on port 3001 (package.json), not 3000. The CLAUDE.md
  verify sweep targeted 3000 and would have reported every page as down.
- routing: COMMIT the Next.js 16 migration that was sitting uncommitted —
  delete middleware.ts, add root proxy.ts (next-intl createMiddleware), update
  next-env.d.ts. Vercel deploys from git, so leaving proxy.ts untracked would
  have shipped the old routing. `next build` confirms "Proxy (Middleware)" is
  active and all routes compile. tsc clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 14:34:51 +08:00
k d50c05b120 fix: pre-launch UI hardening + KOL reduce-action type, proxy IP relay, settings redesign
Frontend half of the pre-launch audit campaign:

- types/index.ts + kol/KolPageClient.tsx: add missing 'reduce' KolAction
  (backend emits it; frontend lacked the type + color/label maps → undefined
  styling). Adds ACTION_COLOR/actionLabel/postActionLabel entries.
- proxy/[...path]/route.ts: relay real client IP (x-forwarded-for / x-real-ip)
  so the backend rate limiter buckets per-user instead of per-Next-server (BUG-02).
- Settings/BotConfigPanel redesign, paper-mode clarity, copy cleanup.
- Assorted page/display fixes, loading states, Pagination component.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 11:57:43 +08:00
k ee3648c4cb docs: add CLAUDE.md — AI-agent project entry doc
Convention file every new Claude session reads first when opening this
repo. Documents:

  - Next.js 16 quirks (proxy.ts replaces middleware.ts, async params,
    i18n shelved).
  - Full route + component map.
  - API layer + auth model (EIP-191 signed envelopes).
  - Design system tokens (oklch colors, .macro-* classes, dark mode).
  - "Looks like a bug but isn't" section — including the /en/btc → /en/macro
    rename + the isZh=false i18n-shelved pattern.
  - SEO/GEO surface (layout.tsx JSON-LD + public/llms.txt + sitemap) that
    must be kept in sync when renaming features.
  - Cross-repo coupling points with the backend.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 11:04:19 +08:00