This document serves as the comprehensive reference for the Agent Node Mesh UI in the Cortex platform. It describes the UI structure, design philosophy, user journeys, and technical implementation details to ensure functional stability during future iterations.
The Agent Node Mesh page (NodesPage.js) is the central control plane for managing distributed execution environments. It follows a vertical stack layout with collapsible functional modules.
Agent Node Mesh with a rocket icon (🚀).Each registered node is represented by a high-density management card.
bg-green-500: Node is active and heartbeating via gRPC.bg-gray-400: Node is offline or stale.online, busy, idle, offline) derived from gRPC mesh status.test-prod-node).140px is reserved to prevent UI shifting.top-full) to ensure they are never clipped by the header navigation bar.NodeTerminal.js)FileSystemNavigator.js)LIST.Shell, Browser, and Sync logic.agent_config.yaml and installation package.task_start, task_complete, sync_progress).gpu-worker-1) and Display Name.ls -la or top to inspect environment.| Component | UI Purpose | Source Path |
|---|---|---|
NodesPage.js |
Main Orchestrator View & Mesh Logic | NodesPage.js |
NodeHealthMetrics |
Real-time Rich CPU/RAM Metrics | NodesPage.js (L140) |
NodeTerminal.js |
PTY-bound Xterm.js terminal | NodeTerminal.js |
FileSystemNavigator.js |
File/Folder Explorer | FileSystemNavigator.js |
NodeRegistryService |
Backend Node Tracking | node_registry.py |
AgentNodeStats |
Pydantic Rich Metric Schema | schemas.py |
TaskAssistant |
gRPC Dispatcher Brain | assistant.py |
To ensure a feature is fully operational and stable, follow this mandatory verification path:
agent.proto has changed, you MUST regenerate the Python stubs for both the Hub and the Agent BEFORE deploying. Failure to do so will cause communication deadlocks or fields like task_id to be missed.
# Hub cd /app/ai-hub/app/protos && python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. agent.proto # Agent cd /app/agent-node && python3 -m grpc_tools.protoc -Iprotos --python_out=. --grpc_python_out=. protos/agent.proto
.proto changes AND the newly generated _pb2.py files.bash /app/deploy_remote.sh
Once deployed, perform a basic connectivity check directly inside the production container. This bypasses potential frontend/network issues to isolate the backend logic.
ai_hub_service container:
docker exec ai_hub_service python3 -c "
import requests
# Replace with the user_id that owns the node
headers = {'X-User-ID': '9a333ccd-9c3f-432f-a030-7b1e1284a436'}
r = requests.get('http://localhost:8000/api/v1/nodes/test-prod-node/fs/ls?path=.', headers=headers)
print(f'Status: {r.status_code}')
print(r.text)
"200 OK status and a JSON body containing the file list.If the automated checks pass but UI behavior is suspect, use the Browser Subagent workflow (/browser_setup) to capture screenshots of the live environment at https://ai.jerxie.com/nodes.
[!IMPORTANT] Subagent Interaction Efficiency: If you need to test the UI, you MUST map out the exact step-by-step navigation path (which icons to click, which buttons to press) before calling the tool. Since the subagent cannot read the source code or component structure, it relies purely on visual discovery, which is highly inefficient without explicit step-by-step guidance.