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.
Precise stage outcomes
Fabro now separates a stage’s terminal outcome from its live execution state. Workflow routing sees four stable outcomes -succeeded, failed, partially_succeeded, and skipped - while retrying remains an internal execution state surfaced through events.
This makes edge conditions, agent routing directives, status files, and API responses line up around one vocabulary:
Clearer run state in the API and web app
The server now projects precise stage states to API clients, and the generated TypeScript client exposes those shapes directly. The web app uses the same model across run overview, stage sidebar, run files, settings, billing, and workflow detail views, so running, retrying, succeeded, failed, partially succeeded, and skipped stages render consistently. The OpenAPI schema also reuses canonical billing, model, provider, settings, and stage outcome types instead of parallel generated copies. Client code sees fewer accidental shape differences between API responses that represent the same product concepts.More
API
API
- Replaced the generated
StageStatusmodel withStageStateandStageOutcomeshapes - Tightened shared model, billing, provider, and settings schemas in the OpenAPI contract
- Regenerated the TypeScript API client with precise run, workflow, sandbox, hook, MCP, and settings models
Workflows
Workflows
allow_partial=truenow promotes exhausted retryable failures topartially_succeeded- Retryable failures emit retrying events while the node remains active instead of exposing
retryas a final outcome