Commit Graph

26 Commits

Author SHA1 Message Date
root
36bd21b7cd feat(portfolio): drill into saved trade plans 2026-05-06 18:31:29 +00:00
root
ddf55d8f26 feat(portfolio): link holdings into trade plans 2026-05-06 18:25:35 +00:00
root
a1a63cc945 feat(simple): add long-term hold mode 2026-05-06 17:37:04 +00:00
root
92747b76a7 fix(simple): support concurrent symbol setups 2026-05-06 07:56:03 +00:00
root
257b10fc81 fix(web): guard malformed operational events 2026-05-06 07:18:47 +00:00
b8864ea276 refactor(web): normalize reconciliation audit theme surfaces 2026-05-05 22:06:05 -07:00
root
76d326c793 refactor(web): normalize secondary ux surfaces 2026-05-06 03:27:52 +00:00
root
0db2693a20 fix(portfolio): satisfy manual position null-safety 2026-05-05 23:33:05 +00:00
root
0f74d7b292 fix(portfolio): tighten bootstrap and manual position handling 2026-05-05 23:31:33 +00:00
root
39456473cb feat(settings): add per-user fmp api key 2026-05-05 23:08:31 +00:00
root
db29a3f6b9 fix(web): guard admin config from non-admin users 2026-05-05 21:38:56 +00:00
70db4c9a04 fix(B9): surface builder strategies in strategies tab 2026-05-04 17:21:18 -07:00
root
e2008f70b9 fix: web + mobile pre-beta audit — real APIs, socket routing, empty states
Web:
- runtime.ts: use import.meta.env (process.env is undefined in Vite browser bundle)
- tradingApiUrl local fallback: drop /api suffix (API libs already append /api/*)
- useWebSocket: deriveSocketParams() — correctly splits origin + socket path for
  Caddy handle_path /invttrdg/* proxy (io(origin, {path}), not io(url-with-path))
- App.tsx: pass socket prop to AdminTab; pass connected prop to SignalsTab
- AdminTab: remove duplicate useWebSocket; accept socket as prop
- SignalsTab: connection-aware empty state message
- backtest/flags: default to disabled when VITE_BACKTEST_ENABLED unset
- EntryForm: NaN guard before live trade execution
- MarketplaceTab: null-safety on symbols.rules access
- Tests: pass socket prop to AdminTab; update empty state assertion

Mobile:
- TradingDataProvider: same deriveSocketParams fix — EXPO_PUBLIC_SOCKET_PATH
  overrides auto-derived path from tradingApiUrl
- strategies: replace mock data with real GET /api/profiles + PATCH active toggle
- chat: wire to real POST /api/chat; remove hardcoded mock reply
- marketplace: fetch GET /api/marketplace-presets; USE STRATEGY calls POST /api/profiles
- settings: sign-out confirmation dialog; execution mode read-only hint;
  version from expo-constants instead of hardcoded v2.3
- positions/history: empty state UI when no data
- CustomTabBar: always show tab labels (not only when focused)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 04:50:51 +00:00
5bba149a7b refactor: share feature flag contract across backend and web 2026-04-04 18:10:34 -07:00
d99cb94d19 feat: standardize request ids across operator flows 2026-04-04 18:07:43 -07:00
f73f855eb0 fix: align web verification with platform session contracts 2026-04-04 18:00:30 -07:00
6c39b9b185 refactor: move web auth onto platform session helpers 2026-04-04 17:07:42 -07:00
541c617717 refactor: move history tab behind backend apis 2026-04-04 16:52:06 -07:00
b433686776 refactor: move web trading data behind backend apis 2026-04-04 16:49:18 -07:00
ebaabaed47 feat: move manual entries behind backend api 2026-04-04 16:09:21 -07:00
44f3171783 refactor: route settings and config through backend apis 2026-04-04 15:50:44 -07:00
535e0a88a9 refactor: move profile reads onto backend api 2026-04-04 15:36:54 -07:00
42420687f9 feat: move core web profile flows behind backend api 2026-04-04 15:02:15 -07:00
b551ab2a4f feat: move dynamic config behind backend control plane 2026-04-04 14:26:12 -07:00
d78aeeffc2 feat: adopt platform auth and cosmos trading control 2026-04-04 13:13:08 -07:00
3cbbd6ccaa feat: scaffold trading monorepo foundation 2026-04-04 11:18:21 -07:00