May 15, 2026
Policy Enforcement, Home Automation, and Full Email SMTP Send
A policy enforcement layer landed, bringing per-action allow/ask/deny controls across chat, subagent, and subconscious contexts
A policy enforcement layer landed, bringing per-action allow/ask/deny controls across chat, subagent, and subconscious contexts. The system seeds 147 default rules from 49 action IDs on startup. In chat and subagent, ‘ask’ policies surface a slide-up permission card; in subconscious, ask silently rejects. The permission UI was refined with human-readable descriptions, proper padding, and removal of the 30-second auto-deny timer — cards now wait indefinitely for an explicit click.
Permission response routing was fixed by moving from WebSocket to a REST endpoint. Previously, WS messages sat unread in the socket buffer during chat turns, causing every ‘Allow’ click to time out and be treated as denial.
Home automation joins the abilities suite with a HomeCapability that supports both REST and WebSocket connections to Home Assistant. Six actions — list_devices, get_state, control, list_automations, trigger_automation, subscribe_events — are available, along with dynamic manifest fields for Brain UI capability setup.
Email gained full send, reply, and forward actions via SMTP. The previous guard that forced a separate read call before reply/forward was removed — these actions now read the original email internally and return its content. A refactor introduced a SmtpCreds dataclass and cleaned up IMAP handler methods, while custom provider support was added for non-registry servers like GreenMail and Radicale.
CardDAV and CalDAV syncs were repaired with multiple fixes. The cycle count now resets on disconnect so syncs fire immediately after reconnect. CardDAV handler correctly calls module-level functions, falls back to direct collection URLs when principal discovery returns nothing, and lazily loads vCard data to handle servers that return objects with data=None.
The system prompt gained an operational principle instructing the model to use find_tools when a user explicitly names a DISCOVERABLE skill, preventing greedy substitution with always-available tools. Rich-media trailers across eight abilities were trimmed by dropping the redundant preamble line, saving tokens without altering the load-bearing directive.
A quick tip card component was added to the frontend, and abilities.sqlite was rebuilt with updated email embeddings to keep tool discovery aligned with recent schema changes.
-
Policy enforcement with 147 default per-action allow/ask/deny rules across all contexts
-
Home Automation capability with 6 actions via HA REST and WebSocket
-
Email send, reply, and forward now work over SMTP, with internal read and no pre-flight guard
-
Permission cards stay open indefinitely — no auto-deny timer — and route responses via REST
-
Fixed CardDAV sync: cycle count reset, direct collection fallback, and lazy vCard loading
-
Prompt updated to force tool discovery for explicitly named skills like subagent