Canvas extensibility parity: Python, Go, .NET, Java
- Dominant language
- Java
- Stars
- 10.5k
- Forks
- 1.5k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 127
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
Assessment
This issue has not been assessed yet.