On 2026-09-29 Gateway lost its connection, failed the reconnect's SSL
handshake and sat on an error dialog for 9 hours with its API port open:
clients connected, every startup request timed out, and systemd never
restarted it because java kept running.
- Broker connects with raiseSyncErrors, so a failed startup sync exits
instead of continuing with an empty portfolio(), which rebalance would
read as holding nothing.
- `ibkr-quant gateway` probes the Gateway under its own health_client_id.
- deploy/ensure-gateway.sh (`make gateway`) probes, waits a minute for a
self-reconnect, then restarts ibgateway.service and waits for it.
- The trade and fills units run `make gateway` as ExecStartPre; fills
now retries on failure like trade does.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Connects to IB Gateway through ib_async and trades the S&P 500 with the
UpCap+MomGap factor combo ported from quant-trading's
fc_up_cap_mom_gap_daily: signal on opens through today's open, equal
weight top 10, MOC orders filled at today's close, 10% resize band.
- make universe/bars/check/plan/submit/fills for the daily loop; refuses
non-paper accounts unless allow_live, open orders, stale bars, and
orders outside 09:31-15:45 ET
- make backtest replays the live loop day by day with plan_orders and
IBKR Fixed commissions; selection uses each day's index members
- make bars fails fast when the Gateway's historical farm is down
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>