Canvas extensibility parity: Python, Go, .NET, Java
- 主要言語
- Java
- スター
- 10.5k
- フォーク
- 1.5k
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 128
説明
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.
コントリビューションガイド
調査の方向性
Start by reading PR #1372, using the Node implementation as the canonical reference and the Rust diff where the TypeScript schema is ambiguous. Compare the corresponding SDK entry points in python/copilot/, go/, dotnet/src/, and java/src/ before adding the listed canvas configuration, factory, and lifecycle surfaces with each language’s naming conventions. Done means all four SDK checklists provide parity with the stabilized contract.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp, go, java, node.js, python, rust, typescript
- 領域
- api, developer-experience
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100