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

# RevertStepInfo

> A single user input boundary usable as a revert/fork target.

```typescript
interface RevertStepInfo extends Omit<RevertStepInfoPayload, "kind">
```

## Properties

**forkTargetNodeId** `number` *required*

Pass this as `targetNodeId` to \[`REVERT_FORK_FROM_STEP_METHOD`] to
fork a new session containing step N and everything before it.

For a prompt step this is the last node produced by the turn (the
final assistant or tool message before the next user message, or the
chain tail). For a question step it is the question's tool-result
node — the fork includes the old answer.

**kind** `string & object | RevertStepKind` *required*

**Type:** `string & object | RevertStepKind`

**questionNodeId** `null | number`

Node ID of the assistant message containing the question tool call.
After executing a revert to this step, pass it as `questionNodeId` to
\[`REVERT_RESUME_METHOD`] to have the agent re-ask the question.
Present iff `kind` is \[`RevertStepKind::QuestionAnswer`].

**revertTargetNodeId** `null | number`

Pass this as `targetNodeId` to \[`REVERT_PREVIEW_METHOD`] or
\[`REVERT_EXECUTE_METHOD`] to undo step N and everything after it.

For a prompt step this is the node just *before* the user message —
reverting to it rewinds the conversation to the state right before
the user sent their message. For a question step it is the node just
*before* the assistant message containing the question — reverting
discards the question, its answer, and everything after; the question
is then re-asked via \[`REVERT_RESUME_METHOD`]. `None` when the
anchoring node has no predecessor (which should not happen in
practice because of the system-prefix node, but is represented as an
`Option` to avoid clients crashing on malformed chains).

**stepId** `null | string`

Stable anchor message identity. When present, pass this as `stepId`
to preview/execute instead of retaining a chain-specific node ID.

**stepNumber** `number` *required*

1-based index of this step in the session (matches the REPL's `/steps`).
Prompt and question steps share one interleaved numbering.

**summary** `string` *required*

Short human-readable summary of the user message or question text.

**toolCallId** `null | string`

The question's tool call ID — the stable identity for matching a
rendered Q\&A to this step. Present iff `kind` is
\[`RevertStepKind::QuestionAnswer`].

**userMessageId** `null | string`

Stable UUID for the user message that starts this step.
Present iff `kind` is \[`RevertStepKind::Prompt`].


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