analyze/upload vía /api/image-bytes + MCP HTTP (vscode) forzado a test
Imágenes: - analyze_image y upload resuelven los bytes por el endpoint Python /api/image-bytes (pythonGetBinary). analyze_image enruta los dominios forge (env ACAI_FORGE_DOMAIN) al endpoint en vez de fetch directo (que daba ECONNREFUSED 127.0.0.1 dentro del container). Aislamiento de entorno (vscode = solo test): - resolveCurrentModeOverride(): sesión MCP HTTP (mcpSessionId presente) → "local"; stdio (chat/cron) → ACAI_MODE_OVERRIDE de entorno. Lo usan los builders de headers (pythonServerClient, files/helpers) → toda tool del MCP HTTP manda X-Acai-Mode: local. - httpServer.resolveProjectCredentials fuerza forceMode:"local" al resolver project-info → la sesión obtiene web_url/api_web_url forge-local y opera siempre contra test, nunca producción. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -76,7 +76,12 @@ const verifyJwt = (token) => {
|
||||
|
||||
const resolveProjectCredentials = async (projectName, acaiUser = null) => {
|
||||
try {
|
||||
const info = await fetchProjectInfo(projectName, acaiUser);
|
||||
// El transporte MCP HTTP es exclusivo de clientes externos (plugin VS
|
||||
// Code Acai Forge). Por politica solo pueden operar sobre TEST: forzamos
|
||||
// mode=local al resolver el proyecto, de modo que web_url/api_web_url
|
||||
// apunten al web forge-local y TODA la sesion (records, modules, git,
|
||||
// media...) use el destino de test, nunca produccion.
|
||||
const info = await fetchProjectInfo(projectName, acaiUser, { forceMode: "local" });
|
||||
if (!info.success) {
|
||||
throw new Error(info.error || "Failed to resolve project info");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user