Navigation and Routing System
The console uses a React-based routing architecture where theConsoleAppState tracks the current active section. The ConsoleSectionContent component acts as the primary dispatcher, rendering the appropriate section based on the app.section state apps/web/src/console/ConsoleSectionContent.tsx#26-108.
Section Mapping
The following table describes the mapping between internal section identifiers and their respective UI components:| Section ID | Component | Primary Purpose |
|---|---|---|
overview | OverviewSection | System health, attention items, and objective management. |
chat | ChatConsolePanel | Real-time agent interaction and run orchestration. |
usage | UsageSection | Token volume, latency tracking, and cost estimation. |
approvals | ApprovalsSection | Inbox for tool execution and pairing decisions. |
agents | AgentsSection | Agent registry management and backend preferences. |
channels | ChannelsSection | Connector status and platform-specific onboarding. |
memory | MemorySection | RAG management, workspace documents, and learning. |
cron | CronSection | Scheduled routines and automation management. |
access | AccessSection | Device pairing, trust levels, and remote verification. |
operations | OperationsSection | Low-level diagnostics and self-healing status. |
Routing Data Flow
The navigation system bridges the browser URL to the daemon’s internal capability model. Sources: apps/web/src/console/ConsoleSectionContent.tsx#26-108, apps/web/src/console/useConsoleAppState.tsx#20-20, apps/web/src/console/navigation.ts#10-10Core Console Sections
1. Overview and Objectives
TheOverviewSection provides a high-level “Attention” list, aggregating warnings from deployment posture, pending approvals, and failed support jobs apps/web/src/console/sections/OverviewSection.tsx#146-154. It serves as the primary interface for managing Objectives (Heartbeats, Standing Orders, Programs) apps/web/src/console/sections/OverviewSection.tsx#64-65.
- Key Logic:
buildAttentionItemscalculates system health by checkingconnectorDegraded,providerState, andusageInsights.alertsapps/web/src/console/sections/OverviewSection.tsx#146-154. - Backend Handler:
console_objectives_list_handlerinpalyrad.
2. Agents and Backends
TheAgentsSection manages the AgentRecord registry. It allows operators to define agent identities, workspace roots, and execution backend preferences apps/web/src/console/sections/AgentsSection.tsx#37-48.
- Execution Backends: Displays the
ExecutionBackendInventoryRecord, showing available sandboxes (e.g., Bubblewrap, Docker) and their rollout status apps/web/src/console/sections/AgentsSection.tsx#169-172. - Data Flow: The
AgentCreateRequestpayload is validated againstvalidate_execution_backend_selectionin the daemon before persistence crates/palyra-daemon/src/transport/http/handlers/console/agents.rs#113-122.
3. Usage and Insights
TheUsageSection visualizes performance metrics using the useUsageDomain hook apps/web/src/console/sections/UsageSection.tsx#36-36. It tracks:
- Token Volume: Prompt and completion tokens across a sliding window (24h to 90d) apps/web/src/console/sections/UsageSection.tsx#96-100.
- Routing Decisions: Recent failover decisions made by the
ProviderRegistryapps/web/src/console/sections/UsageSection.tsx#45-52. - Cost Estimates: Calculated based on the
model_mixandestimated_cost_usdapps/web/src/console/sections/UsageSection.tsx#109-114.
4. Memory and RAG
TheMemorySection provides visibility into the JournalStore and the vector-backed memory subsystem.
- Workspace Documents: Manages curated documents and their pinned status apps/web/src/console/sections/MemorySection.tsx#115-131.
- Learning Queue: Displays
memoryLearningCandidatesfor operator review, allowing for “Durable Fact” or “Procedure” extraction from chat history apps/web/src/console/sections/MemorySection.tsx#155-180. - Recall Preview: Allows testing how specific queries retrieve context from session, workspace, and stored memory groups apps/web/src/console/sections/MemorySection.tsx#139-145.
5. Access and Inventory
TheAccessSection manages the identity and trust boundary of the Palyra node.
- Node Pairing: Handles
NodePairingRequestViewflows, allowing operators to approve or reject new device connections apps/web/src/console/sections/AccessSection.tsx#88-95. - Device Inventory: Powered by
useInventoryDomain, it tracksInventoryDeviceRecordstatus, including presence and trust state apps/web/src/console/sections/AccessSection.tsx#73-78. - Remote Posture: Displays
DeploymentPostureSummary, warning if the daemon is bound to a dangerous remote interface without mTLS apps/web/src/console/sections/AccessSection.tsx#69-74.
Technical Implementation
Backend Route Dispatch
The daemon uses Axum to serve the console API. Handlers are modularized by subsystem. Sources: crates/palyra-daemon/src/transport/http/handlers/console/mod.rs#1-30Diagnostics and Self-Healing
TheOperationsSection exposes technical details that are excluded from the main Overview. It monitors:
- Self-Healing: Active incidents and remediation heartbeats from the background scheduler apps/web/src/console/sections/OperationsSection.tsx#65-71.
- Connector Health: Dead-letter counts for Discord/Slack integrations apps/web/src/console/sections/OperationsSection.tsx#152-156.
- Audit Events: Recent system-wide audit logs filtered by principal apps/web/src/console/sections/OperationsSection.tsx#31-36.