dsh-grok-provider 0.1.2 → 0.1.3
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 +8 -0
- package/README.en.md +25 -6
- package/README.md +25 -6
- package/SECURITY.md +1 -1
- package/dist/internal/responses-request.mjs +17 -4
- package/docs/05-test-plan.md +1 -1
- package/docs/06-release-plan.md +1 -1
- package/docs/09-implementation-status.md +23 -6
- package/docs/10-release-checklist.md +16 -2
- package/docs/README.md +5 -4
- package/docs/releases/v0.1.3.md +65 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.3 - 2026-08-27
|
|
4
|
+
|
|
5
|
+
- Fix existing Harness conversations failing immediately after switching from Ark to Grok when an earlier tool-call ID contains Ark's `|` delimiter.
|
|
6
|
+
- Preserve Grok-compatible call IDs and deterministically map bounded incompatible historical IDs to safe request-local correlation IDs.
|
|
7
|
+
- Keep each mapped function call and function result correlated without forwarding the incompatible foreign identifier to xAI.
|
|
8
|
+
- Add regression coverage using the exact redacted Ark call-ID shape captured from the affected conversation.
|
|
9
|
+
- Add three repository-hosted preview images for community marketplace listings without including them in the npm runtime artifact.
|
|
10
|
+
|
|
3
11
|
## 0.1.2 - 2026-08-26
|
|
4
12
|
|
|
5
13
|
- Fix Windows browser sign-in for official Grok Build CLI `0.2.82`, which `0.1.1` rejected before invoking `login --oauth`.
|
package/README.en.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Use an already authenticated official Grok Build account from DeepSeek Harness, with dynamic model discovery, streaming reasoning, tool calls, and an account quota/model capability dashboard.
|
|
6
6
|
|
|
7
|
-
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. The current stable version is `0.1.
|
|
7
|
+
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. The current stable version is `0.1.3`. The project no longer publishes prereleases; stable defects are fixed in a new incremented stable version.
|
|
8
8
|
|
|
9
9
|
## What it provides
|
|
10
10
|
|
|
@@ -41,7 +41,7 @@ The official CLI opens a browser on first use. The provider supports only the of
|
|
|
41
41
|
Install the published exact version from npm:
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
|
-
dsh plugin --profile web add dsh-grok-provider@0.1.
|
|
44
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.3
|
|
45
45
|
dsh web
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -66,6 +66,20 @@ The Web settings page shows:
|
|
|
66
66
|
|
|
67
67
|
When protobuf-backed billing includes a complete weekly/monthly period but omits a zero-valued percentage, the page restores “0% used / 100% remaining.” Other incomplete responses remain unknown.
|
|
68
68
|
|
|
69
|
+
## Plugin preview
|
|
70
|
+
|
|
71
|
+
### Account quota and model capabilities
|
|
72
|
+
|
|
73
|
+

|
|
74
|
+
|
|
75
|
+
### Harness model picker
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
### Grok conversation context
|
|
80
|
+
|
|
81
|
+

|
|
82
|
+
|
|
69
83
|
TUI commands:
|
|
70
84
|
|
|
71
85
|
```text
|
|
@@ -97,8 +111,8 @@ Uninstalling the provider does not remove the official Grok CLI or directly modi
|
|
|
97
111
|
|
|
98
112
|
## Sources and discovery
|
|
99
113
|
|
|
100
|
-
- Exact npm version: [dsh-grok-provider@0.1.
|
|
101
|
-
- GitHub release and integrity values: [v0.1.
|
|
114
|
+
- Exact npm version: [dsh-grok-provider@0.1.3](https://www.npmjs.com/package/dsh-grok-provider/v/0.1.3)
|
|
115
|
+
- GitHub release and integrity values: [v0.1.3](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v0.1.3)
|
|
102
116
|
- GitHub community discovery: the repository carries the DeepSeek Harness-recommended `dsh-plugin` and `dsh` topics
|
|
103
117
|
- YukiRyou managed source: [deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog), following the exact verified stable version and currently marking only verified macOS arm64
|
|
104
118
|
|
|
@@ -106,7 +120,7 @@ Directory inclusion is not an endorsement by xAI or DeepSeek Harness. The public
|
|
|
106
120
|
|
|
107
121
|
## Compatibility and scope
|
|
108
122
|
|
|
109
|
-
| Item | `0.1.
|
|
123
|
+
| Item | `0.1.3` status |
|
|
110
124
|
| --- | --- |
|
|
111
125
|
| DeepSeek Harness | Exact support for `0.1.1-rc.2` |
|
|
112
126
|
| Node.js | `>=24.19.0` |
|
|
@@ -164,9 +178,13 @@ Run `grok models` and verify that the same account can see it. The provider retu
|
|
|
164
178
|
|
|
165
179
|
A protobuf-omitted zero is restored only with a complete typed period. In every other case the upstream response lacks enough information, so the provider preserves “unknown.” OAuth token expiry is never shown as a quota reset.
|
|
166
180
|
|
|
181
|
+
### An existing conversation fails immediately after switching from another model to Grok
|
|
182
|
+
|
|
183
|
+
Versions through `0.1.2` could not convert some third-party tool-call histories containing special characters, notably `|` in Ark call IDs. Update to `0.1.3`; it preserves call/result correlation while safely mapping incompatible historical IDs before sending the request to Grok.
|
|
184
|
+
|
|
167
185
|
### Does Windows work?
|
|
168
186
|
|
|
169
|
-
Windows x64 code and CI coverage are present.
|
|
187
|
+
Windows x64 code and CI coverage are present. Ordinary later stable fixes do not repeat real-device acceptance; changes to authentication, the Harness subprocess seam, or platform security policy still require targeted validation.
|
|
170
188
|
|
|
171
189
|
## Development
|
|
172
190
|
|
|
@@ -196,6 +214,7 @@ Read the [contributing guide](CONTRIBUTING.md) before filing an issue or PR. Cha
|
|
|
196
214
|
- [x] Configure npm Trusted Publisher, revoke the initial token, and add `dsh-plugin` discovery plus the YukiRyou catalog entry
|
|
197
215
|
- [x] Publish the `0.1.1` documentation and release-process correction
|
|
198
216
|
- [x] Publish the `0.1.2` Windows CLI compatibility correction
|
|
217
|
+
- [x] Publish the `0.1.3` cross-provider tool-history compatibility correction
|
|
199
218
|
- [ ] Complete independent Windows x64 acceptance and publish a later stable fix if needed
|
|
200
219
|
- [ ] Evaluate additional content types and platforms only against verified Harness/xAI contracts
|
|
201
220
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
让 DeepSeek Harness 使用你已登录的官方 Grok Build 账号:动态模型发现、流式推理、工具调用,以及账号额度与模型能力面板。
|
|
6
6
|
|
|
7
|
-
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。当前稳定版本为 `0.1.
|
|
7
|
+
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。当前稳定版本为 `0.1.3`。项目不再发行预发行版;正式版缺陷通过新的递增稳定版本修复。
|
|
8
8
|
|
|
9
9
|
## 它解决什么问题
|
|
10
10
|
|
|
@@ -41,7 +41,7 @@ grok models
|
|
|
41
41
|
从 npm 安装已发布的精确版本:
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
|
-
dsh plugin --profile web add dsh-grok-provider@0.1.
|
|
44
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.3
|
|
45
45
|
dsh web
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -66,6 +66,20 @@ Web 设置页展示:
|
|
|
66
66
|
|
|
67
67
|
当 protobuf-backed billing 返回完整的 weekly/monthly 周期但省略零值百分比时,页面会恢复为“已使用 0% / 剩余 100%”;其他不完整响应保持未知,不伪造额度。
|
|
68
68
|
|
|
69
|
+
## 插件预览
|
|
70
|
+
|
|
71
|
+
### 账户额度与模型能力
|
|
72
|
+
|
|
73
|
+

|
|
74
|
+
|
|
75
|
+
### Harness 模型选择器
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
### Grok 对话上下文
|
|
80
|
+
|
|
81
|
+

|
|
82
|
+
|
|
69
83
|
TUI 命令:
|
|
70
84
|
|
|
71
85
|
```text
|
|
@@ -97,8 +111,8 @@ dsh web
|
|
|
97
111
|
|
|
98
112
|
## 项目来源与发现
|
|
99
113
|
|
|
100
|
-
- npm 精确版本:[dsh-grok-provider@0.1.
|
|
101
|
-
- GitHub 发行版与校验值:[v0.1.
|
|
114
|
+
- npm 精确版本:[dsh-grok-provider@0.1.3](https://www.npmjs.com/package/dsh-grok-provider/v/0.1.3)
|
|
115
|
+
- GitHub 发行版与校验值:[v0.1.3](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v0.1.3)
|
|
102
116
|
- GitHub 社区发现:仓库已添加 DeepSeek Harness 官方推荐的 `dsh-plugin` 与 `dsh` Topics
|
|
103
117
|
- YukiRyou 受管来源:[deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog),跟随已验证的精确稳定版本,当前只标记已验证的 macOS arm64
|
|
104
118
|
|
|
@@ -106,7 +120,7 @@ dsh web
|
|
|
106
120
|
|
|
107
121
|
## 兼容性与范围
|
|
108
122
|
|
|
109
|
-
| 项目 | `0.1.
|
|
123
|
+
| 项目 | `0.1.3` 状态 |
|
|
110
124
|
| --- | --- |
|
|
111
125
|
| DeepSeek Harness | 精确支持 `0.1.1-rc.2` |
|
|
112
126
|
| Node.js | `>=24.19.0` |
|
|
@@ -164,9 +178,13 @@ dsh-grok-provider Host
|
|
|
164
178
|
|
|
165
179
|
完整类型化周期下缺失的 protobuf 零值会恢复为 0%;其他情况下,上游没有提供足够信息,插件会保留未知。OAuth token 过期时间绝不会冒充额度刷新时间。
|
|
166
180
|
|
|
181
|
+
### 从其他模型切换到 Grok 后立即提示响应无效
|
|
182
|
+
|
|
183
|
+
`0.1.2` 及更早版本不能转换部分包含特殊字符的第三方工具调用历史,典型情况是 Ark 调用 ID 中的 `|`。请更新到 `0.1.3`;新版本会保持工具调用与结果的关联,并在发送给 Grok 前安全映射不兼容的历史 ID。
|
|
184
|
+
|
|
167
185
|
### Windows 能用吗
|
|
168
186
|
|
|
169
|
-
代码和 Windows CI 覆盖 Windows x64
|
|
187
|
+
代码和 Windows CI 覆盖 Windows x64。普通后续稳定修复不重复要求真机验收;认证流程、Harness subprocess seam 或平台安全策略发生变化时仍会定向验证。
|
|
170
188
|
|
|
171
189
|
## 开发
|
|
172
190
|
|
|
@@ -196,6 +214,7 @@ npm run pack:check
|
|
|
196
214
|
- [x] 配置 npm Trusted Publisher、撤销首发 Token,并加入 `dsh-plugin` Topic 与 YukiRyou catalog
|
|
197
215
|
- [x] 发布 `0.1.1` 文档与发布流程修正版
|
|
198
216
|
- [x] 发布 `0.1.2` Windows CLI 兼容性修正版
|
|
217
|
+
- [x] 发布 `0.1.3` 跨 Provider 工具调用历史兼容性修正版
|
|
199
218
|
- [ ] 完成 Windows x64 独立真机验收并按需发布后续稳定修复版
|
|
200
219
|
- [ ] 根据已验证的 Harness/xAI 协议逐项评估更多内容类型和平台
|
|
201
220
|
|
package/SECURITY.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 支持范围
|
|
6
6
|
|
|
7
|
-
当前稳定版本为 `0.1.
|
|
7
|
+
当前稳定版本为 `0.1.3`。DeepSeek Harness、Node.js 与操作系统按发布线明确维护;Grok CLI 不使用完整版本字符串作为信任门禁,而是严格校验官方默认路径、命令能力、生产 OIDC 凭据契约和固定服务端协议。macOS arm64 已完成真实验收;Windows x64 有代码与 CI 覆盖。`0.1.3` 只修复有界历史调用 ID 的请求内安全映射,不改动认证、凭据或平台执行边界。项目不再发行预发行版,安全或兼容性缺陷使用新的递增稳定版本修复。
|
|
8
8
|
|
|
9
9
|
## 私下报告漏洞
|
|
10
10
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { createHash } from "node:crypto"
|
|
2
|
+
|
|
1
3
|
const ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/
|
|
4
|
+
const MAX_CALL_ID_BYTES = 1024
|
|
2
5
|
const MAX_TEXT_LENGTH = 8 * 1024 * 1024
|
|
3
6
|
const MAX_REQUEST_BYTES = 16 * 1024 * 1024
|
|
4
7
|
const MAX_MESSAGES = 10_000
|
|
@@ -103,10 +106,10 @@ function encodeOrdinaryMessage(message, input, targetModel) {
|
|
|
103
106
|
}
|
|
104
107
|
if (block.type === "tool-call" && message.role === "assistant") {
|
|
105
108
|
flushText()
|
|
106
|
-
if (!isId(block.
|
|
109
|
+
if (!isId(block.name) || !isJsonObject(block.arguments)) fail()
|
|
107
110
|
input.push({
|
|
108
111
|
type: "function_call",
|
|
109
|
-
call_id: block.id,
|
|
112
|
+
call_id: encodeCallId(block.id),
|
|
110
113
|
name: block.name,
|
|
111
114
|
arguments: block.arguments,
|
|
112
115
|
})
|
|
@@ -151,7 +154,6 @@ function encodeToolResultMessage(message, input) {
|
|
|
151
154
|
) fail()
|
|
152
155
|
const result = message.content[0]
|
|
153
156
|
if (
|
|
154
|
-
!isId(message.source.callId) ||
|
|
155
157
|
result.toolCallId !== message.source.callId ||
|
|
156
158
|
!Array.isArray(result.content)
|
|
157
159
|
) fail()
|
|
@@ -162,7 +164,18 @@ function encodeToolResultMessage(message, input) {
|
|
|
162
164
|
output += parseText(block.text)
|
|
163
165
|
if (output.length > MAX_TEXT_LENGTH) fail()
|
|
164
166
|
}
|
|
165
|
-
input.push({ type: "function_call_output", call_id: result.toolCallId, output })
|
|
167
|
+
input.push({ type: "function_call_output", call_id: encodeCallId(result.toolCallId), output })
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function encodeCallId(value) {
|
|
171
|
+
if (isId(value)) return value
|
|
172
|
+
if (
|
|
173
|
+
typeof value !== "string" ||
|
|
174
|
+
value.length === 0 ||
|
|
175
|
+
Buffer.byteLength(value, "utf8") > MAX_CALL_ID_BYTES
|
|
176
|
+
) fail()
|
|
177
|
+
const digest = createHash("sha256").update(value, "utf8").digest("base64url")
|
|
178
|
+
return `dsh_call_${digest}`
|
|
166
179
|
}
|
|
167
180
|
|
|
168
181
|
function encodeTools(tools) {
|
package/docs/05-test-plan.md
CHANGED
|
@@ -223,4 +223,4 @@ Web 与 TUI 分别验证:
|
|
|
223
223
|
- Windows x64 自动化平台测试通过,且 README、release notes 和 marketplace 元数据在首次真机验证前明确披露“代码支持、真机未验证”。
|
|
224
224
|
- npm 回读的 SHA-512 与本地发布 tarball 一致。
|
|
225
225
|
|
|
226
|
-
`0.1.0`
|
|
226
|
+
`0.1.0` 发布后原计划完成一次 Windows x64 Registry 精确版本真机验收;仓库所有者随后明确决定该验收不再阻断稳定发布,且普通后续版本不重复要求真机验证。`0.1.1` 及后续版本以 CI、契约测试、隔离安装和制品校验为常规门禁;只有认证流程、Harness subprocess seam 或平台安全策略发生变化时才必须定向真机验证。`0.1.3` 只修改平台无关的历史消息请求转换,并以真实脱敏 Ark 调用 ID 回归和 macOS/Windows CI 为平台门禁。
|
package/docs/06-release-plan.md
CHANGED
|
@@ -128,7 +128,7 @@ patch 路径必须为不含 `..`、绝对路径、反斜线或 NUL 的相对 `.y
|
|
|
128
128
|
|
|
129
129
|
## 7. Git 与版本
|
|
130
130
|
|
|
131
|
-
- `0.1.0` 历史开发分支:`yukiryou/v0.1.0`;当前版本分支:`yukiryou/v0.1.
|
|
131
|
+
- `0.1.0` 历史开发分支:`yukiryou/v0.1.0`;当前版本分支:`yukiryou/v0.1.3`。
|
|
132
132
|
- `package.json`、CHANGELOG、release notes、Git tag 和 tarball 必须使用同一个精确候选版本。
|
|
133
133
|
- 发布提交必须干净且可复现。
|
|
134
134
|
- tag 使用 `v<major>.<minor>.<patch>`,只在发布提交确定后创建。
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# 当前实现与发布状态
|
|
2
2
|
|
|
3
|
-
稳定 `0.1.
|
|
3
|
+
稳定 `0.1.3` 修复 Ark 等其他 Provider 的历史工具调用 ID 含有 Grok 不接受字符时,本地请求转换立即失败的问题。该修复不改动认证、凭据、额度、模型目录、endpoint 或平台 subprocess 边界。
|
|
4
4
|
|
|
5
|
-
状态日期:2026-08-
|
|
6
|
-
当前发布线:`dsh-grok-provider@0.1.
|
|
7
|
-
|
|
5
|
+
状态日期:2026-08-27
|
|
6
|
+
当前发布线:`dsh-grok-provider@0.1.3`
|
|
7
|
+
发布分支:`yukiryou/v0.1.3`
|
|
8
8
|
|
|
9
9
|
## 已实现
|
|
10
10
|
|
|
11
11
|
- 原创 Host provider、固定 Grok Build transport、动态账号模型目录和严格 Responses SSE codec。
|
|
12
|
-
- 文本、reasoning、usage、`stop|tool-calls|max-tokens`、函数调用/结果、多轮历史和加密 reasoning replay
|
|
12
|
+
- 文本、reasoning、usage、`stop|tool-calls|max-tokens`、函数调用/结果、多轮历史和加密 reasoning replay;不兼容 Grok 字符集但有界的第三方历史调用 ID 会确定性映射,并保持调用/结果关联。
|
|
13
13
|
- 官方 CLI 单路径:固定默认路径、版本仅作有界诊断、登录能力探测、受控 cwd/环境、固定 argv、无 shell spawn、10 秒准备期限、5 分钟登录期限、2 分钟退出期限、整棵进程树取消与异步卸载等待;`grok login --oauth` 负责打开浏览器和持久化 token,CLI 退出 0 后插件再次校验生产 OIDC credential schema。
|
|
14
14
|
- 包中不存在独立 OAuth client identity、device flow、插件实现的 refresh/revoke、Harness credential grant 或模式选择接口;过期 access token 只通过 single-flight、30 秒有界的官方 CLI `models` 命令续期,插件不提取 refresh token、不执行 refresh grant、不写凭据文件。ADR-0003 已由 ADR-0005 取代。
|
|
15
15
|
- Web:Harness settings section、中文/英文、loopback-only RPC、登录状态轮询、陈旧 session 防护、取消和二次退出确认;新增参考 Harness 信息层级的账户卡、真实 billing 周期/重置时间和动态模型 capability 卡。完整类型化周期可恢复 proto3 省略的零使用率,其他缺失百分比仍显示未知;renderer 不接触 token 或 identity。
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
## 已验证
|
|
20
20
|
|
|
21
|
-
- Node 完整构建/测试通过:
|
|
21
|
+
- Node 24 完整构建/测试通过:62 项,60 pass、0 fail、2 项 Windows-only 在 macOS 按预期跳过并由 CI matrix 承接。
|
|
22
|
+
- 使用真实脱敏 Ark `toolu_ark1_…|fc_…` ID 形状的回归测试先稳定复现旧版本失败,再验证 `0.1.3` 同时生成匹配的 `function_call` 与 `function_call_output` 安全 ID。
|
|
22
23
|
- `npm audit --omit=dev`:0 vulnerability。
|
|
23
24
|
- 新认证接口的本地候选已安装到隔离的 Harness `0.1.1-rc.2` TUI/Web profile。真实 TUI 的缺失凭据 `unavailable`、`/grok login` 浏览器跳转、官方 CLI 登录成功和有效凭据 `ready` 均通过。真实 Web 的 client bundle 发现、Grok 设置页、登录启动/取消、Host 重启和临时 profile 卸载均通过;rc.2 scanner 所需的 `./package.json` 导出已加入回归测试。
|
|
24
25
|
- Web/TUI 的 `available` 现在实际验证官方 credential contract,不再把 credential source 已注册误报为 ready;缺失凭据的真机 Web/TUI 双向验证通过。
|
|
@@ -61,3 +62,19 @@ Windows x64 真机不再是 `0.1.0` 预发布阻断项。首次发布后必须
|
|
|
61
62
|
- Trusted Publisher OIDC workflow run `32936282879` 发布成功;npm `latest` 指向 `0.1.1`,provenance 绑定 canonical repository、`release.yml`、`yukiryou/main` 与上述 release commit。
|
|
62
63
|
- Registry 重新下载文件与本地/GitHub Release 候选逐字节一致;9 个 Registry 签名与 1 个 provenance attestation 验证通过;npm 页面 README 已回读为 `0.1.1` 最终公开状态。
|
|
63
64
|
- YukiRyou catalog 仍精确保留已完成受管 Harness 真机安装的 `0.1.0`。其 schema 不允许把仅完成完整性、provenance、Node 24 干净安装和模块加载的 `0.1.1` 标成 `installed`;遵循“不重复真机验证”决定,因此不做虚假升级。
|
|
65
|
+
|
|
66
|
+
## `0.1.2` 发布结果
|
|
67
|
+
|
|
68
|
+
- 受保护 PR #4 合并后的 release commit 为 `30ff6bdeb62f7904baf02c4a5f9ebd73e2edf442`,不可变 `v0.1.2` tag 精确指向该提交。
|
|
69
|
+
- 正式 tarball 为 51 个文件、99,894 bytes;SHA-256 为 `b224db9f52708b355baa914c0fa4a352e9f791c3e51a36c7309a3b89cbc2781a`,npm SRI 为 `sha512-XhaOjOflDGsNUaAYnIw1aoJ/zHfPbYtubLKvTUu6aro3olaLWek6xdEe83DpAmwJT6xM3s0+y0QOnEh1kQtl9w==`。
|
|
70
|
+
- Trusted Publisher OIDC workflow run `32981172053` 从正式 GitHub Release 下载并复验同一 tarball 后发布成功;workflow 只接受稳定 tag 并固定发布到 npm `latest`。
|
|
71
|
+
- Registry 重新下载文件与 GitHub Release 制品逐字节一致;1 个 Registry 签名与 1 个 SLSA provenance attestation 验证通过。
|
|
72
|
+
- npm `latest` 指向 `0.1.2`;`next` 仍指向不可变历史版本 `0.1.2-rc.1`,但长期 workflow 已无法创建或发布新的预发行版本。
|
|
73
|
+
- 发布后已从 released `yukiryou/main` 创建下一稳定开发分支 `yukiryou/v0.1.3`。
|
|
74
|
+
|
|
75
|
+
## `0.1.3` 发布状态
|
|
76
|
+
|
|
77
|
+
- 根因已经从真实会话持久化事件中定位:旧 Ark 工具调用 ID 的 `|` 被 Grok 请求转换器当作整个响应无效处理,且失败发生在网络请求前。
|
|
78
|
+
- 最小差分复现确认只把 `|` 改为兼容字符即可通过,排除 OAuth、额度、模型目录和 xAI 上游响应。
|
|
79
|
+
- 请求转换器现在保留兼容 ID,对最长 1024 bytes 的不兼容历史 ID 使用 SHA-256/base64url 确定性映射;空值和超限输入继续失败关闭。
|
|
80
|
+
- 本地 Node 24 完整测试、0 vulnerability 生产依赖审计与 52 文件 dry-run 打包清单已通过;仓库所有者已授权发布精确 `0.1.3`。最终 CI、唯一 tarball、隔离安装、GitHub Release、npm 与 Registry 回读结果记录在逐版发布检查表。
|
|
@@ -71,5 +71,19 @@ English summary: every release must close documentation, security, tests, determ
|
|
|
71
71
|
- [x] 仓库所有者决定以后不再发行预发行版;正式版缺陷使用新的递增稳定版本修复。
|
|
72
72
|
- [x] 中英文 README、正式 Release 说明、安全状态和发布政策已同步,并公开披露 Windows 独立真机尚未完成。
|
|
73
73
|
- [x] 稳定 manifest、稳定版专用 Trusted Publisher workflow、完整测试、审计与双平台 CI 通过;CI run `32980619235` 的 macOS 14 与 Windows 2022 job 均成功。
|
|
74
|
-
- [
|
|
75
|
-
- [
|
|
74
|
+
- [x] 版本分支经 PR #4 合并 `yukiryou/main`;release commit `30ff6bdeb62f7904baf02c4a5f9ebd73e2edf442` 冻结唯一稳定 tarball与不可变 `v0.1.2` tag。制品为 51 个文件、99,894 bytes,SHA-256 `b224db9f52708b355baa914c0fa4a352e9f791c3e51a36c7309a3b89cbc2781a`,SRI `sha512-XhaOjOflDGsNUaAYnIw1aoJ/zHfPbYtubLKvTUu6aro3olaLWek6xdEe83DpAmwJT6xM3s0+y0QOnEh1kQtl9w==`。
|
|
75
|
+
- [x] GitHub 正式 Release 与 Trusted Publisher run `32981172053` 完成;npm `latest=0.1.2`,Registry 重新下载文件逐字节一致,1 个 Registry 签名与 1 个 provenance attestation 验证通过。
|
|
76
|
+
|
|
77
|
+
## `0.1.3` 发布准备
|
|
78
|
+
|
|
79
|
+
- [x] 使用稳定版本分支 `yukiryou/v0.1.3`,未直接修改发布基线。
|
|
80
|
+
- [x] 使用真实脱敏 Ark `toolu_ark1_…|fc_…` 调用 ID 建立先红后绿的确定性回归测试。
|
|
81
|
+
- [x] 修复只触及历史工具调用 ID 的请求转换;未改动 OAuth、CLI、凭据、额度、模型目录、endpoint 或平台安全边界。
|
|
82
|
+
- [x] `package.json`、lockfile、CHANGELOG、中英文 README、文档状态和中英双语 Release Notes 已同步为精确稳定 `0.1.3` 候选。
|
|
83
|
+
- [x] 本地 Node 24 完整测试通过:62 项、60 pass、0 fail、2 项 Windows-only 按预期跳过。
|
|
84
|
+
- [x] `npm audit --omit=dev` 为 0 vulnerability;`npm run pack:check` 通过,dry-run 清单为 52 个文件且不包含 `src`、测试或本机证据。
|
|
85
|
+
- [ ] macOS/Windows CI 通过,版本分支经 PR 合并 `yukiryou/main`。
|
|
86
|
+
- [ ] 从最终 release commit 冻结唯一 `dsh-grok-provider-0.1.3.tgz`,记录文件数、大小、SHA-256 和 base64 SHA-512,并完成隔离安装。
|
|
87
|
+
- [ ] GitHub 正式 Release 使用本文档的中英双语正文且不重复页面标题。
|
|
88
|
+
- [x] 仓库所有者于 2026-08-27 明确授权发布精确 `dsh-grok-provider@0.1.3`。
|
|
89
|
+
- [ ] Trusted Publisher 发布、npm `latest`、Registry 逐字节回读、签名与 provenance 验证完成。
|
package/docs/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Grok Build Provider 文档索引
|
|
2
2
|
|
|
3
|
-
- 状态:**稳定版 `0.1.
|
|
4
|
-
- 当前稳定版本:`0.1.
|
|
5
|
-
-
|
|
3
|
+
- 状态:**稳定版 `0.1.3`:跨 Provider 工具调用历史兼容性修正**
|
|
4
|
+
- 当前稳定版本:`0.1.3`
|
|
5
|
+
- 发布分支:`yukiryou/v0.1.3`
|
|
6
6
|
- 兼容基线:DeepSeek Harness `0.1.1-rc.2`
|
|
7
7
|
- 目标平台:macOS arm64、Windows x64
|
|
8
8
|
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
- [逐版发布检查表](./10-release-checklist.md)
|
|
40
40
|
- [v0.1.1 中英双语发行说明](./releases/v0.1.1.md)
|
|
41
41
|
- [v0.1.2 中英双语发行说明](./releases/v0.1.2.md)
|
|
42
|
+
- [v0.1.3 中英双语发行说明](./releases/v0.1.3.md)
|
|
42
43
|
- [v0.1.2-rc.1 中英双语预发行说明](./releases/v0.1.2-rc.1.md)
|
|
43
44
|
- [ADR-0001:认证与传输路线](./adr/0001-auth-and-transport-route.md)
|
|
44
45
|
- [ADR-0002:首版能力边界](./adr/0002-v0.1-scope.md)
|
|
@@ -50,7 +51,7 @@
|
|
|
50
51
|
|
|
51
52
|
## 开发门禁
|
|
52
53
|
|
|
53
|
-
`0.1.2-rc.1`
|
|
54
|
+
`0.1.2-rc.1` 是唯一一次预发行尝试。仓库所有者决定从稳定 `0.1.2` 起不再发行预发行版;正式版缺陷通过新的递增稳定版本修复。`0.1.3` 不改动认证、CLI subprocess 或平台安全边界,因此按政策以自动化回归、双平台 CI、制品与隔离安装为门禁,不重复要求跨平台真机验收。每个版本仍须先完成[逐版发布检查表](./10-release-checklist.md),再由仓库所有者明确授权发布。
|
|
54
55
|
|
|
55
56
|
## 官方依据
|
|
56
57
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
## 中文
|
|
2
|
+
|
|
3
|
+
`0.1.3` 修复在已有 DeepSeek Harness 会话中从 Ark 模型切换到 Grok 后,请求立即显示 “The Grok provider rejected an invalid or unsupported response” 的问题。
|
|
4
|
+
|
|
5
|
+
### 原因与修复
|
|
6
|
+
|
|
7
|
+
- Ark 的历史工具调用 ID 可能包含 `|`,而 Grok Responses 接受的调用 ID 字符集更窄。
|
|
8
|
+
- 旧版本在发送网络请求前直接拒绝这段历史,因此该错误不是 OAuth、额度或 xAI 上游响应故障。
|
|
9
|
+
- 本版本保留本来就兼容的调用 ID;对有界但不兼容的历史 ID 使用确定性安全映射。
|
|
10
|
+
- 同一个工具调用和工具结果始终映射到同一个 ID,保证多轮工具历史的关联关系。
|
|
11
|
+
- 新增使用真实脱敏 Ark ID 形状的回归测试。
|
|
12
|
+
|
|
13
|
+
### 兼容性
|
|
14
|
+
|
|
15
|
+
- DeepSeek Harness:`0.1.1-rc.2`
|
|
16
|
+
- macOS arm64、Windows x64
|
|
17
|
+
- 不改动 Grok CLI 登录、OAuth 凭据、额度读取、动态模型目录或固定 xAI endpoint
|
|
18
|
+
- 普通稳定修复按既定政策不重复要求跨平台真机验收
|
|
19
|
+
|
|
20
|
+
### 安装或更新
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.3
|
|
24
|
+
dsh web
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
已安装旧版本时,也可以先执行:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
dsh plugin --profile web update dsh-grok-provider
|
|
31
|
+
dsh web
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## English
|
|
35
|
+
|
|
36
|
+
`0.1.3` fixes an immediate “The Grok provider rejected an invalid or unsupported response” failure after switching an existing DeepSeek Harness conversation from an Ark model to Grok.
|
|
37
|
+
|
|
38
|
+
### Cause and fix
|
|
39
|
+
|
|
40
|
+
- Historical Ark tool-call IDs may contain `|`, while Grok Responses accepts a narrower call-ID character set.
|
|
41
|
+
- Previous versions rejected that history before any network request, so the failure was not caused by OAuth, quota, or an xAI upstream response.
|
|
42
|
+
- This release preserves already-compatible call IDs and deterministically maps bounded incompatible historical IDs to safe correlation IDs.
|
|
43
|
+
- A function call and its result always receive the same mapped ID, preserving multi-turn tool-history correlation.
|
|
44
|
+
- Regression coverage uses the exact redacted Ark ID shape captured from the affected conversation.
|
|
45
|
+
|
|
46
|
+
### Compatibility
|
|
47
|
+
|
|
48
|
+
- DeepSeek Harness: `0.1.1-rc.2`
|
|
49
|
+
- macOS arm64 and Windows x64
|
|
50
|
+
- No changes to Grok CLI login, OAuth credentials, billing, dynamic model discovery, or pinned xAI endpoints
|
|
51
|
+
- Per the stable-release policy, this ordinary compatibility fix does not repeat cross-platform real-device acceptance
|
|
52
|
+
|
|
53
|
+
### Install or update
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.3
|
|
57
|
+
dsh web
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For an existing installation, you can instead run:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
dsh plugin --profile web update dsh-grok-provider
|
|
64
|
+
dsh web
|
|
65
|
+
```
|