Frona v2026.5.5 – self-hosted personal AI assistant The Frona v2026.5.5 release introduces a unified identity system where all user-owned entities now use a `Handle` newtype, reshaping policy principals and storage paths under a user handle. Tasks gain a required `result_schema` for rendering results into source chats, alongside a fix for a long-standing CronRun crash-recovery race. The chat UI now paginates history on scroll-up and displays day separators with per-message hover times. This release is a big push on identity unification and task scheduling robustness. Every user-owned entity User, Agent, App, McpServer, Channel now carries a Handle newtype, Policy principals are reshaped as {user handle}/{entity handle} under a User parent, and all storage and routing paths are keyed by handle. Tasks gain a required result schema that drives how cron and one-shot results render back into source chats, with a fix for a long-standing CronRun crash-recovery race. The chat UI now paginates history on scroll-up and shows day separators with per-message hover times. Under the hood, Policy decisions and per-agent permitted tool sets are now cached, sandbox limits accept partial saves, and a Handle migration carries existing installs forward. Supported channels: Slack, Discord, Telegram, Signal, SMS, WhatsApp Cloud, WhatsApp Personal. Identity / Handles - Add a Handle newtype with sanitization rules and a build-script-generated reserved-name list; rename User.username to handle and require Agent.user id + Agent.handle . - Add App.handle , Channel.handle , and rename McpServer.slug to handle ; switch all four to handle-keyed paths. - Unify on-disk storage under data/users/{handle}/{subsystem} with per-channel storage paths. - Switch Cedar entity UIDs to Kind::"{user handle}/{entity handle}" with User parent; refactor SandboxPrincipalRef into a struct + Kind enum and rewire policy::service accordingly. - Update the Cedar schema, db init indexes, and add a handle unification migration cutover at 2026-05-24T00:00:00Z ; drop seed config agents . - Reshape CandidateEvent to carry typed User / Channel / Chat / Message / Contact references. - Carry user handle through the auth middleware and all API routes: admin/auth, agents, app proxy, files, MCP, browser, skills, tools, messages. - Scope agent skills by user handle/agent handle ; update content + sandbox tools, the tool manager, and agent-affecting tools to use Handle paths. - Thread Handle through chat, channel, credential, notification, memory, and inference services. - Refresh built-in agent prompts and the manage service prompt + manifest schema for handle-keyed URLs. Tasks / Cron - Add a result schema classifier and renderer for task result delivery; require result schema on create task / create recurring task and schema-drive source-chat delivery. - Plumb result schema through create cron template + spawn cron run ; accept complete task.result as any JSON value and validate against the schema. - Restrict send message to the agent's heartbeat chat so tasks deliver through complete task.result . - Fix CronRun crash-recovery race by narrowing the orphan query and reordering resume all . - Thread space id through cron templates so CronRuns deliver into the right space. - Wrap the initial task instruction in