added fatal / trade and fixed up session manager

This commit is contained in:
Boki 2025-06-29 09:24:04 -04:00
parent 38bd15cad8
commit 6082a54d14
2 changed files with 18 additions and 8 deletions

View file

@ -56,7 +56,7 @@ export class QMSessionManager {
/**
* Initialize with cache provider and logger
*/
initialize(cache: CacheProvider, logger: Logger): void {
initialize(cache?: CacheProvider, logger?: Logger): void {
if (cache) {
this.setCacheProvider(cache);
}
@ -113,11 +113,11 @@ export class QMSessionManager {
return null;
}
session = validSessions[Math.floor(Math.random() * validSessions.length)];
session = validSessions[Math.floor(Math.random() * validSessions.length)] || null;
this.logger?.trace(`Selected session`, {
uuid: session.uuid,
failedCalls: session.failedCalls,
successfulCalls: session.successfulCalls,
uuid: session?.uuid || 'null',
failedCalls: session?.failedCalls || 'null',
successfulCalls: session?.successfulCalls || 'null',
});
}
@ -177,8 +177,13 @@ export class QMSessionManager {
let removedCount = 0;
Object.keys(this.sessionCache).forEach(sessionId => {
const initialCount = this.sessionCache[sessionId].length;
this.sessionCache[sessionId] = this.sessionCache[sessionId].filter(
const initialCount = this.sessionCache[sessionId]?.length;
if (!initialCount || this.sessionCache[sessionId] === undefined) {
this.logger?.trace(`No sessions to clean up for ${sessionId}`);
return;
}
this.sessionCache[sessionId] = this.sessionCache[sessionId]?.filter(
session => session.failedCalls <= SESSION_CONFIG.MAX_FAILED_CALLS
);
removedCount += initialCount - this.sessionCache[sessionId].length;
@ -344,6 +349,10 @@ export class QMSessionManager {
const id = `${sessionType.toLowerCase()}_${i}`;
const sessionKey = `qm:sessions:${sessionType.toLowerCase()}:${id}`;
if(!session){
this.logger?.warn(`Skipping empty session at index ${i} for ${sessionType}`);
continue;
}
const cachedSession: CachedSession = {
...session,
lastUsed: session.lastUsed instanceof Date ? session.lastUsed.toISOString() : session.lastUsed,

View file

@ -12,7 +12,8 @@ export interface Logger {
error(message: string, meta?: Record<string, unknown>): void;
warn(message: string, meta?: Record<string, unknown>): void;
debug(message: string, meta?: Record<string, unknown>): void;
trace?(message: string, meta?: Record<string, unknown>): void;
trace(message: string, meta?: Record<string, unknown>): void;
fatal(message: string, meta?: Record<string, unknown>): void;
child?(name: string, context?: Record<string, unknown>): Logger;
}