title: Canvas agent tool and macOS widget panel 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 macOS node for every supported panel action. successCriteria: - The enabled Canvas plugin registers its agent tool and macOS node command policy in a real Gateway process. - Present, hide, and navigate 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 acknowledgements that the tool reports to the agent. 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 macOS node.