Frona v2026.6.0 – self-hosted personal AI assistant

syncerx1 pts0 comments

Release v2026.6.0 · fronalabs/frona · GitHub

//releases/show" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

//releases/show;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

fronalabs

frona

Public

Notifications<br>You must be signed in to change notification settings

Fork<br>20

Star<br>192

v2026.6.0

Latest

Latest

Compare

Choose a tag to compare

Sorry, something went wrong.

Filter

Loading

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

No results found

View all tags

syncer

released this

14 Jun 19:01

v2026.6.0

5cf63f0

This release ships a unified human-in-the-loop pause/resume mechanism across every channel, a slash composer for invoking skills and other agents directly, typed file tools that cut token usage and hallucinations, and per-channel message splitters so long replies arrive cleanly instead of getting truncated. Approvals (app deploys, multiple-choice questions, credential picks) now render as buttons on Telegram, Discord, Slack, and WhatsApp Cloud, and as Reply YES or NO prompts on Signal, SMS, and personal WhatsApp, with the inbound parser accepting the obvious variants. Behind the scenes, a new Harness struct consolidates the agent runtime view of AppState, sandboxing moves to a single SandboxManager per principal kind, and the channel adapter framework now classifies failures with a typed ChannelError.

Supported channels: Slack, Discord, Telegram, Signal, SMS, WhatsApp Cloud, WhatsApp Personal.

Human in the loop

Replace opaque tool_data blobs on tool calls with typed Hitl values; build typed HITL tool components and consume new SSE event names.

Persist Paused message status and resume with an atomic compare-and-swap; translate the new InferenceResponse outcomes into pause/resume persistence.

Add a POST /api/chats/{chat_id}/tool-calls/resolve endpoint, lift the HITL callback parser and response label into a shared hitl module, and drop the legacy app and vault approval routes superseded by the resolve endpoint.

Re-seed pending HITLs from msg.tool_calls on inference_done so paused turns continue to surface new questions.

Share an inbound reply HITL resolver with YES/NO variant parsing (y, yeah, ok, nope, thumbs-up emoji, and the usual variants).

Resume HITL delivery on resolve so sequential adapters render the next prompt; use the absolute public_base_url for HITL fallback URLs on channels that can't render the picker.

Render HITL prompts and resolve responses on Telegram (inline keyboard), Slack (Block Kit via Socket Mode interactions), Discord (buttons), WhatsApp Cloud (interactive messages and button taps), WhatsApp personal account (quote replies), Signal (quote replies), and SMS (Reply YES or NO hint on App-deploy approval prompts).

Hold the Discord and WhatsApp typing indicator across long inferences so the user sees activity while the agent is generating.

Rename the manage_service tool to manage_app and adopt typed HITL hooks; exit tasks on HITL and respawn via run_task.

Test HITL persistence, pause rendering, batched resolve, and the resume race.

Slash composer

Add a chat::slash invocation parser for / and @ prefixes; add a MessageCommand side field on Message for parsed slash invocations.

Wire up /commands end to end: dispatch, terminal-write refactor, cross-agent attribution, slash parsing.

Add a GET /api/chats/{id}/commands discovery endpoint and a listCommands API client.

Frontend: slash composer with Lexical triggers, directive chips, and a /new builtin that opens a fresh chat with the current agent.

@ per-turn override: the reply is attributed to the target agent and the next message reverts to the chat's default.

Add save_chat, save_updated_message, and delete_messages_for_chat helpers.

Skills: new SKILL.md frontmatter fields disable-model-invocation, argument-hint, and arguments; hide disable-model-invocation skills from the model's available-skills block while keeping them in the / menu for users to invoke directly.

Add e2e tests for /agent dispatch and commands discovery.

Channels and message splitter

Add a per-format message splitter with shared boundary primitives that break at paragraph, then line, then word, then UTF-8 character,...

hitl message whatsapp slash agent search

Related Articles