[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Task](https://evolu.dev/docs/api-reference/common/Task) › RunSnapshot

Defined in: [packages/common/src/Task.ts:1026](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L1026)

A recursive snapshot of a [Run](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run) tree.

Snapshots use structural sharing — unchanged subtrees return the same object
reference. This is useful for UI libraries like React that leverage
referential transparency to skip re-rendering unchanged parts. Snapshots are
computed on demand rather than pushed on every change. Push would require
O(depth) new snapshot objects per mutation.

## See

[Run.snapshot](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run#snapshot)

## Properties

<a id="abortmask"></a>

### abortMask

```ts
readonly abortMask: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"AbortMask">;
```

Defined in: [packages/common/src/Task.ts:1037](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L1037)

The abort mask depth. `0` means abortable, `>= 1` means unabortable.

---

<a id="children"></a>

### children

```ts
readonly children: readonly RunSnapshot[];
```

Defined in: [packages/common/src/Task.ts:1034](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L1034)

Child snapshots in run order.

---

<a id="id"></a>

### id

```ts
readonly id: string & Brand<"Id">;
```

Defined in: [packages/common/src/Task.ts:1028](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L1028)

The [Run.id](https://evolu.dev/docs/api-reference/common/Task/interfaces/Run#id) this snapshot represents.

---

<a id="state"></a>

### state

```ts
readonly state:
  | Readonly<{
  type: "Running";
}>
  | Readonly<{
  type: "Disposing";
}>
  | Readonly<{
  outcome:   | Readonly<{
     ok: true;
     value: unknown;
   }>
     | Readonly<{
     error: unknown;
     ok: false;
   }>;
  result:   | Readonly<{
     ok: true;
     value: unknown;
   }>
     | Readonly<{
     error: unknown;
     ok: false;
   }>;
  type: "Settled";
}>;
```

Defined in: [packages/common/src/Task.ts:1031](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L1031)

The current lifecycle state.