This release is a big push on channels and harness scheduling. Frona gains four new messaging adapters Slack, WhatsApp (Cloud + Personal), Discord, and Signal, plus per-channel retry policies, exponential-backoff reconnects, and unified outbound delivery with dispatch-mode awareness. The cron/scheduling system is now timezone-aware end-to-end (server + user TZ, temporal_context in prompts) and surfaces recurring tasks in the UI with next-run times and a runs table. Under the hood, the browser stack was migrated from browser-use to a new in-tree frona-browser crate on chromiumoxide, rig-core was upgraded to 0.37 (with OpenAI gpt-5/o-series fixes), and Cedar policy gained a User principal alongside new admin endpoints and a Users settings UI.
Harness
- Add
CronRuntask model with per-fire chats, centralized SSE, and a scheduler service with broadcast e2e tests. - Surface cron tasks in the Tasks panel with a
Recurringbadge and next-run time; show cron runs table in the task UI. - Split the cron tool surface and tighten task-execution rules in agent prompts.
- Make the scheduling pipeline timezone-aware: add
ServerConfig.timezonewith a TZ detection chain,User.resolved_timezonehelper with TZ validation on profile update,chrono-tz+iana-time-zonedependencies, and a Timezone section in the setup wizard and settings page. - Expose
server_timezonein/api/system/info; rendertask_timein the user's TZ and inject atemporal_contextblock into the system prompt. - Route cron messages to the source chat and recover crashed fires; broadcast
task_updateon cron creation.
Channels (Experimental)
- Add Slack adapter (Socket Mode), with bot-auth and connect logs split for clearer diagnostics.
- Add WhatsApp Cloud API adapter and WhatsApp Personal (wa-rs) adapter, including a markdown-to-WhatsApp formatter and rendered manifest markdown in the setup UI.
- Add Discord channel adapter.
- Add Signal channel adapter (presage-based) with markdown → Signal BodyRange conversion and structured-output extraction for Signal-mode inference.
- Add
ChannelConfigwith a default retry policy; expose per-channel retry overrides on the channel config page and persist them on create/update. - Retry failed channel connections with exponential backoff; add
ChannelManager::report_failurefor gateway adapters and a cancel token onChannelCtx. - Extend channel manifest and
ChannelCtxwith setup hooks; allow the Start button on channels inSetupstatus and stopstart_channelfrom writingSetup(which previously broke the watcher loop). - Unify message broadcast and presigning inside
chat_service; stamp delivery lazily and reconcile orphans on channel start. - Make outbound delivery per-message dispatch-mode aware; persist
Message.dispatch_modefor inbound Signal-fallback authorization; skip empty user-side messages when building inference history.
Browser
- Migrate browser stack from
browser-useto a new in-treefrona-browsercrate based onchromiumoxide. - Pin
browserless/chromiumto v2.42.0.
Policy / Admin
- Add
Userprincipal to the Cedar policy engine. - Add admin endpoints and a Users settings UI.
- Add
auth.allow_registrationconfig flag.
Inference
- Upgrade
rig-coreto 0.37. - Fix OpenAI provider for
gpt-5/ o-series models.
Credentials
- Remove the Keeper vault provider and Keeper UI/docs (drop
keeper-secrets-manager-core).
Identity
- Route the
update_identitytool throughAgentService; normalize attribute keys to lowercase and reject inlinedata:URLs. - Replace
AgentResponse.avatarwithavatar_url - Derive
bon::BuilderonUpdateAgentRequest; addbondependency.
Frontend
- Bump frontend dependencies to latest within semver.
- Add
descriptionprop toComboboxInput. - Fix
react-hooks/exhaustive-depswarnings.
Build / Infra
- Install
protobuf-compilerin Docker builders (required by presage/Signal). - Ignore stray root
node_modulesand.vitecaches. - Build Docker images before pushing release tags, with automatic rollback on failure.
- Add OCI
version,revision, andcreatedlabels to published images. - Bump pinned apt and pip packages to latest.
License
Frona is released under the Business Source License 1.1. You can use, modify, and self-host it freely; the only restriction is that you may not use it to provide an AI agent platform as a service to third parties. The license converts to Apache 2.0 on 2029-02-28.