Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.fabro.sh/llms.txt

Use this file to discover all available pages before exploring further.

Failure diagnostics now use the richer { reason, detail } shape. API clients reading terminal run failures should regenerate and read structured fields instead of parsing display strings.To migrate:
  1. Regenerate clients from the current OpenAPI schema.
  2. Read public summaries from failure.reason.
  3. Read source chains, categories, signatures, and redacted command output from failure.detail.

Server-backed agent sessions

Fabro now has durable server-backed agent sessions with persistent session records, turns, transcripts, event replay, and SSE turn streaming. The first slice is local to the same-machine server target, but it gives API clients and the CLI a durable session surface instead of treating every agent interaction as a one-off process.
fabro session -p "Inspect this checkout and summarize the failing tests"
Sessions store messages and turn events under Fabro storage, reject conflicting active turns, validate local working directories, and support interrupt requests through the server. Runs can now be connected with orchestration-only parent links without merging them into fork or rewind lineage. You can create child runs, filter by parent, link or unlink parent runs, and keep historical parent references even if a parent run is deleted.
fabro run hello --parent 01KRTKP5DJJ4EV6T7QSB081Z1N
fabro parent link child-run parent-run
fabro pr link run-id https://github.com/fabro-sh/fabro/pull/123
Pull request associations are event-sourced too. Existing runs can link, replace, view, and unlink GitHub PR URLs while Fabro-created PR flows continue to work as before.

Chats in the web app

The web app now includes /chats/new and /chats/:id routes for the emerging agent chat surface. The implementation ports the validated prototype into the real app shell, using assistant-ui rendering, scripted streaming replies, markdown, tool-call rendering, and a StrictMode-safe first-message handoff. This is the first web-facing layer over the new session primitives. It keeps the existing /start entry point for now while giving the product a dedicated conversation surface.

More

  • Added session create/list/read/update/delete, turn submission, event replay, interrupt, and session-scoped tool endpoints
  • Added parent run fields and PUT/DELETE /api/v1/runs/{id}/parent
  • Added pull request link and unlink endpoints for existing runs
  • Added GET /api/v1/health alongside the root /health probe
  • Sandbox details now expose provider dashboard links and network egress/ingress policy
  • Added fabro session -p <prompt> for server-backed local agent sessions
  • Added fabro parent link and fabro parent unlink
  • Added --parent to fabro run, fabro create, and fabro ps
  • Added fabro pr link, fabro pr unlink, and updated fabro pr view for stored PR associations
  • Template diagnostics now preserve source files, line/column spans, node IDs, and attribute context through CLI and server validation
  • fabro validate now treats undefined variables inside @file prompts as warnings in structural mode, matching inline prompt behavior
  • Custom provider and model agent_profile overrides now control profile-specific behavior for project memory, sessions, and runtime agent routing
  • Added opt-in Ollama and LiteLLM catalog providers
  • Sandbox tabs now show provider links and network policy where Fabro can assert them
  • Generated API client output is marked as generated for GitHub language and code-quality tooling
  • Fixed custom provider IDs in fabro exec and provider-filtered model listing
  • Fixed Daytona clone setup by moving Daytona repository roots under /home/daytona/repos
  • Fixed template validation so imported prompt files with undefined inputs produce warnings instead of hard errors