github / github/copilot-sdk

[v2] Consolidate runtime discovery, acquisition, and embedding

未关闭
#2,524 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
sdk-v2
主要语言
Java
星标
10.5k
派生
1.5k
平均合并
1 天 14 小时
30 天内合并 PR
129

描述

## Summary

Complete a coherent model for locating, acquiring, packaging, and embedding the Copilot runtime across all SDKs.

These items are planned work carried forward from #1934. Existing work may satisfy part of the required outcome; verify and build on it rather than reopening completed implementation. Do not omit remaining work without concrete new evidence and maintainer agreement.

## Why this work exists

The original Rust `build.rs` was forked between in-process and out-of-process modes for backward compatibility. In-process operation needed the `.node` native binary, which was available from `@github/copilot` on npm but was not included in the GitHub CLI release. Depending on npm for that binary was not considered viable long term.

Rust and Go also used build-time flags to choose whether the in-process binary was embedded because it duplicated the Copilot SEA executable already embedded in the application bundle.

Python independently performed executable resolution through `PATH` (introduced by commit `05dd60e`), which could select an arbitrary system installation rather than the runtime expected by the SDK.

## Required outcomes

- Python does not implicitly select an executable through `PATH`; it uses the SDK-managed runtime or an explicitly configured path.
- The underlying runtime build and publishing process publishes the required raw native binaries as separate GitHub Release assets.
- SDKs acquire pinned, checksum-verified runtime artifacts from `github/copilot-cli` GitHub Releases rather than depending on `@github/copilot` npm artifacts.
- Obsolete Rust and Go compile-time choices for embedding the in-process native library versus the executable runtime are removed.
- Packaging converges on a minimal bootstrap executable plus the required native dynamic library without duplicating the full SEA/native runtime payload.
- All supported platforms, offline/development scenarios, explicit overrides, checksums, and cache replacement behavior are covered.

## Implementation preparation

- Determine exactly which outcomes #2395, #2463, and #2505 already satisfy.
- Complete rather than duplicate applicable in-progress work.
- Identify and link any missing release assets or changes required from `github/copilot-cli`.
- If a remaining change is compatible with v1, it may land there as groundwork while remaining part of this tracked outcome.
- Preserve backward compatibility where it does not conflict with the intended v2 cleanup, and document any runtime-version requirements.

## Historical context

- #1934
- Commit `05dd60e`
- #2395
- #2463
- #2505

## Completion

Deliver the required outcomes across affected SDKs with a documented artifact contract and platform coverage. Any outcome considered obsolete or infeasible requires concrete evidence and explicit maintainer agreement before it is removed from scope.

贡献指南

打开贡献指南

调研方向

首先审查 #1934,并确定 #2395、#2463 和 #2505 已经覆盖的内容,以及被引用的 commit 05dd60e。跟踪受影响 SDK 中 runtime 获取、打包和嵌入的路径,并确定所需的 github/copilot-cli release assets。完成意味着:在不重复已完成工作的情况下,实现文档化的 artifact contract,以及平台、offline、override、checksum 和 cache 行为。

由索引模型根据 Issue 内容生成。

评估

技术栈
github, go, python, rust
领域
backend-api-design, build-system, devops, release
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。