fix(agent): auto-start scenario chat, robust HITL resume, strict service auth

- frontend: fix auto-start on dashboards->/agent navigation (undefined params
  ReferenceError), route initial connect through ConnectionManager with auto-retry,
  reset runModel on objectId change and failed recovery
- agent: fix closure-over-loop-variable bug in _inject_env_id_into_tools (env now
  resolved from request-local ContextVar; idempotent wrapping), make
  execute_dashboard_result.result_key optional, resilient checkpoint resume with
  ToolMessage repair + direct-tool fallback, remove dead fast-path, consolidate
  tool_call parsing in _tool_resolver, context-safe ContextVar resets
- backend: llm-config gated by strict service-only auth (no user-JWT fallback),
  tighten idempotent run reuse (dashboard/env/intent match + 6h staleness),
  terminal event transitions run.status to COMPLETED/FAILED/CANCELLED,
  null-safe metric parsing in dashboard query model
- run.sh/docker-compose: require SERVICE_JWT (random per-run secret) instead of
  public default
This commit is contained in:
2026-08-06 18:26:50 +07:00
parent b820b8b47c
commit 9cb5717a78
32 changed files with 1226 additions and 263 deletions

View File

@@ -435,9 +435,12 @@ async def global_exception_handler(request: Request, exc: Exception):
async def network_error_handler(request: Request, exc: NetworkError):
with belief_scope("network_error_handler"):
logger.explore("Network error", error=str(exc))
return HTTPException(
return JSONResponse(
status_code=503,
detail="Environment unavailable. Please check if the Superset instance is running.",
content={
"detail": "Environment unavailable. Please check if the Superset instance is running.",
"path": request.url.path,
},
)