Canvas extensibility parity: Python, Go, .NET, Java
- 主要语言
- Java
- 星标
- 10.5k
- 派生
- 1.5k
- 平均合并
- 1 天 11 小时
- 30 天内合并 PR
- 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.
贡献指南
调研方向
先阅读 PR #1372,将 Node 实现作为规范参考;当 TypeScript schema 存在歧义时,参考 Rust diff。在添加所列出的 canvas 配置、factory 和 lifecycle 接口之前,比较 python/copilot/、go/、dotnet/src/ 和 java/src/ 中对应的 SDK 入口,并遵循各语言的命名约定。完成的标准是四个 SDK checklist 都与已稳定的 contract 保持一致。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- csharp, go, java, node.js, python, rust, typescript
- 领域
- api, developer-experience
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100