# Studio 3.0 adds draft-and-publish governance for production teams

> create_* now writes a private draft that serves no one until you publish it, published versions are immutable with rollback behind them, and compare-and-set guards reject a stale write with a typed 409 instead of clobbering a change.

- Published: 2026-08-24
- Author: Ashpreet Bedi
- Categories: Changelog
- Canonical: https://www.agno.com/articles/studio-3-0-adds-draft-and-publish-governance-for-production-teams
- Markdown: https://www.agno.com/articles/studio-3-0-adds-draft-and-publish-governance-for-production-teams.md

Studio 3.0 adds a publishing step between editing a component and serving it. `create_*` now writes a private DRAFT that serves no one until you call `publish_component`, and published versions are immutable, with rollback, archive, and restore behind them.

Previously, a create or an edit in a shared Studio went live immediately, and two people working on the same component could overwrite each other. Now compare-and-set guards reject a stale write with a typed 409 instead of clobbering a change, and deletes are tombstoned with dependent-tracking so you do not remove a component that another one relies on.

Every `StudioTools` call returns a machine-readable envelope with `ok`, `status`, `data`, `error`, and `warnings` across its roughly 31 tools, so an agent driving the Studio can tell a success from a failure and read why something was refused.

Mount it on the component that manages your catalog:

```python
from agno.agent import Agent
from agno.tools.studio import StudioTools

agent = Agent(tools=[StudioTools()])
```

View the [docs](https://docs.agno.com/agent-os/studio/introduction#2-save-draft-or-publish-directly).
