March 18, 2026
Dashboard Gateway and Scoped Interface Registry
Introduced a single-process gateway for managing interface daemons with scope-enforced proxying and a refreshed Radiant UI system.
The Gateway Architecture
To keep Chalie lightweight and easy to deploy, I’ve avoided the complexity of a separate reverse proxy or service mesh. Instead, the new dashboard gateway runs as a set of Flask blueprints within the main process. This gateway acts as a registry for interface daemons—small, external processes (now supported by Deno in our Docker environment) that provide specific capabilities.
Daemons self-register via a POST request and are assigned a stable gateway URL. All communication��signals, messages, and context—is routed through scope-enforced proxy endpoints. This ensures that an interface can only access the data it has been explicitly granted permission to see, protecting the user’s attention and intent from over-privileged extensions.
Governance and Permissions
Security is built directly into the registration flow. When a new daemon connects, it requests specific scopes. I’ve implemented a new UI flow in the chat interface where these requests are surfaced to the user. Nothing happens until the scopes are approved.
To facilitate this, I added a Context API that filters ambient state based on these approved scopes. Authentication between the gateway and Chalie’s core is handled via an auto-generated boot token, ensuring the internal proxying is secure from the first startup.
Radiant Design System
The UI received a significant overhaul to align the disparate parts of the project. I’ve extracted a shared theme.css implementing the “Radiant” design system. This creates a cohesive look across the main interface, the brain management view, and the onboarding flow.
In the Chat UI specifically, there is now an apps button in the presence bar that slides out a management panel. This panel shows the status of connected daemons (online, pending, or offline) and allows for granular scope management or complete removal of an interface.