Enhance documentation
enhance-dev canvas remove
Remove explicitly named canvas subtrees with scope, lock and revision checks.
enhance-dev canvas remove
enhance-dev canvas remove [options]
Arguments
This command takes no positional arguments.
Options
| Option | Required | Default | Meaning |
|---|---|---|---|
--input <json-or-@path> | Yes | None | Request containing canvasRef, baseVersion and rootNodeIds. |
--client-token <uuid> | Yes | None | Stable UUID to reuse when retrying the exact same mutation. |
Input
This command presents the capability canvas.remove. It has write effect and single idempotency.
Show complete input JSON Schema
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canvasRef":{"type":"string","minLength":1},"baseVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"rootNodeIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["canvasRef","baseVersion","rootNodeIds"],"additionalProperties":false}
Output
This command writes JSON records to standard output. Returns a typed canvas.remove result from the Enhance API without transport-specific prose.
Show complete output JSON Schema
{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"outcome":{"type":"string","const":"no_op"},"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"verification":{"type":"object","properties":{"rendered":{"type":"boolean","const":false}},"required":["rendered"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}}},"required":["outcome","canvasId","version","verification","warnings"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"committed"},"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mutationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"previousVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"operation":{"type":"object","properties":{"kind":{"type":"string","const":"canvas-mutation"},"canvasId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mutationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fingerprint":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["kind","canvasId","mutationId","fingerprint"],"additionalProperties":false},"identities":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"sourceNodeId":{"type":"string","minLength":1},"nodeId":{"type":"string","minLength":1}},"required":["sourceNodeId","nodeId"],"additionalProperties":false}},"complete":{"type":"boolean"},"total":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["entries","complete","total"],"additionalProperties":false},"affected":{"type":"object","properties":{"insertedNodeIds":{"type":"array","items":{"type":"string","minLength":1}},"changedNodeIds":{"type":"array","items":{"type":"string","minLength":1}},"removedNodeIds":{"type":"array","items":{"type":"string","minLength":1}},"complete":{"type":"boolean"},"total":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["insertedNodeIds","changedNodeIds","removedNodeIds","complete","total"],"additionalProperties":false},"verification":{"type":"object","properties":{"rendered":{"type":"boolean","const":false}},"required":["rendered"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}}},"required":["outcome","canvasId","mutationId","previousVersion","version","operation","affected","verification","warnings"],"additionalProperties":false}],"type":"object"}
Examples
enhance-dev canvas remove --input <json-or-@path> --client-token <uuid>
Show example input
{
"canvasRef": "00000000-0000-4000-8000-000000000010",
"baseVersion": 1,
"rootNodeIds": [
"obsolete"
]
}
Show example output
{
"outcome": "committed",
"canvasId": "00000000-0000-4000-8000-000000000010",
"mutationId": "00000000-0000-4000-8000-000000000010",
"previousVersion": 1,
"version": 2,
"operation": {
"kind": "canvas-mutation",
"canvasId": "00000000-0000-4000-8000-000000000010",
"mutationId": "00000000-0000-4000-8000-000000000010",
"fingerprint": "ad9a89368fd01a87f81eabda0255669e2d562b4dfdf1b3aa0ceb58cd92b729c1"
},
"affected": {
"insertedNodeIds": [],
"changedNodeIds": [],
"removedNodeIds": [
"obsolete"
],
"complete": true,
"total": 1
},
"verification": {
"rendered": false
},
"warnings": []
}
Exit behaviour
| Exit code | Meaning |
|---|---|
0 | The command succeeded. |
1 | The command failed for another reason (INTERNAL). A write may have an unknown outcome. |
2 | The command line was malformed. Nothing ran. |
3 | The API refused the input (BAD_REQUEST). |
4 | The credential is missing or expired (UNAUTHORIZED). |
5 | The API refused the request (FORBIDDEN, NOT_FOUND, CONFLICT, RATE_LIMITED). |
6 | A batch finished only in part. Retry with the same --client-token. |
Versions
Minimum tested versions: Enhance CLI and MCP runtime 0.1.40, plugin 1.0.38, Node.js 24. No older floor is published.