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

# ConversationHandoverConfig

> Interface exported by @botmesh/core.

Defined in: [coordination/types.ts:241](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L241)

`coordination.handover`: conversation hand-over between replicas.

## Properties

### flows?

```ts theme={null}
flows?: "forward" | "drop";
```

Defined in: [coordination/types.ts:249](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L249)

DSL flows WITHOUT `.persistent()`: `'forward'` keeps a TTL-bound ("ephemeral")
checkpoint of them, one write per step, so the replica that takes the chat — or this
one after a rolling restart within the TTL — continues the flow. Needs plain-JSON
`c.state`; a flow whose state is not plain JSON is handled by [fallback](#fallback).
`'drop'` (default): they live in memory only.

***

### fallback?

```ts theme={null}
fallback?: 
  | "drop"
  | "notify"
  | "restart"
  | HandoverFallback;
```

Defined in: [coordination/types.ts:263](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L263)

Conversations that cannot be forwarded (async `bot.conversation` functions, flows not
forwarded, a forwarded flow whose definition changed on the new replica):

* `'notify'`: the replica that takes the chat tells the user the conversation was
  interrupted (it consumes the waking message);
* `'restart'`: it re-enters the conversation by name, from the beginning, with its
  initial state (side effects before its first wait run again); falls back to `'notify'`
  when the name is not registered there;
* `'drop'` (default): today's behaviour — the waking message routes normally;
* a function: a custom migration; resolve `true` when it consumed the waking message.

Costs two store writes per such conversation (a stub when it first waits, its clear at the end).

***

### notifyMessage?

```ts theme={null}
notifyMessage?: string;
```

Defined in: [coordination/types.ts:265](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L265)

`'notify'` text. Default: the localized built-in `CORE_MESSAGES.conversationInterrupted`.

***

### ttl?

```ts theme={null}
ttl?: string | number;
```

Defined in: [coordination/types.ts:272](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L272)

How long an ephemeral checkpoint stays resumable after its last write (stubs: twice
that), as a duration (`'10m'`) or ms. Default: `conversation.timeout`, else `'5m'`. While
the conversation waits, never shorter than that wait's explicit timeout (`ask({ timeout })`,
`flow().timeout()`); refreshed at every wait.

***

### maxAnswerBytes?

```ts theme={null}
maxAnswerBytes?: number;
```

Defined in: [coordination/types.ts:278](https://github.com/andresayac/botmesh/blob/main/packages/core/src/coordination/types.ts#L278)

Durability off: the largest encoded answer (bytes) embedded in a checkpoint so a step cut
short mid-way can be continued with it (with durability the journal holds it instead).
Default `16_384`; `0` never embeds one.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.