feat: cream terminal redesign, English-only UI, autopilot launch fixes

- Redesign dashboard into a cream-paper + vermilion IBM Plex Mono terminal
  (live L2 order book, cost/liq map, WS K-line, signal matrix, orchestration
  topology, risk radar, execution log, current positions, equity curve)
- Convert all user-facing UI and backend strings/prompts from Chinese to
  English (multi-language retained, default English)
- Add /api/statistics/full endpoint + full-stats frontend wiring
- Fix Autopilot launch: reuse the existing trader instead of creating
  duplicates (eliminates repeat ~35s create cost and stale-trader 404s);
  launch sends 5m scan interval
- Fix unreadable toasts: cream theme with high-contrast text + per-type accent
- Silence background dashboard polls (getTraderConfig) to stop error-toast spam
This commit is contained in:
tinkle-community
2026-06-30 16:03:52 +08:00
parent eba28bcf0e
commit 110bf52908
149 changed files with 6835 additions and 3611 deletions

View File

@@ -9,7 +9,7 @@ func TestDefaultBuilderIsHardcodedToApprovedFeeTier(t *testing.T) {
if got := defaultBuilder.Builder; got != "0x891dc6f05ad47a3c1a05da55e7a7517971faaf0d" {
t.Fatalf("defaultBuilder.Builder = %s, want hardcoded NOFX builder", got)
}
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (5).
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (5 per 10,000).
// Must match defaultHyperliquidBuilderMaxFee on the API side and the
// frontend HYPERLIQUID_BUILDER_MAX_FEE constant the user signs against.
if got := defaultBuilder.Fee; got != 50 {

View File

@@ -63,7 +63,7 @@ var xyzDexAssets = map[string]bool{
// Users approve this builder during the top-right Hyperliquid connect flow before
// their generated agent wallet is saved for live trading.
//
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (5). Existing
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (5 per 10,000). Existing
// approvals at the prior 0.1% cap remain valid on-chain because 0.05% is
// still within their approved max.
var defaultBuilder = &hyperliquid.BuilderInfo{