Broker sessions rest while nothing needs them

A firm's client used to stay logged in around the clock, renewing on a fixed
timer overnight and at weekends. Now, once a firm has nothing open, nothing
pending and nothing left to trade before its next session for a random
15–45 minutes, its client disconnects and the dashboard shows it Resting.
It logs back in a random 20–50 minutes before the next session opens, at a
check-in every 3–7 Central daytime hours, or at once when trading starts, a
manual leg, copy trade, manual order or AutoBuyer run needs it. Token
renewals fall at random points (Tradovate 15–45 min before expiry, TopstepX
every 45–150 min). Settings → Trading → Rest idle broker sessions
(session_rest) turns it off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Li
2026-10-21 13:28:47 -05:00
co-authored by Claude Opus 5.5
parent 6dd2528fe2
commit 5eb0ea7760
18 changed files with 872 additions and 41 deletions
+9
View File
@@ -1764,6 +1764,15 @@ export class DXTradeClient implements PlatformClient {
};
}
/** See PlatformClient: what the session still waits on besides positions
* and working orders. */
public restBlocker(): string | null {
if (this.ocoPairs.some((p) => !p.done)) return 'an exit pair is still tracked';
if (this.pendingFills > 0) return `${this.pendingFills} fill(s) awaited`;
if (this.daysFetchInFlight) return 'a history fetch is underway';
return null;
}
/** Whether a login can't happen until someone acts — the supervisor
* doesn't rebuild those (a rebuild can't fix a URL or a password). */
public get needsAttention(): boolean {