title: Canvas agent tool and Linux node controls scenario: id: canvas-agent-node-controls surface: plugins category: plugins.agent-tools-and-node-controls coverage: primary: - plugins.agent-canvas-tool - plugins.node-canvas-commands objective: Prove the registered Canvas agent tool crosses a real Gateway and protocol-compatible Linux node for every supported Canvas action. successCriteria: - The enabled Canvas plugin registers its agent tool and Linux node command policy in a real Gateway process. - Present, hide, navigate, eval, snapshot, A2UI push, and A2UI reset reach the connected node under their exact command names. - Every node request preserves the action parameters, carries a positive remaining timeout no greater than the requested budget, and uses a unique UUID idempotency key. - The local node returns command-specific responses, including eval text and a valid snapshot image payload. docsRefs: - docs/gateway/protocol.md - docs/help/testing.md codeRefs: - extensions/canvas/index.ts - extensions/canvas/src/tool.ts - src/gateway/server-methods/nodes.invoke.ts - test/e2e/qa-lab/plugins/canvas-agent-node.e2e.test.ts execution: kind: vitest path: test/e2e/qa-lab/plugins/canvas-agent-node.e2e.test.ts summary: Starts a real Gateway with Canvas enabled, resolves the registered agent tool, and acknowledges every forwarded command from a protocol-compatible Linux node.