github fronalabs/frona v2026.5.3

3 hours ago

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 CronRun task model with per-fire chats, centralized SSE, and a scheduler service with broadcast e2e tests.
  • Surface cron tasks in the Tasks panel with a Recurring badge 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.timezone with a TZ detection chain, User.resolved_timezone helper with TZ validation on profile update, chrono-tz + iana-time-zone dependencies, and a Timezone section in the setup wizard and settings page.
  • Expose server_timezone in /api/system/info; render task_time in the user's TZ and inject a temporal_context block into the system prompt.
  • Route cron messages to the source chat and recover crashed fires; broadcast task_update on 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 ChannelConfig with 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_failure for gateway adapters and a cancel token on ChannelCtx.
  • Extend channel manifest and ChannelCtx with setup hooks; allow the Start button on channels in Setup status and stop start_channel from writing Setup (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_mode for inbound Signal-fallback authorization; skip empty user-side messages when building inference history.

Browser

  • Migrate browser stack from browser-use to a new in-tree frona-browser crate based on chromiumoxide.
  • Pin browserless/chromium to v2.42.0.

Policy / Admin

  • Add User principal to the Cedar policy engine.
  • Add admin endpoints and a Users settings UI.
  • Add auth.allow_registration config flag.

Inference

  • Upgrade rig-core to 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_identity tool through AgentService; normalize attribute keys to lowercase and reject inline data: URLs.
  • Replace AgentResponse.avatar with avatar_url
  • Derive bon::Builder on UpdateAgentRequest; add bon dependency.

Frontend

  • Bump frontend dependencies to latest within semver.
  • Add description prop to ComboboxInput.
  • Fix react-hooks/exhaustive-deps warnings.

Build / Infra

  • Install protobuf-compiler in Docker builders (required by presage/Signal).
  • Ignore stray root node_modules and .vite caches.
  • Build Docker images before pushing release tags, with automatic rollback on failure.
  • Add OCI version, revision, and created labels 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.

Don't miss a new frona release

NewReleases is sending notifications on new releases.