Add changelog entries for March 14-15

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-03-15 18:28:28 -04:00
parent 8b948a2d68
commit ec0a612ea5
No known key found for this signature in database
4 changed files with 80 additions and 14 deletions

View file

@ -1 +1 @@
4ee215cadaa28fd335d5ab2d306740574d5b8b32
8b948a2d6852023eb41eed3a99e9b402da3f5fbe

View file

@ -1,8 +1,28 @@
---
title: "fabro rewind, workflow list, and Dark Factory"
title: "fabro logs, background runs, and workflow scaffolding"
date: "2026-03-14"
---
## View run logs with fabro logs
Previously, the only way to follow a workflow's progress was through the terminal that started it. The new `fabro logs` command lets you view event logs for any run — active or completed — from any terminal. With `--pretty`, agent conversations render with formatted messages and tool calls instead of raw JSON.
```bash
fabro logs my-workflow --pretty
fabro logs -f abc123 -p
```
You can reference runs by name, ID prefix, or workflow slug. The `-f` flag follows live events as they happen.
## Background workflows with --detach
You can now fork a workflow into a background process with `fabro run --detach`, then reconnect later with `fabro logs -f`. This is useful for long-running workflows where you don't want to keep a terminal open.
```bash
fabro run my-workflow --detach
fabro logs -f my-workflow
```
## Rewind workflow runs
You can now rewind a workflow run to an earlier checkpoint and resume from there. This is useful when a later stage goes off-track and you want to try again from a known-good point without restarting the entire workflow.
@ -11,25 +31,28 @@ You can now rewind a workflow run to an earlier checkpoint and resume from there
fabro rewind my-run plan@2
```
Target a specific node by name, `node@visit` for a particular visit count, or `@ordinal` for a checkpoint index. The command rewinds both the metadata and run branch refs, and optionally pushes to the remote.
## fabro workflow list
A new `fabro workflow list` command shows all available workflows in your project. Workflows are grouped by source (project vs. user-level), with descriptions pulled from each workflow's goal.
```bash
fabro workflow list
```
Target a specific node by name, `node@visit` for a particular visit count, or `@ordinal` for a checkpoint index.
## More
<Accordion title="CLI">
- Added `fabro workflow create <name>` subcommand to scaffold new workflows from a template
- Added `fabro workflow list` command showing all available workflows grouped by source
- Added `fabro inspect` command to display detailed JSON data for a workflow run
- Added project-level run defaults in `fabro.toml` (model, environment, sandbox image, etc.)
- Added `~/.fabro/` fallback for `@` file references
</Accordion>
<Accordion title="Improvements">
- Default Daytona sandbox now uses the `daytona-medium` snapshot with standard dev tools pre-installed
- Workflow list output shows grouped sections with aligned columns and truncated descriptions
- Added Dark Factory documentation page
- Added workflow diagram to README
- Run resolution now matches workflow slugs and display names, not just run IDs
- Routing events now include context about why an edge was selected
</Accordion>
<Accordion title="Fixes">
- Fixed `fabro logs --pretty` wrapping past terminal edge on long assistant messages
- Fixed empty `run_id` on sandbox events in `progress.jsonl`
- Fixed credential-embedded GitHub URLs not being parsed correctly
- Fixed logo SVG viewBox clipping the right edge of the O
- Fixed missing `git_commit_sha` in run branch commit messages
</Accordion>

View file

@ -0,0 +1,42 @@
---
title: "fabro ps overhaul, fabro rm, and GitHub token injection"
date: "2026-03-15"
---
## Docker-style process listing with fabro ps
`fabro ps` has been rebuilt to behave like `docker ps`. It now shows a table with run ID, status, workflow name, goal, and timing — making it easy to see what's running at a glance. The GOAL column shows the first line of each run's goal, so you can distinguish between multiple runs of the same workflow.
```bash
fabro ps # active runs
fabro ps -a # all runs including completed
```
Run status is now tracked via a proper state machine, so status transitions are reliable and `fabro ps` always reflects the current state.
## GitHub token injection for sandboxes
When a GitHub App is configured, Fabro now automatically injects an installation access token into sandboxes as `GITHUB_TOKEN`. Agents running inside sandboxes can use this token to clone private repos, push branches, and create pull requests without any manual credential setup.
## More
<Accordion title="CLI">
- Added `fabro rm` command to remove runs by ID with sandbox cleanup
- Added `-p` short alias for `--pretty` in `fabro logs`
- Added progress spinner during `run --preflight`
</Accordion>
<Accordion title="Workflows">
- Metadata branch renamed from `refs/fabro/{run_id}` to `fabro/meta/{run_id}` for cleaner ref namespace
- Added granular git checkpoint events and retro lifecycle events (`RetroStarted`, `RetroCompleted`, `RetroFailed`)
- `goal` field now included in `WorkflowRunStarted` event and rendered in `fabro logs --pretty`
- Run completion events now include final status and usage totals
</Accordion>
<Accordion title="Fixes">
- Fixed `--dry-run` executing command/script nodes instead of simulating them
- Fixed `--dry-run` pushing branches to remote
- Fixed `--goal-file` not expanding `~` to the home directory
- Fixed race condition between `fabro run --detach` and `fabro logs -f`
- Fixed dry-run runs cluttering `fabro ps -a` output (now uses temp directory)
</Accordion>

View file

@ -270,6 +270,7 @@
"group": "March 2026",
"icon": "clock-rotate-left",
"pages": [
"changelog/2026-03-15",
"changelog/2026-03-14",
"changelog/2026-03-13",
"changelog/2026-03-12",