Transaction History
transaction-history · Mutation · Server · Transactions
Undoes or redoes one staged revision within the active transaction, changing the in-memory solution without writing source files. Use this to revise staged work; use transaction-rollback to discard the entire transaction. Supply the current expectedSnapshot and use the returned snapshot for subsequent mutations. The returned transaction reports canUndo and canRedo; a move beyond available history is rejected. A conflicted transaction must be rolled back before history can change.
Availability: Published in transactional, approval-required and autonomous-trusted operational modes.
Generated from Roslyn Workbench MCP 1.2.0 (1.2.0).
Behaviour annotations
| Annotation | Value |
|---|---|
destructiveHint |
true |
idempotentHint |
false |
openWorldHint |
false |
readOnlyHint |
false |
title |
"Transaction History" |
Request
| Property | Type | Required | Description |
|---|---|---|---|
direction |
string enum ("Undo", "Redo") |
Yes | Direction to move through transaction history: Undo or Redo. |
expectedSnapshot |
object |
Yes | Echo the snapshot returned with the data or transaction state used to construct this request. |
workspace |
object | null |
No | Provide workspaceId, alias, path, or any combination. |
Response
Success response
| Property | Type | Required | Description |
|---|---|---|---|
ok |
boolean constant (true) |
Yes | Whether the tool invocation succeeded. |
data |
object | null |
Yes | Tool-specific result payload. |
snapshot |
object |
No | Exact immutable workspace snapshot associated with the result, when available. |
warnings |
array |
No | Non-fatal warnings the agent should consider. |
Error response
| Property | Type | Required | Description |
|---|---|---|---|
ok |
boolean constant (false) |
Yes | Whether the tool invocation succeeded. |
error |
object |
Yes | Structured error details when the invocation failed. |
continuation |
oneOf |
No | Action the agent should take before retrying or continuing. |
diagnostics |
array |
No | Diagnostics that explain the failed invocation. |
warnings |
array |
No | Non-fatal warnings the agent should consider. |
Error response
| Property | Type | Required | Description |
|---|---|---|---|
ok |
boolean constant (false) |
Yes | Whether the tool invocation succeeded. |
error |
object |
Yes | Structured error details when the invocation failed. |
diagnostics |
object |
Yes | Diagnostics that explain the failed invocation. |
reporting |
object |
No | Error-reporting workflow available for an unhandled failure. |
Continuations and required actions
A response may include a structured continuation at the following schema location. Follow its tool call or user-action instruction instead of guessing how to continue:
$/oneOf/1/properties/continuation
Complete input schema
{
"type": "object",
"properties": {
"direction": {
"description": "Direction to move through transaction history: Undo or Redo.",
"type": "string",
"enum": [
"Undo",
"Redo"
]
},
"expectedSnapshot": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"format": "uuid"
},
"workspaceEpoch": {
"type": "integer"
},
"snapshotId": {
"type": "string",
"format": "uuid"
},
"transactionRevision": {
"type": [
"integer",
"null"
]
}
},
"required": [
"workspaceId",
"workspaceEpoch",
"snapshotId",
"transactionRevision"
],
"description": "Echo the snapshot returned with the data or transaction state used to construct this request."
},
"workspace": {
"description": "Provide workspaceId, alias, path, or any combination.",
"type": [
"object",
"null"
],
"properties": {
"workspaceId": {
"type": "string",
"format": "uuid"
},
"alias": {
"type": "string"
},
"path": {
"description": "Absolute workspace path.",
"type": "string"
}
}
}
},
"required": [
"direction",
"expectedSnapshot"
]
}
Complete output schema
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"ok",
"data"
],
"properties": {
"ok": {
"const": true,
"description": "Whether the tool invocation succeeded."
},
"data": {
"type": [
"object",
"null"
],
"properties": {
"transaction": {
"description": "The active transaction info.",
"type": [
"object",
"null"
],
"properties": {
"revision": {
"description": "Current staged transaction revision.",
"type": "integer"
},
"revisionCount": {
"description": "Number of revisions retained in transaction history.",
"type": "integer"
},
"maxRevisions": {
"description": "Maximum number of revisions the transaction can retain.",
"type": "integer"
},
"remainingRevisions": {
"description": "Number of additional revisions that can be staged.",
"type": "integer"
},
"canMutate": {
"description": "Whether mutation tools may stage another change.",
"type": "boolean"
},
"canUndo": {
"description": "Whether transaction history can move to the preceding revision.",
"type": "boolean"
},
"canRedo": {
"description": "Whether transaction history can move to the following revision.",
"type": "boolean"
},
"canCommit": {