List recent canvas changes
list_recent_canvas_changesList recent semantic canvas changes with actor, scope, targets, timestamps, and exact/inferred grouping evidence. Each item names its page (canvasPageName) and its frame targets by name, kind and state (active, or gone when the frame no longer resolves). A frame delete, move or create arrives as operationKind: 'layout' with a page-root target (frameId: null), because it is one opaque update to the page's layout doc; detail: 'patch' attaches a layout delta that names the frames added and removed. Defaults to this credential's OWN changes — the result echoes actors so an empty page-scoped read is legible as 'none of yours', not 'nothing happened' — and actors: 'all' (with scope: { branchId }; projectId is derived) is how to see the human's edits. Scope: project:read.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "list_recent_canvas_changes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max changes to return. Default 20. | |
| scope | No | Explicit branch to read (`{ branchId }` is enough). Required when `actors: 'all'`; omit for your own changes across every branch. | |
| actors | No | Whose changes to list. Default `self` — ONLY this credential's writes, so a human's edits and deletes on the same page are excluded until you pass `all` (which needs an explicit `scope`). The result echoes which one applied. | |
| cursor | No | Continuation cursor from a previous call's `nextCursor`. Omit for page one. | |
| detail | No | Default `summary`. `patch` adds the diff for each change — much larger — and, for page-root (`layout`) changes, a structured `layout` delta naming the frames added or deleted; that is the only way a deleted frame's id is reported. |