github fronalabs/frona v2026.9.0

2 hours ago

This release adds per-user views of background work and expands how agents retrieve ontology memory. A new activity indicator tracks active conversations, delegated tasks, scheduled runs, memory consolidation, and app work across the server. In chat, related work appears in a background-activity drawer with its agent name, current action, elapsed time, and a link back to the source. Cancellable work can be stopped from either view.

PKM search now combines exact names and aliases, inferred ontology types, metadata, and page contents. Search results explain why they matched and include relevant snippets. Agents can also inspect one entity's inferred graph or run read-only SPARQL queries for relationship, count, and join questions. Frona caches each user's materialized memory graph between consolidation runs so these queries do not rebuild it on every call.

The file manager can now rename, copy, move, create, and delete content across My Files and owned agent workspaces. The server verifies ownership for every virtual path, blocks workspace-root and path-traversal operations, handles filename collisions safely, and checks a multi-file move for conflicts before moving anything. Browser navigation now survives refreshes and back/forward history.

The release also fixes duplicate and out-of-order chat events, duplicate task attachments, malformed structured submissions, misleading usage rankings, and brittle custom tool views.

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

Memory recall and graph queries

  • Replace metadata-only PKM lookup with ranked search across exact paths, names, aliases, asserted and inferred ontology classes, page metadata, and visible body text.
  • Return structured search results with matched_by evidence, absolute file paths, identity ambiguity details, class interpretations, truncation status, and snippets from matching page content.
  • Teach agents to search memory before answering questions that may depend on the user's people, projects, services, preferences, decisions, files, past conversations, or established procedures.
  • Add memory_graph_get for reading one entity's direct and inferred types, literal attributes, and incoming or outgoing relationships. Results can be filtered by relation and direction.
  • Add memory_graph_sparql for read-only SPARQL SELECT and ASK queries against the user's reasoned graph, with built-in prefixes and a 200-row result cap.
  • Cache materialized, reasoned graphs per user. Frona invalidates the cache after consolidation, memory reset, or ontology catalogue publication.
  • Render memory search evidence and SPARQL results as structured chat views, including formatted queries, result tables, boolean answers, and truncation notices.
  • Improve the Memory inspector with color-coded memory kinds, relative timestamps, copy buttons for attribute values, readable JSON blocks, and persistent consolidation-panel state.

Live activity

  • Add a user-scoped execution registry and /api/activity snapshot endpoint for active inference, task, scheduled, memory, and app work.
  • Broadcast activity changes over the existing event stream, with polling and reconnect recovery when the live connection drops.
  • Add a top-bar activity indicator that shows the number of active executions and opens a list with the title, agent name, work type, status, current action, and elapsed time.
  • Show activity related to the current conversation in a collapsible chat drawer, including delegated tasks and scheduled runs that continue after the original response.
  • Link active items back to their chat, task, schedule, or Memory page, and expose cancellation where the underlying work supports it.
  • Replace the old animated-logo inference signal with the activity views so work remains visible when the user navigates away from its source chat.

Files and agent workspaces

  • Support rename, copy, move, folder creation, and deletion inside owned agent workspaces as well as My Files.
  • Allow copy and move operations between My Files and owned agent workspaces, or between two owned agent workspaces.
  • Resolve user:// and agent:// paths in the authenticated user's storage tree. Requests for another user's files or an unowned agent workspace are rejected.
  • Block rename, copy, move, and delete operations against workspace roots, and strengthen traversal checks for symlinks and paths whose final entries do not exist yet.
  • Preserve existing files during copy by assigning a deduplicated filename. Validate every source before a multi-file move so a collision cannot leave only part of the selection moved.
  • Keep the current folder in the URL, restore nested folders after reload, and support browser back and forward navigation in both the main file manager and chat file picker.
  • Keep direct uploads scoped to My Files. Files can then be copied or moved into an agent workspace through the file manager.

Chat, tasks, and inference

  • Batch buffered chat events into one visible update per animation frame. Opening a chat with a large event backlog no longer causes a render for every queued event.
  • Sort persisted and streamed messages by creation time so task conversations remain chronological when storage responses and live broadcasts arrive in a different order.
  • Deduplicate tool calls by call ID while merging persisted messages with streamed state, preventing replayed calls from appearing twice.
  • Deduplicate attachments by owner and path as tool results arrive, including cases where produce_file and complete_task return the same file.
  • Clarify task and recurring-task instructions around process_result. Results always reach the source chat; the flag now clearly means that the originating agent has another concrete step to perform.
  • Repair model submissions that encode an expected JSON object or array inside a string, without spending another model call when the repaired value passes the schema.
  • Return field-specific schema feedback for structured submissions that cannot be repaired, giving the model a better chance to correct its next attempt.
  • Exclude usage records without a chat ID from the Usage dashboard's top-chats ranking.

Interface and development reliability

  • Fall back to the generic tool-call renderer when a custom view throws or receives an unknown success payload. Failed calls keep their custom error presentation.
  • Move development SearXNG settings into a mounted configuration file and enable the Bing and Mwmbl search engines for local development.
  • Disable Next.js telemetry explicitly in the frontend's development, build, and start commands.
  • Treat next-env.d.ts as generated output instead of keeping it in source control.
  • Refresh the project overview to document both memory backends, all supported channels, usage tracking, commands, the single-container architecture, and current development commands.
  • Add focused backend and frontend coverage for memory retrieval, graph queries, activity tracking, cross-workspace file operations, structured-output repair, and event-stream replay.

Get started

  • Quickstart: bring up the stack with Docker Compose in minutes
  • Memory: configure and inspect ontology-backed memory
  • Documentation: full guides and reference

Don't miss a new frona release

NewReleases is sending notifications on new releases.