> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genesiscomputing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Work Bundles

> Move selected missions, threads, Prover proofs, app references, and connections between Genesis servers.

Work bundles package related work for transfer between Genesis servers. Create a bundle
with the `export_work_bundle` and `import_work_bundle` tools in
[System Manager Tools](/docs/Genbot-Toolkit/System-Manager-Tools), or use the REST API
when connections need to be included. In the Mission Center, choose the work-bundle
option while exporting a mission to download that mission with its linked work instead
of a mission ZIP. To export several missions, choose **Export work bundle**, select the
missions, and optionally add threads, app IDs, or proof run IDs. Choose
**Import work bundle** to upload a bundle and check it before importing.

## What a bundle carries

* **Missions** — mission ZIP packages, including their repositories and cached query results.
* **Threads** — thread ZIP packages, including files, tool calls, and cached query results.
* **Prover proofs** — selected runs, findings, review events, and any comparisons behind them.
* **GenesisApps** — references only. Import each listed app separately using its app export/import flow.
* **Connections** — optional, passphrase-sealed section available through the REST API.

By default, linked work is included. A selected mission brings its thread and proofs run
from that thread; a selected thread brings associated missions and proofs; an app brings
its thread and proofs; and a proof brings its thread. Linked proofs referenced by another
selected proof are followed one level. Set `linked` to `false` to limit proof selection to
the run IDs explicitly requested and stop discovering related records; an explicitly
selected mission still carries its own thread. An explicitly selected app is listed, but
its thread is not added when `linked` is false.

## Export and review

Choose at least one mission, thread, app, Prover run, or connection. The toolkit tool
saves the ZIP to a `bot_git` repository. The admin API can instead return the ZIP directly
and can seal selected connections with a passphrase. Connections are not available through
the toolkit tools.

Exporting a mission or thread requires read access to its agent and thread. Prover runs are
included only when you can read the thread they ran in, or have `view_all_threads`; runs
that cannot be read are omitted with a warning. Importing missions and threads requires
access to their target agent, and importing Prover proofs requires `manage_all_missions`.
Exporting or importing connections requires `manage_all_connections`; export requires a
passphrase to seal them, and import requires the same passphrase to open them.

Before importing, preview the ZIP. The preview reports which mission, thread, Prover, and
connection records are new or already present, along with items skipped and warnings. It
does not write data. After reviewing the report, import the bundle to add its new records.

## Add-only import

Import never replaces or deletes existing records. Existing mission and thread IDs are
preserved so links between imported work continue to resolve. If a mission's thread ID is
already in use on the receiving server, that mission is skipped. Prover run, estate, event,
and specification IDs are retained; finding numbers are mapped to the receiving server's
durable sequence, including references in events and review records. Existing Prover rows
are left as they are. Credential-shaped fields are removed from Prover JSON during export.

Connections with a name already present are skipped rather than overwritten. An app listed
in the bundle must be transferred separately with the app export/import flow. An
unrecognized section version is reported as a warning and left out; a bundle with a newer
top-level format version is rejected.

When source and destination use different hostnames or other text values, provide rewrite
pairs while importing. Rewrites are applied to textual files within mission and thread
packages; they do not rewrite Prover data or GenesisApp references. The tool accepts pairs
as `old=>new`; the API form field accepts a JSON list such as `[["old-host", "new-host"]]`.

For request fields, response schemas, and endpoint permissions, see the
[work bundle API reference](/docs/Genesis-API/API-Reference#bundle-api-contract).
