mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
docs(changelog): refresh recent product changes
This commit is contained in:
parent
b3cabca8d3
commit
c8185eaee6
8 changed files with 197 additions and 3 deletions
|
|
@ -1 +1 @@
|
|||
cb0c39ee915896c5a3e8873180092a8bc95bbf36
|
||||
118ce83966c849f2a2698f320291a6fee7071dbf
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: "Files Changed sidebar and settings panels"
|
||||
title: "Files Changed sidebar, settings panels, and install validation"
|
||||
date: "2026-04-25"
|
||||
---
|
||||
|
||||
|
|
@ -13,8 +13,17 @@ Clicking a file in the tree scrolls and focuses the matching diff, while mobile
|
|||
|
||||
The Settings page now presents server configuration as curated panels instead of a raw JSON dump. Server, access, integration, and artifact values are rendered with typed controls and readable summaries, so operators can scan what matters without parsing the full settings payload.
|
||||
|
||||
## Safer install URLs
|
||||
|
||||
Install and server startup now reject wildcard public URLs before they can be saved or used for callbacks. This catches misconfigured deployment origins at setup time instead of letting GitHub OAuth or browser redirects fail later with harder-to-debug errors.
|
||||
|
||||
## More
|
||||
|
||||
<Accordion title="CLI">
|
||||
- Added grouped `cargo dev spa` and `cargo dev docs` commands for asset and documentation maintenance
|
||||
- Updated `cargo dev docker-build` to default image tags to `fabro-sh/fabro`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Improvements">
|
||||
- Added the captured commit short SHA to the Files Changed freshness label
|
||||
- Unboxed the Files Changed tree so it sits directly in the sidebar layout
|
||||
|
|
@ -25,4 +34,5 @@ The Settings page now presents server configuration as curated panels instead of
|
|||
- Fixed aggregate diff stats counting sensitive, binary, symlink, and submodule entries that are not visible in the diff
|
||||
- Fixed Files Changed tree selection so it only targets valid file paths after filtering or reloads
|
||||
- Fixed sidebar loading and filtering behavior to keep the desktop layout stable
|
||||
- Fixed install and doctor validation accepting wildcard public URLs
|
||||
</Accordion>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,15 @@
|
|||
---
|
||||
title: "Per-run logs and clone-based Docker sandboxes"
|
||||
title: "Clone-based Docker sandboxes and per-run logs"
|
||||
date: "2026-04-26"
|
||||
---
|
||||
|
||||
<Warning>
|
||||
**Docker is now the default runtime sandbox provider.** Docker sandboxes no longer bind-mount the caller's working directory. They create a container workspace and clone the run manifest's GitHub origin into `/workspace`.
|
||||
|
||||
To migrate:
|
||||
1. Use `--sandbox local` or `[run.sandbox] provider = "local"` when a run must operate directly on the host working tree.
|
||||
2. For Docker or Daytona runs without a GitHub origin, set `skip_clone = true` under the provider-specific sandbox section.
|
||||
3. Make sure private GitHub repositories have GitHub App credentials configured before running clone-based sandboxes.
|
||||
</Warning>
|
||||
|
||||
## Clone-based Docker sandboxes
|
||||
|
|
@ -29,3 +34,25 @@ Each server-dispatched run now gets its own worker tracing log at `runtime/serve
|
|||
## Operators
|
||||
|
||||
Worker subprocesses continue writing to the main `<storage>/logs/server.log`, and also mirror worker tracing into the per-run file. `FABRO_LOG` still controls log verbosity; if a server config sets `[server.logging] level`, that level is now propagated to workers unless the parent process already set `FABRO_LOG`.
|
||||
|
||||
Server logs can also go to stdout, which is useful for containers and process supervisors:
|
||||
|
||||
```toml
|
||||
[server.logging]
|
||||
destination = "stdout"
|
||||
```
|
||||
|
||||
## More
|
||||
|
||||
<Accordion title="API">
|
||||
- New `GET /api/v1/runs/{id}/logs` endpoint returns the per-run worker log
|
||||
- Server settings now include `server.logging.destination` with `file` and `stdout` values
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="CLI">
|
||||
- `fabro dump` now includes per-run worker logs as `run.log` when they are available
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fixes">
|
||||
- Fixed web requests being served from non-canonical hosts instead of redirecting to the configured canonical host
|
||||
</Accordion>
|
||||
|
|
|
|||
34
docs/public/changelog/2026-04-27.mdx
Normal file
34
docs/public/changelog/2026-04-27.mdx
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Install wizard sandbox selection and sandbox-native git metadata"
|
||||
date: "2026-04-27"
|
||||
---
|
||||
|
||||
## Install wizard sandbox selection
|
||||
|
||||
The web install flow now includes a sandbox provider step, so operators choose and validate their execution environment during setup instead of discovering missing Docker or Daytona configuration on the first run. The setup screen also preserves the GitHub App return state, which makes install failures easier to resume after bouncing through GitHub.
|
||||
|
||||
This gives new deployments a clearer path from "server is running" to "runs can actually execute". The wizard validates the selected provider through the server install API and shows the result in the same setup flow.
|
||||
|
||||
## Sandbox-native git metadata
|
||||
|
||||
Run metadata now follows the sandbox instead of assuming the server's current working directory is the source of truth. Clone-based providers can record origin, branch, dirty state, checkpoint branches, and pre-run push outcomes from the workspace where execution actually happens.
|
||||
|
||||
This matters for Docker and Daytona runs because the working tree lives inside the sandbox. Fork, rewind, resume, PR creation, and run detail pages now have a more accurate view of the sandbox repository state.
|
||||
|
||||
## More
|
||||
|
||||
<Accordion title="API">
|
||||
- New run graph source response returns the raw workflow DOT source for graph viewers and external tools
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Improvements">
|
||||
- Added level and target coloring to the web run logs view
|
||||
- Polished the runs board and install navigation layout
|
||||
- Removed the redundant Unarchive action from the archive toast
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fixes">
|
||||
- Fixed packaged Docker deployments missing access to the mounted Docker socket
|
||||
- Fixed sandbox error chains losing useful context before reaching users
|
||||
- Fixed server routing middleware behavior around nested route handling
|
||||
</Accordion>
|
||||
33
docs/public/changelog/2026-04-28.mdx
Normal file
33
docs/public/changelog/2026-04-28.mdx
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: "Workflow-relative prompt files and sandbox metadata fixes"
|
||||
date: "2026-04-28"
|
||||
---
|
||||
|
||||
## Workflow-relative prompt files
|
||||
|
||||
Prompt file references now resolve relative to the workflow file instead of the shell's current working directory. A workflow can live with its prompt files in a subdirectory and behave the same whether it is run from that directory, from the repo root, or through a run config.
|
||||
|
||||
```dot
|
||||
review [prompt="@prompts/review.md"]
|
||||
```
|
||||
|
||||
This makes checked-in workflow folders more portable and removes a class of failures where `@path` references only worked from one launch location.
|
||||
|
||||
## Sandbox metadata recovery
|
||||
|
||||
Sandbox-native metadata handling now covers more run shapes, including non-git local runs and clone-based sandboxes with pre-run git state. Runs that do not start from a normal host git checkout can still initialize, record useful metadata, and keep fork or rewind operations aligned with the sandbox workspace.
|
||||
|
||||
Metadata snapshots are also batched with `git fast-import`, which reduces checkpoint overhead on workflows that write many stage snapshots.
|
||||
|
||||
## More
|
||||
|
||||
<Accordion title="CLI">
|
||||
- Added `cargo dev bench-tests` for capturing per-test timing CSVs
|
||||
- Kept `fabro validate` focused on workflow validation instead of running runtime preflight checks
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fixes">
|
||||
- Fixed manifest creation paths that could prompt for git credentials while preparing a run
|
||||
- Fixed non-git local sandbox runs failing during initialization
|
||||
- Fixed sandbox-native git metadata gaps affecting fork, rewind, and run projections
|
||||
</Accordion>
|
||||
41
docs/public/changelog/2026-04-29.mdx
Normal file
41
docs/public/changelog/2026-04-29.mdx
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
title: "Faster preflight checks and clearer setup errors"
|
||||
date: "2026-04-29"
|
||||
---
|
||||
|
||||
## Faster preflight checks
|
||||
|
||||
Preflight checks no longer need to clone repositories just to validate a run manifest. Fabro now bundles and validates the workflow inputs directly, which makes `fabro preflight` and server-side run creation much faster for remote repositories and private GitHub origins.
|
||||
|
||||
The CLI also shows a spinner while the server runs checks, so long validations no longer look stuck. Run creation skips redundant implicit preflight work when validation has already been handled.
|
||||
|
||||
## Setup and auth recovery
|
||||
|
||||
Setup failures now point at the configured GitHub App and tell operators when Docker-based runs need GitHub credentials for private clones. The web setup page also shows GitHub App install return state, and the auth quick start includes the server URL so users copy a complete login command.
|
||||
|
||||
CLI login now persists the selected auth target, and dev-token recovery messages explain how to get back to a working local session. These changes make setup problems more diagnosable without reading server logs first.
|
||||
|
||||
## More
|
||||
|
||||
<Accordion title="API">
|
||||
- Error responses now include request IDs so API failures can be correlated with server logs
|
||||
- Run projection types reuse canonical event, interview, secret, billing, and model shapes across the Rust and TypeScript clients
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Workflows">
|
||||
- Metadata snapshot events now emit into the run event stream during workflow execution
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Improvements">
|
||||
- Added a Settings/JSON toggle on the settings page
|
||||
- Regrouped settings into Server, Data, Security, and Integrations sections
|
||||
- Added syntax highlighting to the run graph source view
|
||||
- Sped up Docker repository clones during sandbox startup
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fixes">
|
||||
- Fixed degraded Run Files diffs so placeholder, truncation, and unavailable-content states render consistently
|
||||
- Fixed Graph/Source toggling unmounting the graph view unnecessarily
|
||||
- Fixed worker subprocesses missing `GITHUB_APP_PRIVATE_KEY` for GitHub App operations
|
||||
- Fixed git push and origin-credential failures leaking unsafe stderr into logs
|
||||
</Accordion>
|
||||
45
docs/public/changelog/2026-04-30.mdx
Normal file
45
docs/public/changelog/2026-04-30.mdx
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
title: "Precise stage outcomes"
|
||||
date: "2026-04-30"
|
||||
---
|
||||
|
||||
<Warning>
|
||||
**Workflow condition outcomes use new names.** Conditions and routing directives now use `succeeded`, `failed`, `partially_succeeded`, and `skipped`. Retry intent is internal and no longer appears as an edge-routable outcome.
|
||||
|
||||
To migrate:
|
||||
1. Replace `outcome=success` with `outcome=succeeded`.
|
||||
2. Replace `outcome=fail` with `outcome=failed`.
|
||||
3. Replace `outcome=partial_success` with `outcome=partially_succeeded`.
|
||||
4. Remove `outcome=retry` branches and use retry policies plus `stage.retrying` events for retry observability.
|
||||
</Warning>
|
||||
|
||||
## 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:
|
||||
|
||||
```dot
|
||||
gate -> deploy [condition="outcome=succeeded || outcome=partially_succeeded"]
|
||||
gate -> fix [condition="outcome=failed"]
|
||||
gate -> skip [condition="outcome=skipped"]
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
<Accordion title="API">
|
||||
- Replaced the generated `StageStatus` model with `StageState` and `StageOutcome` shapes
|
||||
- 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
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Workflows">
|
||||
- `allow_partial=true` now promotes exhausted retryable failures to `partially_succeeded`
|
||||
- Retryable failures emit retrying events while the node remains active instead of exposing `retry` as a final outcome
|
||||
</Accordion>
|
||||
|
|
@ -252,6 +252,10 @@
|
|||
"group": "April 2026",
|
||||
"icon": "clock-rotate-left",
|
||||
"pages": [
|
||||
"changelog/2026-04-30",
|
||||
"changelog/2026-04-29",
|
||||
"changelog/2026-04-28",
|
||||
"changelog/2026-04-27",
|
||||
"changelog/2026-04-26",
|
||||
"changelog/2026-04-25",
|
||||
"changelog/2026-04-24",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue