github / github/copilot-sdk

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

Open
#1,373 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
10.5k
Forks
1.5k
Avg merge
1d 11h
Merged PRs (30d)
128

Description

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.