# Assignment Versions

## Introduction

Duvo maintains versions of your assignments as you make changes. This allows you to iterate safely, test modifications, and understand how your assignments have evolved over time.

***

## How Versioning Works

Every time you make significant changes to an assignment and save, Duvo creates a new version. This means:

* Your previous configuration is preserved
* You can see how the assignment has changed
* Recent changes can be reviewed and understood

***

## Why Versions Matter

### Safe Iteration

Versioning lets you improve assignments with confidence:

* Make changes without fear of losing working configurations
* Test modifications knowing you can reference previous versions
* Iterate quickly without extensive documentation

### Change Tracking

Understand how assignments have evolved:

* See what changed between versions
* Track who made modifications
* Understand the history of an assignment

### Troubleshooting

When something stops working:

* Compare current version to previous working versions
* Identify what changed
* Understand what might have caused issues

***

## Working with Versions

### Viewing Version History

To see an assignment's version history:

1. Open the assignment
2. Click the revision selector in the builder toolbar
3. Review the list of saved revisions and select one to view

### Non-Live Revision Warning

When you open an older revision that is not currently live, a warning banner appears at the top of the builder:

> **You are viewing a non-live revision.** Scheduling and triggers run the latest revision, not this one.

This means:

* Jobs started manually while viewing this revision will use its configuration
* Scheduled runs and trigger-based runs always use the **live** revision, regardless of which revision you are currently viewing
* To make an older revision live, create a new revision based on it or use it as a starting point for your next changes

### Understanding Changes

Each version captures:

* SOP and configuration
* Connected connections
* Skills and files attached
* Settings and options

### Building on Previous Work

When creating similar assignments:

* Review successful assignments for patterns
* Understand what configurations work well
* Apply learnings to new automation

***

## Best Practices

### Make Meaningful Changes

Group related changes together rather than saving after every small edit. This creates cleaner version history.

### Test Before Major Changes

Before significantly modifying a working assignment:

1. Verify the current version is working
2. Make your changes
3. Test thoroughly before relying on the new version

### Document Significant Updates

When making important changes, consider:

* Updating the assignment description
* Noting why changes were made
* Recording expected improvements

### Regular Review

Periodically review your assignments:

* Are they still meeting needs?
* Have requirements changed?
* Is the configuration still optimal?

***

## Version Management Tips

### Keeping Assignments Current

* Review assignments when connected systems change
* Update when business processes evolve
* Refresh when better approaches become available

### Managing Multiple Assignments

For teams with many assignments:

* Use consistent naming conventions
* Group related assignments logically
* Document dependencies between assignments

### Coordinating Changes

When multiple people work on assignments:

* Communicate about planned changes
* Avoid simultaneous modifications
* Review changes made by others

***

## Things to Know

* Revisions are created automatically when you save changes
* Scheduling and triggers always run the **live** revision, even if you are currently viewing an older one
* A warning banner appears whenever you open a non-live revision so you always know which revision you are looking at
* Version history helps you understand assignment evolution
* Major changes should be tested before deployment
