Use fetch in-frame navigation with overlay and hover prefetch; show delayed hub loading spinner instead of hiding the iframe.
Co-authored-by: Cursor <cursoragent@cursor.com>
Account cards expand to fill available width when fewer exchanges are enabled instead of staying in fixed four-column tracks.
Co-authored-by: Cursor <cursoragent@cursor.com>
Each settings section and exchange card gets its own save button and fold toggle with state persisted in localStorage.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align the trading supervision card with other settings panels so content is not flush against the border.
Co-authored-by: Cursor <cursoragent@cursor.com>
Proactive monitoring for manual/hub closes and new opens prevents overtrading via in-app alerts, configurable WeChat links, and supervisor chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load enabled instances from settings, fetch market info via /api/hub/market, and apply exchange-specific amount and price precision in trend and roll calculators.
Co-authored-by: Cursor <cursoragent@cursor.com>
Merge 关键阻力位/关键支撑位 into 关键支撑阻力, share key_monitor_form.js across hub and new-tab views, and add hub shortcut to /key_monitor.
Co-authored-by: Cursor <cursoragent@cursor.com>
Clamp future last_close anchors, cap remaining time server-side, prefer freeze_remaining_sec in the badge JS, and auto-repair stale DB rows on read.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use soft in-frame navigation and loading overlay in hub instance shell; pass embed=1 for iframe SSO opens.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove username_hint from hub auth status API and disable autocomplete on hub and instance login forms.
Co-authored-by: Cursor <cursoragent@cursor.com>
Implements shared account_risk_lib with 4h/1h cooloff and daily freeze rules, wires hooks into all four exchange apps and hub monitor UI, with tests and docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sort inner-archive daily trades by closed_at_ms; add open time and live hold duration to instance and hub position cards, with exchange margin on hub footer.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop redeclared AI_CHAT_MAX_ATTACHMENTS and aiChatPendingFiles in app.js that broke script parsing after the chat perf update.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cache chat context, parallelize exchange fetches, skip fund history writes, defer rolling summary to a background thread, and cache markdown rendering on the client.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let users paste images into AI chat with removable pending attachments, and feed exchange/monitor stop-loss and take-profit into trading coach snapshots so replies reflect actual protection on open positions.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move timed-close badge next to contract name on hub board and instance position cards; refresh countdown on board render.
Co-authored-by: Cursor <cursoragent@cursor.com>
When the K-line panel is open, clicking a trade row switches selection and chart markers without re-fetching candles for the same symbol.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use composite trade key so Gate accounts with duplicate trade IDs no longer highlight two rows at once.
Co-authored-by: Cursor <cursoragent@cursor.com>
Label archive K-lines as USDT swap in title and API; highlight the full trade row when opening its chart.
Co-authored-by: Cursor <cursoragent@cursor.com>