Hardening: lock de sesion atomico, monitor off por defecto, fix DeepSeek reasoning-only
- session_lock: token uuid + compare-and-delete (Lua), TTL > timeout de ejecucion; abort solo limpia el lock tras cancelacion confirmada. Evita doble ejecucion concurrente sobre la misma sesion. - monitor HTTP (puerto 4545) deshabilitado salvo MCP_MONITOR_ENABLED=true y atado a 127.0.0.1; no se acumula historial en memoria si esta off. - DeepSeek/LiteLLM: turnos que llegan solo con reasoning_content (sin content ni tool_calls) ya no rompen la sesion (400 'Invalid assistant message') ni se pintan como 'pensando': se promueven a texto en el historial y en el snapshot persistido. - litellm pinneado a ==1.80.0 (builds reproducibles). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,13 @@ export const CONFIG_FILE_PATH =
|
||||
|
||||
export const MCP_PORT = Number(process.env.MCP_PORT || 3000);
|
||||
export const MONITOR_PORT = Number(process.env.MCP_MONITOR_PORT || 4545);
|
||||
// El monitor HTTP (UI + POST /retry) queda DESACTIVADO por defecto. Solo se
|
||||
// arranca si MCP_MONITOR_ENABLED === 'true' de forma explicita.
|
||||
export const MONITOR_ENABLED =
|
||||
String(process.env.MCP_MONITOR_ENABLED || "").toLowerCase() === "true";
|
||||
// Por seguridad escucha solo en loopback salvo que se defina MCP_MONITOR_HOST.
|
||||
export const MONITOR_HOST = process.env.MCP_MONITOR_HOST || "127.0.0.1";
|
||||
// Compatibilidad: si alguien fuerza MCP_MONITOR_DISABLED tambien lo respetamos.
|
||||
export const MONITOR_DISABLED =
|
||||
String(process.env.MCP_MONITOR_DISABLED || "").toLowerCase() === "1" ||
|
||||
String(process.env.MCP_MONITOR_DISABLED || "").toLowerCase() === "true";
|
||||
|
||||
Reference in New Issue
Block a user