Skip to content

Canvas extensibility parity: Python, Go, .NET, Java #1373

@jmoseley

Description

@jmoseley

PR #1372 adds canvas extensibility (Canvas / createCanvas, SessionConfig.canvases, requestCanvasRenderer, requestExtensions, and ResumeSessionConfig.openCanvasInstances, plus the session.canvas.* lifecycle events and hostExtension.invoke RPC dispatch) to the Node and Rust SDKs only.

Once the wire contract has stabilized through real usage by the immediate consumers (Copilot CLI runtime, Tauri app, canvas v1 testing extension), the same surface needs to be brought to the remaining SDKs for parity:

  • Python (python/copilot/): canvases, request_canvas_renderer, request_extensions, open_canvas_instances, plus Canvas / create_canvas factory
  • Go (go/): Canvases, RequestCanvasRenderer, RequestExtensions, OpenCanvasInstances, plus Canvas / CreateCanvas
  • .NET (dotnet/src/): Canvases, RequestCanvasRenderer, RequestExtensions, OpenCanvasInstances, plus Canvas / CreateCanvas
  • Java (java/src/): equivalent surface following Java naming conventions

The Node implementation in PR #1372 is the canonical reference. Treat the Rust diff there as a co-canonical spec where the TypeScript schema is ambiguous.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions