nohup: ignoring input
2026-07-08 19:24:54,981 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-08 19:24:54,982 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("users")
2026-07-08 19:24:54,982 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,983 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("idempotency_records")
2026-07-08 19:24:54,983 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("trade_history")
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("trade_learning")
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tsm_orders")
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,984 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tsm_positions")
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tsm_capital")
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("tsm_events")
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,985 INFO sqlalchemy.engine.Engine COMMIT
2026-07-08 19:24:54,986 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-08 19:24:54,986 INFO sqlalchemy.engine.Engine SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite~_%' ESCAPE '~' ORDER BY name
2026-07-08 19:24:54,986 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,986 INFO sqlalchemy.engine.Engine ROLLBACK
2026-07-08 19:24:54,987 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-08 19:24:54,987 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-08 19:24:54,987 INFO sqlalchemy.engine.Engine PRAGMA main.table_xinfo("tsm_positions")
2026-07-08 19:24:54,987 INFO sqlalchemy.engine.Engine [raw sql] ()
2026-07-08 19:24:54,989 INFO sqlalchemy.engine.Engine ROLLBACK
2026-07-08 19:24:54,989 INFO sqlalchemy.engine.Engine COMMIT
2026-07-08 19:24:55.075 | INFO     | app.ai.ai_consensus:_rebuild_adapters:276 - [Consensus] Active adapters: ['deepseek', 'llama']
INFO:     Started server process [142318]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[I 260708 19:24:58 smartConnect:124] in pool
2026-07-08 19:24:59.356 | INFO     | app.broker.angel_one:_login:253 - [AngelOne] IPs — local=164.68.116.241 public=164.68.116.241
2026-07-08 19:25:10.970 | INFO     | app.broker.angel_one:_load_scrip_master:86 - [AngelOne] Scrip master loaded: 158,600 symbols
2026-07-08 19:25:11.052 | INFO     | main:_connect_brokers:294 - [Startup] Angel One auto-connected ✅ client=G204035
2026-07-08 19:25:11.059 | INFO     | app.market.live_feed:_run:250 - [LiveFeed] WebSocket connecting…
2026-07-08 19:25:11.060 | INFO     | app.market.live_feed:_start_supervisor:273 - [LiveFeed] Reconnect supervisor started
2026-07-08 19:25:11.483 | INFO     | app.market.live_feed:_on_open:328 - [LiveFeed] ✓ WebSocket open
2026-07-08 19:25:11.483 | INFO     | app.market.live_feed:_do_subscribe:441 - [LiveFeed] Subscribed: 2 tokens (2 indices, 0 equities)
2026-07-08 19:25:21.020 | INFO     | app.market.live_feed:_load_scrip_master:146 - [LiveFeed] Scrip master loaded: 158,608 entries
2026-07-08 19:25:21.136 | DEBUG    | app.market.live_feed:get_token:186 - [LiveFeed] Token not found for: TATAMOTORS
2026-07-08 19:25:21.174 | INFO     | app.market.live_feed:_do_subscribe:441 - [LiveFeed] Subscribed: 47 tokens (2 indices, 45 equities)
2026-07-08 19:25:21.174 | INFO     | main:_connect_brokers:325 - [Startup] Live feed started ✅ (48 symbols subscribed)
2026-07-08 19:25:21.175 | INFO     | app.websocket.market_stream:set_live_provider:84 - [Stream] Live data provider registered
2026-07-08 19:25:21.175 | INFO     | app.websocket.market_stream:connect_angel_one_feed:227 - [Stream] WebSocket stream bridged to real Angel One feed ✅
2026-07-08 19:25:21.175 | INFO     | app.broker.mstock:connect:212 - [MStock] Authenticating with TOTP for client MA58886
2026-07-08 19:25:21.875 | DEBUG    | app.broker.mstock:_post_form:107 - [MStock] POST /session/verifytotp → 200
2026-07-08 19:25:21.876 | INFO     | app.broker.mstock:connect:242 - [MStock] Connected — client MA58886, user: GANESHAN SASIKUMAR
2026-07-08 19:25:21.876 | INFO     | main:_connect_brokers:359 - [Startup] MStock auto-connected ✅ client=MA58886
2026-07-08 19:25:21,892 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-07-08 19:25:21,897 INFO sqlalchemy.engine.Engine SELECT tsm_capital.id AS tsm_capital_id, tsm_capital.total_capital AS tsm_capital_total_capital, tsm_capital.available_capital AS tsm_capital_available_capital, tsm_capital.deployed_capital AS tsm_capital_deployed_capital, tsm_capital.realized_pnl AS tsm_capital_realized_pnl, tsm_capital.updated_at AS tsm_capital_updated_at 
FROM tsm_capital 
WHERE tsm_capital.id = ?
 LIMIT ? OFFSET ?
2026-07-08 19:25:21,897 INFO sqlalchemy.engine.Engine [generated in 0.00045s] (1, 1, 0)
2026-07-08 19:25:21,902 INFO sqlalchemy.engine.Engine SELECT tsm_positions.id AS tsm_positions_id, tsm_positions.symbol AS tsm_positions_symbol, tsm_positions.broker AS tsm_positions_broker, tsm_positions.exchange AS tsm_positions_exchange, tsm_positions.style AS tsm_positions_style, tsm_positions.side AS tsm_positions_side, tsm_positions.qty AS tsm_positions_qty, tsm_positions.entry_price AS tsm_positions_entry_price, tsm_positions.ltp AS tsm_positions_ltp, tsm_positions.stop_loss AS tsm_positions_stop_loss, tsm_positions.target_price AS tsm_positions_target_price, tsm_positions.status AS tsm_positions_status, tsm_positions.exit_price AS tsm_positions_exit_price, tsm_positions.realized_pnl AS tsm_positions_realized_pnl, tsm_positions.exit_reason AS tsm_positions_exit_reason, tsm_positions.strategy AS tsm_positions_strategy, tsm_positions.ai_confidence AS tsm_positions_ai_confidence, tsm_positions.mode AS tsm_positions_mode, tsm_positions.entry_order_id AS tsm_positions_entry_order_id, tsm_positions.sl_order_id AS tsm_positions_sl_order_id, tsm_positions.opened_at AS tsm_positions_opened_at, tsm_positions.closed_at AS tsm_positions_closed_at, tsm_positions.updated_at AS tsm_positions_updated_at 
FROM tsm_positions 
WHERE tsm_positions.status = ?
2026-07-08 19:25:21,903 INFO sqlalchemy.engine.Engine [generated in 0.00042s] ('OPEN',)
2026-07-08 19:25:21,907 INFO sqlalchemy.engine.Engine SELECT tsm_orders.order_id AS tsm_orders_order_id, tsm_orders.broker AS tsm_orders_broker, tsm_orders.symbol AS tsm_orders_symbol, tsm_orders.exchange AS tsm_orders_exchange, tsm_orders.side AS tsm_orders_side, tsm_orders.order_type AS tsm_orders_order_type, tsm_orders.product AS tsm_orders_product, tsm_orders.quantity AS tsm_orders_quantity, tsm_orders.filled_quantity AS tsm_orders_filled_quantity, tsm_orders.price AS tsm_orders_price, tsm_orders.avg_price AS tsm_orders_avg_price, tsm_orders.status AS tsm_orders_status, tsm_orders.mode AS tsm_orders_mode, tsm_orders.strategy AS tsm_orders_strategy, tsm_orders.ai_confidence AS tsm_orders_ai_confidence, tsm_orders.reason AS tsm_orders_reason, tsm_orders.created_at AS tsm_orders_created_at, tsm_orders.updated_at AS tsm_orders_updated_at 
FROM tsm_orders 
WHERE tsm_orders.status IN (?, ?)
2026-07-08 19:25:21,907 INFO sqlalchemy.engine.Engine [generated in 0.00050s] ('PLACED', 'PARTIALLY_FILLED')
2026-07-08 19:25:21.908 | INFO     | app.state.trading_state_manager:bootstrap:120 - [TSM] bootstrap: 0 open positions, capital total=₹500,000 available=₹500,000 deployed=₹0 realized=₹0
2026-07-08 19:25:21,909 INFO sqlalchemy.engine.Engine ROLLBACK
2026-07-08 19:25:22.607 | DEBUG    | app.broker.mstock:_get:132 - [MStock] GET /portfolio/positions → 400
2026-07-08 19:25:22.607 | ERROR    | app.broker.mstock:_get:142 - [MStock] HTTP 400 on GET /portfolio/positions: {"status":"error","message":"Primary and Secondary IP Address are not matching with current IP address.","error_type":"APIKeyException","data":null}
2026-07-08 19:25:22.608 | INFO     | main:_connect_brokers:417 - [Startup] TSM reconciliation: {'success': True, 'restored': 0, 'closed': 0}
2026-07-08 19:25:23.225 | DEBUG    | app.broker.mstock:_get:132 - [MStock] GET /portfolio/positions → 400
2026-07-08 19:25:23.226 | ERROR    | app.broker.mstock:_get:142 - [MStock] HTTP 400 on GET /portfolio/positions: {"status":"error","message":"Primary and Secondary IP Address are not matching with current IP address.","error_type":"APIKeyException","data":null}
2026-07-08 19:25:23.227 | INFO     | main:_connect_brokers:427 - [Startup] Engine pool reconciliation: {'success': True, 'restored': 0, 'skipped': 0, 'errors': []}
INFO:     106.192.252.121:49796 - "GET / HTTP/1.1" 200 OK
INFO:     106.192.252.121:49802 - "GET / HTTP/1.1" 200 OK
INFO:     106.192.252.121:57214 - "GET / HTTP/1.1" 200 OK
[W 260708 22:30:00 smartWebSocketV2:318] Attempting to resubscribe/reconnect (Attempt 1)...
2026-07-08 22:30:10.728 | INFO     | app.market.live_feed:_on_open:328 - [LiveFeed] ✓ WebSocket open
2026-07-08 22:30:10.731 | INFO     | app.market.live_feed:_do_subscribe:441 - [LiveFeed] Subscribed: 47 tokens (2 indices, 45 equities)
INFO:     198.235.24.37:56702 - "GET / HTTP/1.0" 200 OK
WARNING:  Invalid HTTP request received.
WARNING:  Invalid HTTP request received.
INFO:     160.119.71.136:44288 - "POST / HTTP/1.1" 405 Method Not Allowed
INFO:     160.119.71.136:44292 - "POST /_next HTTP/1.1" 404 Not Found
INFO:     160.119.71.136:44300 - "POST /api HTTP/1.1" 404 Not Found
INFO:     160.119.71.136:44310 - "POST /_next/server HTTP/1.1" 404 Not Found
INFO:     160.119.71.136:44326 - "POST /app HTTP/1.1" 404 Not Found
INFO:     160.119.71.136:44332 - "POST /api/route HTTP/1.1" 404 Not Found
WARNING:  Invalid HTTP request received.
WARNING:  Invalid HTTP request received.
INFO:     193.26.115.137:59226 - "POST /api/route HTTP/1.1" 404 Not Found
INFO:     198.235.24.15:60082 - "GET /metrics HTTP/1.1" 404 Not Found
INFO:     172.105.128.12:16028 - "GET / HTTP/1.1" 200 OK
INFO:     45.33.109.8:36443 - "GET / HTTP/1.1" 200 OK
INFO:     172.239.71.244:40874 - "GET / HTTP/1.1" 200 OK
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [142318]
