---
title: "Worker lifecycle hardening and object-backed artifacts"
date: "2026-04-07"
---

## Reliable worker lifecycle

Run workers now operate under tighter server supervision. The server tracks worker health, properly terminates active workers during force removal, and propagates cancellation into running command stages. Resumed runs no longer attempt to clean up stale workers from a previous session, preventing spurious errors after restarts.

## Object-backed artifact storage

Artifacts and offloaded agent context are now persisted as content-addressed objects in the global blob store instead of the local scratch directory. This makes artifacts portable across sessions and available through the server API regardless of which machine originally produced them.

## More

<Accordion title="API">
- Removed deprecated workflows and steer endpoints
</Accordion>

<Accordion title="CLI">
- `fabro run attach` now streams events over SSE for more reliable output
</Accordion>

<Accordion title="Improvements">
- Runs now record creation provenance (CLI, API, or scheduled trigger)
</Accordion>

<Accordion title="Fixes">
- Fixed `fabro run attach` not following paginated event streams
- Fixed terminal runs blocking deletion during the grace period
- Fixed cancelled workers not stopping in-progress command stages
</Accordion>
