dsh-github-copilot 0.4.0-alpha.20 → 0.4.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +15 -7
- package/README.zh.md +15 -7
- package/deployment-baseline.json +43 -4
- package/docs/agent-readiness.md +2 -0
- package/lib/index.js +1 -1
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0-alpha.22 (prepared)
|
|
4
|
+
|
|
5
|
+
- Declare React as the DSH Client ModuleLoader external used by the actual built Client bundle, while removing it from the strict Desktop Node peer graph and retaining it only for development.
|
|
6
|
+
- Extend packed-manifest validation from Host shared-package intersection to every declared required peer and Client external, preserving required authorization/schemastery Host peers.
|
|
7
|
+
- Regress the actual packaged Desktop 0.1.5 startup failure `requires missing react@^18.2.0` without bundling a second React instance or weakening `autoInstallPeers: false` graph validation.
|
|
8
|
+
|
|
9
|
+
## 0.4.0-alpha.21 (prepared)
|
|
10
|
+
|
|
11
|
+
- Move Desktop-owned `@deepseek-ai/dsh-authorization` and `@deepseek-ai/schemastery` from private runtime dependencies to required compatible peers while retaining development copies for standalone build and test verification.
|
|
12
|
+
- Audit every declared dependency and peer against the hash-pinned actual Desktop 0.1.5 runtime descriptor and generated Desktop 0.1.6 package-set input.
|
|
13
|
+
- Make packed-tarball verification reject bundled, optional, incompatible, or newly unaudited shared-package ownership without weakening Desktop validation or changing Copilot lifecycle, image-offload, Models, or authorization behavior.
|
|
14
|
+
|
|
3
15
|
## 0.4.0-alpha.20 (prepared)
|
|
4
16
|
|
|
5
17
|
- Add opt-in, bilingual **Model roles** settings with account-discovered planning and execution models, revision-checked save, and an explicit new-session entry.
|
package/README.md
CHANGED
|
@@ -42,9 +42,17 @@ The bundle routes search through a plugin-owned Models-page policy: `auto` prefe
|
|
|
42
42
|
|
|
43
43
|
The exact `dsh-v0.1.6-alpha.1` source fixture now awaits serialized `agent/created` initialization before reading live Session projections. Static and runtime gates also verify the retained request-header/projection path instead of adding synchronous history reads; MCP SDK v2 resource cursors; the `dsh-ptc-runtime` and `dsh-workflow-ptc` contracts; empty model environment for isolated Node PTC; asynchronous cancellable Sandbox/Shell preparation; consumer-owned optional-plugin startup failures; attachment request caches under DSH cache while normalized attachment paths remain stable; and provider-owned Team task pagination. For image-budget recovery, the adapter's first `IMAGE_OFFLOAD_REQUIRED` result remains an error; the fixture records the Core `image/offload` projection and proves the retried Copilot request sends the mapped read-only normalized path as placeholder text without image bytes. The plugin does not import or own MCP, PTC, Workflow, Sandbox, Shell, or Team services. Upstream exposes no generic `HostGrant`/`hostGrants` API in this tag, and the plugin registers no such coupling. Copilot schema compatibility continues to remove unsupported escalation controls from `pwsh`, filesystem, and `run_code` schemas while preserving Team pagination fields. This compatibility version is prepared as a Draft and is not a release claim.
|
|
44
44
|
|
|
45
|
+
### Alpha.21 Desktop shared-package ownership fix (#125)
|
|
46
|
+
|
|
47
|
+
The candidate manifest treats `@deepseek-ai/dsh-authorization` and `@deepseek-ai/schemastery` as required Host peers instead of private runtime dependencies. Development copies remain pinned for standalone build, unit, Host import, Client loader, and Remote codec verification. The packed-tarball gate audits every declared dependency and peer against a hash-pinned actual Desktop 0.1.5 runtime descriptor and the generated Desktop 0.1.6 package-set input; it rejects bundled, optional, incompatible, or newly unaudited shared ownership. The 0.1.6 package-set is authoritative input to descriptor generation but is not a materialized Desktop descriptor, live activation, OAuth, or model-call result. This change preserves the existing Settings → Models provider card, authentication flow, lifecycle adaptation, and image-offload behavior, and does not weaken Desktop validation.
|
|
48
|
+
|
|
49
|
+
### Alpha.22 Client React ownership fix (#132)
|
|
50
|
+
|
|
51
|
+
The built Client intentionally requests React from DSH's browser `ModuleLoader` singleton. React is not a Desktop Host shared package and must not be installed as a required Node profile peer. Alpha.22 declares `dsh.client.external: [\"react\"]`, removes the root React peer, and retains React only as a development dependency. Packed verification now audits every required peer and Client external, confirms the real built Client requests exactly React from the loader, and preserves authorization/schemastery as required Host peers. This fixes the packaged Desktop startup error `requires missing react@^18.2.0` without enabling peer auto-install, bundling another React copy, or weakening Desktop graph validation. Actual packaged Electron loading remains a downstream acceptance gate.
|
|
52
|
+
|
|
45
53
|
## Install and sign in
|
|
46
54
|
|
|
47
|
-
The commands below target the package version `0.4.0-alpha.
|
|
55
|
+
The commands below target the package version `0.4.0-alpha.22`. Versioned URLs describe the intended release artifacts, not proof that publication or local activation has completed; use them only once that Release and its checksums are available. Install into the profile you use (replace `web` when targeting another profile):
|
|
48
56
|
|
|
49
57
|
Before installing/updating, unpack the **checksum-verified** archive into a temporary directory and run its read-only composition preflight (replace all paths with absolute paths for the intended profile):
|
|
50
58
|
|
|
@@ -57,7 +65,7 @@ Include any launcher patch files with repeated `--patch /absolute/file` argument
|
|
|
57
65
|
For approved online installation, the supported CLI command is:
|
|
58
66
|
|
|
59
67
|
```sh
|
|
60
|
-
dsh plugin --profile web add https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
68
|
+
dsh plugin --profile web add https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/dsh-github-copilot-0.4.0-alpha.22.tgz
|
|
61
69
|
```
|
|
62
70
|
|
|
63
71
|
If registry access is blocked or unavailable, do not retry it through another network. Desktop-managed profiles may instead use the [controlled offline CLI procedure](./docs/npm-distribution.md#controlled-offline-cli-maintenance), with an approved, checksum-verified local Release and existing dependency cache (`--offline --ignore-scripts`). All preflight and approval requirements still apply.
|
|
@@ -122,7 +130,7 @@ Agents should treat the browser authorization as a human handoff, not as a token
|
|
|
122
130
|
5. Confirm **Signed in** and inspect the automatic discovery result before asking the user to choose a model. Already-signed-in Models opening ensures missing/stale metadata automatically; fresh ready cache makes no request. Use visible **Retry** for errors or **Manage → Refresh models** for an intentional forced update, not routine setup. Status alone does not discover, and login, metadata and successful model calls remain separate evidence.
|
|
123
131
|
6. Use **Sign out** only when the user explicitly asks to disconnect the account. It deletes the Copilot credential record but preserves route settings.
|
|
124
132
|
|
|
125
|
-
GitHub Releases and npm are the default distribution channels for each new version, using the same verified tarball. Pin the version and verify the evidence for the channel used: Release `SHA256SUMS`, and npm `dist.integrity` when installing from npm. The native Desktop package manager is preferred when permitted registry access is available; after npm publication is verified it accepts `dsh-github-copilot@0.4.0-alpha.
|
|
133
|
+
GitHub Releases and npm are the default distribution channels for each new version, using the same verified tarball. Pin the version and verify the evidence for the channel used: Release `SHA256SUMS`, and npm `dist.integrity` when installing from npm. The native Desktop package manager is preferred when permitted registry access is available; after npm publication is verified it accepts `dsh-github-copilot@0.4.0-alpha.22`, not a URL or file. Desktop-managed profiles also support explicitly approved [controlled offline CLI maintenance](./docs/npm-distribution.md#controlled-offline-cli-maintenance) with a verified local Release and `--offline --ignore-scripts`. Follow the mandatory search-composition preflight, backup, single-writer and post-install checks; do not bypass a corporate registry ban, disable TLS verification or restart without separate approval. Offline installation is not proof that npm networking/publication was repaired. See [distribution and publication requirements](./docs/npm-distribution.md).
|
|
126
134
|
|
|
127
135
|
No `copilot2api` process, external gateway, placeholder API key, pasted GitHub token, or separate `dsh-web-search-provider` installation is required.
|
|
128
136
|
|
|
@@ -141,7 +149,7 @@ DSH Core continues to own model selection, sandboxing, tools, attachments, and o
|
|
|
141
149
|
|
|
142
150
|
Under **Settings → Models → Model roles**, enable dedicated dual-model sessions, select two available account models, save, and choose **Create session with this configuration** for an existing workspace. The planner handles planning and acceptance; `copilot_execute` delegates implementation to a native continuable child with a fixed execution model. Configuration is off by default and affects only sessions created through this entry. It does not change the global default, existing sessions, credentials or the ordinary Subagent model-selection setting.
|
|
143
151
|
|
|
144
|
-
Unavailable models are not substituted. Uncertain creation retries keep the same request identity. The feature requires public role/session/subagent capabilities and is visibly unavailable when they are absent; historical package compatibility is not blanket certification of this optional flow. See [setup, lifecycle, limitations and evidence](./docs/dual-model.md). The feature is
|
|
152
|
+
Unavailable models are not substituted. Uncertain creation retries keep the same request identity. The feature requires public role/session/subagent capabilities and is visibly unavailable when they are absent; historical package compatibility is not blanket certification of this optional flow. See [setup, lifecycle, limitations and evidence](./docs/dual-model.md). The feature is included in the `0.4.0-alpha.22` candidate; source and fixture tests are not proof of publication or Desktop activation.
|
|
145
153
|
|
|
146
154
|
## Shared account, independent sessions (V3)
|
|
147
155
|
|
|
@@ -364,8 +372,8 @@ Report the published Release URL, version, tag/commit and verified asset SHA-256
|
|
|
364
372
|
`package.json` declares public npm distribution. A release tag must equal `v${package.json.version}`. Versions use standard SemVer prerelease labels (`alpha`, `beta`, or `rc`), each with its matching npm dist-tag; only stable versions use `latest`. The Release workflow performs the frozen install and complete verification gate, packs once (or recovers the original archive on retry), verifies `SHA256SUMS`, publishes the immutable GitHub Release and then publishes those same bytes to npm through OIDC. Either channel failing means delivery is incomplete. First package creation needs an authorized maintainer; staging requires an existing package and is not a first-package bootstrap. Historical releases are not republished.
|
|
365
373
|
|
|
366
374
|
```sh
|
|
367
|
-
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
368
|
-
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
375
|
+
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/dsh-github-copilot-0.4.0-alpha.22.tgz
|
|
376
|
+
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/SHA256SUMS
|
|
369
377
|
sha256sum --check SHA256SUMS
|
|
370
378
|
```
|
|
371
379
|
|
|
@@ -373,7 +381,7 @@ PowerShell can verify the same two downloaded files with:
|
|
|
373
381
|
|
|
374
382
|
```powershell
|
|
375
383
|
$expected = (Get-Content .\SHA256SUMS).Split()[0]
|
|
376
|
-
$actual = (Get-FileHash .\dsh-github-copilot-0.4.0-alpha.
|
|
384
|
+
$actual = (Get-FileHash .\dsh-github-copilot-0.4.0-alpha.22.tgz -Algorithm SHA256).Hash.ToLowerInvariant()
|
|
377
385
|
if ($actual -cne $expected) { throw 'Release checksum mismatch' }
|
|
378
386
|
```
|
|
379
387
|
|
package/README.zh.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
一个聚焦 GitHub Copilot 登录、通用账号模型发现、Copilot 专用 Tool 兼容与供应方托管搜索的 DSH companion。插件根据供应方返回的端点和能力元数据组装模型,复用公开的 `@deepseek-ai/dsh-llm-pi-ai` adapter 与 pi-ai SDK,不另写一套通用传输/序列化器,也不维护需要逐个添加新模型 ID 的静态目录。
|
|
11
11
|
|
|
12
|
-
> 下文自动维护账号模型元数据与 provider 集成控件描述目标版本 `0.4.0-alpha.
|
|
12
|
+
> 下文自动维护账号模型元数据与 provider 集成控件描述目标版本 `0.4.0-alpha.22`;这不代表已有的两条真实路由被合并或移除。版本化 URL 不表示 Release 已发布或本机已加载;仅在该 Release 与校验和可用后使用安装命令。源码、发布制品、已安装版本和实际加载运行时需分别确认,本地升级和中断会话的重启仍需用户批准。
|
|
13
13
|
|
|
14
14
|
## 已测试基线
|
|
15
15
|
|
|
@@ -44,6 +44,14 @@ bundle 通过插件自有的 Models 页策略分流搜索:`auto` 优先合格
|
|
|
44
44
|
|
|
45
45
|
精确固定的 `dsh-v0.1.6-alpha.1` 源码 fixture 现在会等待串行 `agent/created` 初始化完成后,再读取 live Session projection。静态与运行时 gate 同时核对:继续通过 request-header/projection 取状态而不新增同步历史读取;MCP SDK v2 resource cursor;`dsh-ptc-runtime` 与 `dsh-workflow-ptc` 名称;隔离 Node PTC 的空模型环境;异步可取消的 Sandbox/Shell 准备;由应用消费者决定的可选插件启动失败;请求图片缓存移入 DSH cache 但 normalized attachment 路径保持独立;以及 Team task 的 provider-owned 分页。图片预算恢复不会把首个 `IMAGE_OFFLOAD_REQUIRED` 当作成功;fixture 会记录 Core `image/offload` projection,并证明重试后的 Copilot 请求仅发送带映射只读 normalized 路径的占位文本,不再发送图片字节。插件不导入或接管 MCP、PTC、Workflow、Sandbox、Shell、Team 服务。该 tag 没有通用 `HostGrant`/`hostGrants` API,插件也不注册此类耦合。Copilot tool schema 过滤继续移除 `pwsh`、文件与 `run_code` 的不可用提权参数,同时保留 Team 分页字段。本版本仅准备 Draft 兼容 PR,不表示已发布。
|
|
46
46
|
|
|
47
|
+
### Alpha.21 Desktop 共享包所有权修复(#125)
|
|
48
|
+
|
|
49
|
+
Candidate manifest 将 `@deepseek-ai/dsh-authorization` 与 `@deepseek-ai/schemastery` 声明为必需 Host peer,不再作为插件私有 runtime dependency。开发环境仍保留固定依赖,用于 standalone build、单元测试、Host import、Client loader 与 Remote codec 验证。真实 packed-tarball gate 会将全部 dependency/peer 与 hash 固定的 Desktop 0.1.5 实际 runtime descriptor、Desktop 0.1.6 生成 package-set 输入逐项审计,并拒绝打包 Host 共享包、把必需 peer 标为 optional、版本不兼容或新增但未审计的依赖。0.1.6 package-set 是 descriptor 生成的权威输入,但不是已经物化的 Desktop descriptor、live 激活、OAuth 或模型调用证据。本修复保留现有 Settings → Models provider card、认证入口、生命周期适配与图片卸载行为,也不弱化 Desktop validator。
|
|
50
|
+
|
|
51
|
+
### Alpha.22 Client React 所有权修复(#132)
|
|
52
|
+
|
|
53
|
+
实际 built Client 会从 DSH 浏览器 `ModuleLoader` singleton 请求 React。React 不是 Desktop Host shared package,也不应作为 Node profile 的必需 peer 安装。Alpha.22 声明 `dsh.client.external: [\"react\"]`,移除 root React peer,仅在开发依赖中保留 React。Packed verification 现在覆盖全部 required peer 与 Client external,确认真实 built Client 只向 loader 请求 React,并继续要求 authorization/schemastery 使用 Host peer。该修复解决 packaged Desktop 启动错误 `requires missing react@^18.2.0`,不启用 peer 自动安装、不打包第二份 React,也不弱化 Desktop graph validator。实际 packaged Electron 加载仍由下游验收 gate 证明。
|
|
54
|
+
|
|
47
55
|
## 安装与登录
|
|
48
56
|
|
|
49
57
|
将当前 release 安装到你实际使用的 profile(其它 profile 请替换 `web`):
|
|
@@ -59,7 +67,7 @@ node package/scripts/check-search-composition.mjs --profile-dir /absolute/profil
|
|
|
59
67
|
获准且网络可用时,可通过受支持的 CLI 命令安装:
|
|
60
68
|
|
|
61
69
|
```sh
|
|
62
|
-
dsh plugin --profile web add https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
70
|
+
dsh plugin --profile web add https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/dsh-github-copilot-0.4.0-alpha.22.tgz
|
|
63
71
|
```
|
|
64
72
|
|
|
65
73
|
若 registry 被公司封禁或不可用,不要更换网络绕行。Desktop 管理的 profile 可以改用[受控离线 CLI 流程](./docs/npm-distribution.md#controlled-offline-cli-maintenance):使用来源获准、校验通过的本地 Release 和已有依赖缓存(`--offline --ignore-scripts`)。预检、备份和授权要求仍然适用。
|
|
@@ -124,7 +132,7 @@ Agent 应把浏览器授权视为需要用户完成的 handoff,而不是自行
|
|
|
124
132
|
5. 确认 **Signed in** 并检查自动发现结果,再请用户选择模型。已登录时打开 Models 会自动确保缺失/过期元数据,新鲜 ready 缓存不发请求。错误可使用 **Retry**,有意强制更新时使用 **Manage → Refresh models**,不作为常规设置步骤。状态读取本身不发现;登录、元数据与真实调用成功是独立证据。
|
|
125
133
|
6. 只有用户明确要求断开账号时才使用 **Sign out**;它会删除 Copilot credential record,但保留 route settings。
|
|
126
134
|
|
|
127
|
-
每个新版本默认同时分发到 GitHub Releases 和 npm,两个渠道使用同一份已验证 tarball。应固定版本并核对所用渠道的证据:Release 的 `SHA256SUMS`;从 npm 安装时另核对 `dist.integrity`。在获准且可用的 registry 网络环境中,优先使用原生 Desktop 包管理器;确认 npm 发布后,它接受 `dsh-github-copilot@0.4.0-alpha.
|
|
135
|
+
每个新版本默认同时分发到 GitHub Releases 和 npm,两个渠道使用同一份已验证 tarball。应固定版本并核对所用渠道的证据:Release 的 `SHA256SUMS`;从 npm 安装时另核对 `dist.integrity`。在获准且可用的 registry 网络环境中,优先使用原生 Desktop 包管理器;确认 npm 发布后,它接受 `dsh-github-copilot@0.4.0-alpha.22`,不是 URL 或本地文件。Desktop 管理的 profile 也允许经明确授权的[受控离线 CLI 维护](./docs/npm-distribution.md#controlled-offline-cli-maintenance):使用已验证的本地 Release 和 `--offline --ignore-scripts`,执行必需的组合预检、私密元数据备份、单写入者控制及安装后差异核验。缓存不足或出现权限拒绝时停止,不绕过公司 registry 封禁,不关闭 TLS 校验;重启仍需单独授权。离线安装成功不表示 npm 联网或发布问题已修好。[双渠道发布与 OIDC 要求](./docs/npm-distribution.md)保持不变。
|
|
128
136
|
|
|
129
137
|
不需要运行 `copilot2api`,不需要外部 gateway、placeholder API key、原始 GitHub token 或单独安装 `dsh-web-search-provider`。
|
|
130
138
|
|
|
@@ -145,7 +153,7 @@ DSH Core 继续负责模型选择、sandbox、工具、附件与其它 provider
|
|
|
145
153
|
|
|
146
154
|
在 **设置 → 模型 → 模型分工** 中启用双模型会话,选择账号下可用的主模型和执行模型,保存后选工作区,再点 **用此配置新建会话**。主模型负责规划与验收;`copilot_execute` 创建原生可继续执行的子代理,并固定其执行模型。默认关闭,仅专用入口创建的新会话采用此策略;不修改全局默认、已有会话、登录凭据或原生 Subagent 授权开关。
|
|
147
155
|
|
|
148
|
-
模型不可用时明确报错,不自动替换。创建结果不明时重试同一个请求,不为绕过未知结果另建会话。功能依赖公开的会话、策略和子代理能力;缺少接口时显示不可用,不把历史版本的包兼容范围当成此功能的全面验收。详见[配置、生命周期、限制与验证范围](./docs/dual-model.md)
|
|
156
|
+
模型不可用时明确报错,不自动替换。创建结果不明时重试同一个请求,不为绕过未知结果另建会话。功能依赖公开的会话、策略和子代理能力;缺少接口时显示不可用,不把历史版本的包兼容范围当成此功能的全面验收。详见[配置、生命周期、限制与验证范围](./docs/dual-model.md)。本功能包含在 `0.4.0-alpha.22` candidate 中,源码和合成测试不代表已发布或当前 Desktop 已生效。
|
|
149
157
|
|
|
150
158
|
## 全局账号,多模型与独立会话(V3)
|
|
151
159
|
|
|
@@ -375,8 +383,8 @@ node scripts/agent.mjs attribution "DeepSeek Harness (DSH)"
|
|
|
375
383
|
`package.json` 声明公开 npm 分发。Release tag 必须严格等于 `v${package.json.version}`。预发布使用 `alpha`、`beta` 或 `rc` 及对应 npm dist-tag,只有稳定版使用 `latest`。Release workflow 执行 frozen install 和完整门禁,只打包一次(重试恢复原始归档),验证 `SHA256SUMS`,发布不可变 GitHub Release,再通过 OIDC 将同一份字节发布到 npm。任一渠道失败都表示交付未完成。首次建包须由获准环境中的维护者完成;staging 要求包已存在,不能代替首次建包。不会批量补发历史版本。
|
|
376
384
|
|
|
377
385
|
```sh
|
|
378
|
-
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
379
|
-
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.
|
|
386
|
+
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/dsh-github-copilot-0.4.0-alpha.22.tgz
|
|
387
|
+
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.0-alpha.22/SHA256SUMS
|
|
380
388
|
sha256sum --check SHA256SUMS
|
|
381
389
|
```
|
|
382
390
|
|
|
@@ -384,7 +392,7 @@ PowerShell 可以对已下载的同一组文件执行:
|
|
|
384
392
|
|
|
385
393
|
```powershell
|
|
386
394
|
$expected = (Get-Content .\SHA256SUMS).Split()[0]
|
|
387
|
-
$actual = (Get-FileHash .\dsh-github-copilot-0.4.0-alpha.
|
|
395
|
+
$actual = (Get-FileHash .\dsh-github-copilot-0.4.0-alpha.22.tgz -Algorithm SHA256).Hash.ToLowerInvariant()
|
|
388
396
|
if ($actual -cne $expected) { throw 'Release checksum mismatch' }
|
|
389
397
|
```
|
|
390
398
|
|
package/deployment-baseline.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"package": {
|
|
10
10
|
"name": "dsh-github-copilot",
|
|
11
|
-
"version": "0.4.0-alpha.
|
|
11
|
+
"version": "0.4.0-alpha.22"
|
|
12
12
|
},
|
|
13
13
|
"evidence": {
|
|
14
14
|
"kind": "source-and-synthetic-test-inventory",
|
|
@@ -168,13 +168,52 @@
|
|
|
168
168
|
},
|
|
169
169
|
"piAi": "0.85.1",
|
|
170
170
|
"runtimeDependencies": {
|
|
171
|
-
"@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
|
|
172
|
-
"@deepseek-ai/schemastery": "^3.18.2",
|
|
173
171
|
"@earendil-works/pi-ai": "0.85.1",
|
|
174
172
|
"zod": "^4.4.3"
|
|
175
|
-
}
|
|
173
|
+
},
|
|
174
|
+
"sharedPeerDependencies": {
|
|
175
|
+
"@deepseek-ai/dsh-authorization": "0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.3-alpha.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
176
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
177
|
+
},
|
|
178
|
+
"clientExternals": {
|
|
179
|
+
"react": {
|
|
180
|
+
"range": "^18.2.0",
|
|
181
|
+
"owner": "dsh-client-module-static-singleton",
|
|
182
|
+
"nodeGraph": false
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"desktopSharedPackageContracts": [
|
|
186
|
+
{
|
|
187
|
+
"id": "desktop-0.1.5-rc.2-installed-runtime",
|
|
188
|
+
"sourceSha256": "210cacaf3842643ef6c124fd23cb3b67caf7008e97868c733550b56ba7a1e836",
|
|
189
|
+
"packageCount": 241
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "desktop-0.1.6-alpha.1-generated-package-set",
|
|
193
|
+
"sourceSha256": "51b25ad67e6b0198edca0ec9baf8ebd06d26217dd33d1a2a4cce7e881382e6ea",
|
|
194
|
+
"packageCount": 246,
|
|
195
|
+
"descriptorStatus": "not-materialized"
|
|
196
|
+
}
|
|
197
|
+
]
|
|
176
198
|
},
|
|
177
199
|
"capabilities": [
|
|
200
|
+
{
|
|
201
|
+
"id": "desktop-shared-package-ownership",
|
|
202
|
+
"required": true,
|
|
203
|
+
"evidenceScope": "packed-manifest-required-peer-and-client-external-closure-against-actual-0.1.5-and-generated-0.1.6-contracts",
|
|
204
|
+
"sourceMarkers": [
|
|
205
|
+
{"file": "scripts/verify-desktop-package-graph.mjs", "marker": "verifyDesktopPackageGraph"},
|
|
206
|
+
{"file": "scripts/verify-tarball.mjs", "marker": "desktopSharedGraphs"},
|
|
207
|
+
{"file": "tests/fixtures/desktop-shared-package-contracts.json", "marker": "desktop-0.1.6-alpha.1-generated-package-set"},
|
|
208
|
+
{"file": "tsdown.config.ts", "marker": "const externals = new Set(['react'])"},
|
|
209
|
+
{"file": "package.json", "marker": "\"external\": ["}
|
|
210
|
+
],
|
|
211
|
+
"tests": [
|
|
212
|
+
{"file": "tests/scripts/desktop-package-graph.test.mjs", "name": "packed manifest composes with the actual 0.1.5 and generated 0.1.6 Desktop shared graphs"},
|
|
213
|
+
{"file": "tests/scripts/desktop-package-graph.test.mjs", "name": "shared graph gate rejects bundled, optional, incompatible, or unaudited host ownership"},
|
|
214
|
+
{"file": "tests/scripts/desktop-package-graph.test.mjs", "name": "client externals stay outside the strict Node peer graph"}
|
|
215
|
+
]
|
|
216
|
+
},
|
|
178
217
|
{
|
|
179
218
|
"id": "readonly-search-composition-preflight",
|
|
180
219
|
"required": true,
|
package/docs/agent-readiness.md
CHANGED
|
@@ -20,6 +20,8 @@ The existing project already has useful architecture boundaries, strict Remote c
|
|
|
20
20
|
| Vacuous assertion | Cordis DisposableList was indexed as an array, allowing undefined UID comparisons | Use iterable conversion and assert defined identity before equality in loader tests |
|
|
21
21
|
| Build evidence | verify:package checked Host existence, then claimed built Host verified | Import real built Host without the Vitest Typert alias; assert exported contract and label the evidence as import-only |
|
|
22
22
|
| Archive delivery | Pack/checksum did not check actual exported files or README media; images were omitted | `verify:tarball` inspects bounded tar data without extraction; rejects paths/links/duplicates/unexpected files/trailing payload; compares the full normalized manifest and every packed file to the checkout/build; checks exports and README media; CI/release run it after packing |
|
|
23
|
+
| Desktop shared-package ownership | Alpha.18-alpha.20 tarballs privately declared Host-owned authorization and schema packages, so native Desktop profile validation rejected the graph | Alpha.21 makes both required peers with development-only copies; the packed-manifest gate audits every runtime/peer declaration against hash-pinned 0.1.5 actual descriptor and 0.1.6 generated package-set projections |
|
|
24
|
+
| Client external ownership | Alpha.21 left React as a required nonshared Node peer, so packaged Desktop with `autoInstallPeers: false` stopped before receipts/state | Alpha.22 declares `dsh.client.external: [\"react\"]`, removes the root React peer, retains a dev copy, and verifies the actual built Client requests exactly the shell-owned React singleton |
|
|
23
25
|
| External verifier safety | Fixed fixture path could overwrite then delete a pre-existing upstream file | Exclusive create, pinned clean tracked sources, physical-path containment, identity/byte-guarded cleanup and bounded child; twelve synthetic failure/sentinel tests including a Windows junction |
|
|
24
26
|
| Release prerequisite | Tag workflow could run independently of complete platform/Core matrix | Reuse CI through workflow_call; publish job needs matrix success on tag revision; contract verifier checks the dependency |
|
|
25
27
|
| Session model correctness | Inline preflight checked provider but plan sends default-route candidate.model | Historical guard matched provider AND model and delegated mismatches; alpha.8 replaces default-derived planning with initiating-owner/request identity (see #99 below) |
|
package/lib/index.js
CHANGED
|
@@ -751,7 +751,7 @@ var GitHubCopilotDualModel = class extends Service {
|
|
|
751
751
|
//#endregion
|
|
752
752
|
//#region package.json
|
|
753
753
|
var name$1 = "dsh-github-copilot";
|
|
754
|
-
var version = "0.4.0-alpha.
|
|
754
|
+
var version = "0.4.0-alpha.22";
|
|
755
755
|
//#endregion
|
|
756
756
|
//#region lib/types/probe.js
|
|
757
757
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-github-copilot",
|
|
3
3
|
"description": "DSH companion for GitHub Copilot sign-in, account-aware model profiles, tool compatibility, and provider-hosted search.",
|
|
4
|
-
"version": "0.4.0-alpha.
|
|
4
|
+
"version": "0.4.0-alpha.22",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
7
7
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"@deepseek-ai/dsh-typert-protocol": "0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.3-alpha.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
95
95
|
"@deepseek-ai/dsh-web": "0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.3-alpha.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
96
96
|
"@deepseek-ai/dsh-web-search-deepseek": "0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.3-alpha.1 || 0.1.5-alpha.1 || 0.1.5-alpha.2 || 0.1.5-rc.1 || 0.1.5-rc.2 || 0.1.6-alpha.1",
|
|
97
|
-
"
|
|
97
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
98
98
|
},
|
|
99
99
|
"peerDependenciesMeta": {
|
|
100
100
|
"@deepseek-ai/dsh-web-search-deepseek": {
|
|
@@ -106,9 +106,6 @@
|
|
|
106
106
|
"@deepseek-ai/dsh-api-remotes": {
|
|
107
107
|
"optional": true
|
|
108
108
|
},
|
|
109
|
-
"@deepseek-ai/dsh-authorization": {
|
|
110
|
-
"optional": true
|
|
111
|
-
},
|
|
112
109
|
"@deepseek-ai/dsh-client-ui-renderer": {
|
|
113
110
|
"optional": true
|
|
114
111
|
},
|
|
@@ -123,8 +120,6 @@
|
|
|
123
120
|
}
|
|
124
121
|
},
|
|
125
122
|
"dependencies": {
|
|
126
|
-
"@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
|
|
127
|
-
"@deepseek-ai/schemastery": "^3.18.2",
|
|
128
123
|
"@earendil-works/pi-ai": "0.85.1",
|
|
129
124
|
"zod": "^4.4.3"
|
|
130
125
|
},
|
|
@@ -155,6 +150,7 @@
|
|
|
155
150
|
"@deepseek-ai/dsh-typert-registry": "0.1.2-rc.1",
|
|
156
151
|
"@deepseek-ai/dsh-web": "0.1.2-rc.1",
|
|
157
152
|
"@deepseek-ai/dsh-web-search-deepseek": "0.1.2-rc.1",
|
|
153
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
158
154
|
"@types/node": "^22.0.0",
|
|
159
155
|
"@types/react": "~18.3.1",
|
|
160
156
|
"@types/react-dom": "18.3.7",
|
|
@@ -175,6 +171,9 @@
|
|
|
175
171
|
"patch": "./cordis.patch.yml"
|
|
176
172
|
},
|
|
177
173
|
"client": {
|
|
174
|
+
"external": [
|
|
175
|
+
"react"
|
|
176
|
+
],
|
|
178
177
|
"inject": [
|
|
179
178
|
"@deepseek-ai/dsh-api-remotes",
|
|
180
179
|
"@deepseek-ai/dsh-client-ui-settings-models"
|