AI Assistant: show sandbox capacity and per-chat runtime status

The self-hosted AI Assistant UI does not expose sandbox runtime information.

When all sandbox runner slots are occupied, the user only sees:

“Something went wrong before I could finish that response. Please try again.”

There is no indication that:

  • sandbox capacity has been exhausted;
  • a specific chat owns an active sandbox;
  • an idle sandbox is still occupying a runner slot;
  • the user should wait for the idle timeout or release a sandbox.

This makes the issue look like an LLM, network, or workflow failure.

Proposed improvement

AI Assistant header

Show an aggregate status indicator:

  • Sandboxes: 0/2
  • Sandboxes: 1/2
  • Sandboxes: 2/2 — capacity full
  • Runner unavailable

Chat list

Show a status for every chat:

  • Active
  • Starting
  • Idle
  • Stopped
  • Unavailable

Also show the last activity time.

Sandbox controls

Add a “Release sandbox” or “Stop sandbox” action that frees the
runtime without deleting the chat history.

Deleting the chat and releasing its sandbox should remain separate
operations.

Error handling

Instead of a generic error, display an actionable message:

“No sandbox capacity is currently available. 2 of 2 slots are in use.
Wait for an idle sandbox to stop or release one of the active sessions.”

Administration

Instance owners should be able to see:

  • registered runners;
  • total and used capacity;
  • sandbox idle TTL;
  • active sandbox count;
  • which accessible chat owns each sandbox.

The browser should not communicate with Sandbox API directly.
The n8n backend should query Sandbox API, enforce project/user
permissions, correlate sandbox IDs with AI thread IDs, and return only
safe status information.

Environment

  • n8n 2.35.7
  • Self-hosted with Docker Compose
  • n8n Sandbox Service
  • Runner capacity: 2
  • Idle TTL: 1800 seconds

Reproduction

  1. Start AI Assistant chats until both runner slots are occupied.
  2. Open another chat.
  3. Send a message.
  4. The UI displays only a generic error.
  5. The server logs show that no sandbox runners are available.