Merge Flask GET/POST routes, refresh prefs on tab revisit after preload, and reorganize system settings into separate cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
P1-P4: configurable nav/section visibility in system settings, full .env editor with restart badges, password change, runtime hot overrides, and single-instance pm2 restart. Works in hub embed iframe.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move read-only risk control docs to /risk_policy before settings; keep transfers and exports on the settings page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Preserve SSR fund values when account_snapshot returns null, retry on failure, and show the same instance header panel on system settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop skipping contracts with empty ask, bid, and mark so out-of-the-money strikes remain visible in the list.
Co-authored-by: Cursor <cursoragent@cursor.com>
Deep ITM contracts often have no ask on the book; show mark-based estimates with a tilde and restore breakeven calculations.
Co-authored-by: Cursor <cursoragent@cursor.com>
Display notional-over-premium leverage at current index and at the user target price for quick sizing comparison.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let users enter a target index in the order panel for estimated expiry P&L, and remove the redundant buy button from the options chain row.
Co-authored-by: Cursor <cursoragent@cursor.com>
Display OKX askSz and bidSz beside top-of-book prices in the chain table and order panel using price/sheets format.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show estimated expiry balance and distance from index in the chain list and order panel using ask price before opening a position.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose bePx-based expiry balance and mark-to-close breakeven on positions so monitor and dashboard can show both labels per contract.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show perpetual and options funding metrics separately, total funds row, then positions; other exchanges keep the 2-column layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a stats bar plus left OKX / right Binance+Gate split layout with equal-height inner perpetual and options cards and no in-card scrolling.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show matching stat rows and position sections for each account type; keep the standard single-block layout for exchanges without options.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rename the imported counter function so aggregate_monitor_board_totals no longer overwrites it with an int accumulator.
Co-authored-by: Cursor <cursoragent@cursor.com>
Merge options USDC/USDT at 1:1 into fund overview snapshots, dashboard aggregation, and monitor board totals while keeping a separate options breakdown in the UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose /api/hub/options/snapshot from OKX instance and render options summary on hub monitor cards when the options capability is enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>