Copilot SDK Go v1.0.0-beta.7: Canvas Runtime Support
Go SDK now supports canvas runtime. Declare canvases on session config, install a handler, and dispatch open/close/action events. Extension identity metadata exposed. Breaking: per-action handlers required, toolbar/focus/reload removed.
TL;DR
- Canvas runtime support added to Go SDK — declare canvases, handle open/close/action events
- Extension identity metadata now exposed via ExtensionInfo on session config
- Canvas resume durability: OpenCanvases snapshot surfaces on session.resume()
- Breaking: canvas action handlers now required per-action, no top-level fallback
New
- Canvas runtime surface — Mirrors Rust SDK design. Declare CanvasDeclaration on SessionConfig, install CanvasHandler, SDK dispatches inbound canvas.open/close/canvas.action.invoke JSON-RPC to your handler.
- ExtensionInfo on session config — Expose stable extension identity metadata. Forwarded on wire for canvas providers.
- OpenCanvases snapshot — Session.OpenCanvases() surfaces the openCanvases state from session.resume response. ResumeSessionConfig.OpenCanvases lets you pre-populate canvas state on resume.
- Canvas provider RPC tracing — Added observability for canvas provider request dispatch.
- CanvasHandler interface — Implement OnOpen, OnAction, OnClose methods. SDK routes inbound RPC calls directly to your handler.
Breaking Changes
- Canvas action handlers are now required — Each CanvasAction must define its own handler. No top-level onAction fallback. Actions without handlers trigger canvas_action_no_handler error.
- Canvas toolbar and focus/reload removed — SessionCanvas.focus() and SessionCanvas.reload() host APIs dropped. Re-opening with the same instanceId now drives focus via session.canvas.opened { reopen: true }. Reload is renderer-only.
- agentActions renamed to actions — CanvasDeclaration and DiscoveredCanvas now use actions field instead of agentActions.
- Canvas tools field removed — CanvasOpenResponse.tools and OpenCanvasInstance.tools dropped from wire contract.
Update: go get github.com/github/copilot-sdk/go@v1.0.0-beta.7
Source: Copilot SDK