dsh-grok-provider 0.1.9 → 0.1.10
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 +10 -1
- package/README.en.md +13 -12
- package/README.md +13 -12
- package/SECURITY.md +4 -4
- package/dist/host/index.mjs +19 -5
- package/dist/internal/grok-adapter.mjs +13 -2
- package/docs/01-product-requirements.md +5 -3
- package/docs/03-security-threat-model.md +5 -4
- package/docs/04-harness-contract.md +2 -2
- package/docs/05-test-plan.md +4 -2
- package/docs/06-release-plan.md +5 -5
- package/docs/09-implementation-status.md +23 -9
- package/docs/10-release-checklist.md +18 -3
- package/docs/11-capability-roadmap.md +19 -8
- package/docs/12-upstream-image-input-evidence.md +1 -1
- package/docs/13-upstream-search-evidence.md +9 -6
- package/docs/README.md +10 -8
- package/docs/adr/0010-default-off-web-x-search.md +10 -2
- package/docs/releases/v0.1.10.md +48 -0
- package/docs/releases/v0.1.8.md +2 -2
- package/package.json +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.10 - 2026-08-30
|
|
4
|
+
|
|
5
|
+
- Register the `llm-grok` Host settings namespace through Harness's canonical settings module so the Web Search and X Search controls are writable instead of permanently `unavailable`.
|
|
6
|
+
- Resolve Search settings from schema defaults, composition config, and the persisted user layer, while retaining the composition config when no settings provider is mounted.
|
|
7
|
+
- Snapshot the current Search policy once at each adapter-call boundary before model discovery awaits; later calls observe committed setting changes while prepared and in-flight calls keep their original policy.
|
|
8
|
+
- Add real `SettingsProvider` integration coverage for namespace defaults, lifecycle cleanup, persisted updates, composition fallback, and prepared-call isolation, plus a deferred-discovery adapter regression.
|
|
9
|
+
- Keep authentication, credentials, endpoints, Search protocol allowlists, citation handling, image input, and platform support unchanged.
|
|
10
|
+
|
|
3
11
|
## 0.1.9 - 2026-08-30
|
|
4
12
|
|
|
5
13
|
- Add independent, default-off Web Search and X Search Provider settings for exact `grok-4.6`; keep every other dynamically discovered model Search-disabled until the same fixed-Proxy evidence exists.
|
|
@@ -8,11 +16,12 @@
|
|
|
8
16
|
- Decode the fixed Proxy's standard Web Search lifecycle and its Grok-Build-specific four-name X Search `custom_tool_call` lifecycle as server-executed activity that emits no Harness tool-call chunks; observing either category suppresses encrypted reasoning replay for that response.
|
|
9
17
|
- Preserve inline citation Markdown as assistant text while bounding and discarding structured citation metadata; never follow, preview, or download citation URLs.
|
|
10
18
|
- Add bilingual Search risk disclosures to the existing Grok Build settings page through Harness `settingsScope`, without a second configuration RPC, renderer-local persistence, a production dependency, a new endpoint, or a new authentication mode.
|
|
19
|
+
- Known issue: the published Host omitted the matching `llm-grok` settings registration, leaving both user-facing Search controls disabled. `0.1.10` repairs this integration and the missing live-setting consumption path.
|
|
11
20
|
|
|
12
21
|
## 0.1.8 - 2026-08-30 (withdrawn)
|
|
13
22
|
|
|
14
23
|
- Briefly published a Grok-only sidebar quota card that moved the sidebar's Grok quota querying and display ownership into the Provider, then withdrew the release by reverting that change.
|
|
15
|
-
- The npm Registry version `dsh-grok-provider@0.1.8` remains permanently reserved and cannot be reused after unpublish; `latest`
|
|
24
|
+
- The npm Registry version `dsh-grok-provider@0.1.8` remains permanently reserved and cannot be reused after unpublish; `latest` returned to `0.1.7` after withdrawal, and the independent Search slice moved to the subsequently published `0.1.9`.
|
|
16
25
|
|
|
17
26
|
## 0.1.7 - 2026-08-29
|
|
18
27
|
|
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, image input, optional Web/X Search, tool calls, and an account quota/model capability dashboard.
|
|
6
6
|
|
|
7
|
-
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. The current source candidate is `0.1.9`.
|
|
7
|
+
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. The current source candidate is `0.1.10`; the current stable release and npm Registry `latest` are both `0.1.9`. Published `0.1.9` completed unique-artifact, dual-platform CI, signature, and provenance verification, but omitted Host settings registration, so its Web/X Search controls remain unavailable; unpublished `0.1.10` is the focused repair. Version `0.1.8` was published and then withdrawn and cannot be reused. 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
|
|
|
@@ -15,7 +15,7 @@ Use an already authenticated official Grok Build account from DeepSeek Harness,
|
|
|
15
15
|
| Models | Discovers every model visible to the account at runtime; no static model allowlist |
|
|
16
16
|
| Conversations | Streaming Responses text, reasoning, encrypted reasoning replay, usage, and finish reasons |
|
|
17
17
|
| Images | Only exact `grok-4.6` accepts bounded JPEG/PNG images from Harness attachments; `grok-4.5` and all other models remain text-only |
|
|
18
|
-
| Search |
|
|
18
|
+
| Search | `0.1.9` includes the protocol and settings page, but its controls are unavailable because Host registration for `llm-grok` is missing; the `0.1.10` candidate repairs registration so exact `grok-4.6` gets independent, default-off Web Search and X Search, while remote lifecycles are never misrepresented as local tools |
|
|
19
19
|
| Tools | Returns function calls to the Harness permission layer; the provider never executes tools |
|
|
20
20
|
| Account dashboard | Login status, weekly/monthly quota, reset time, dynamic model capabilities and reasoning efforts |
|
|
21
21
|
| Surfaces | Bilingual Web settings and a closed `/grok` TUI command set |
|
|
@@ -40,10 +40,10 @@ When the network is reachable and OIDC discovery succeeds, the official CLI open
|
|
|
40
40
|
|
|
41
41
|
### 2. Install the provider
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
`0.1.10` is not published yet. After it is published and read back from the Registry, install that exact version from npm:
|
|
44
44
|
|
|
45
45
|
```sh
|
|
46
|
-
dsh plugin --profile web add dsh-grok-provider@0.1.
|
|
46
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.10
|
|
47
47
|
dsh web
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -130,8 +130,8 @@ Uninstalling the provider does not remove the official Grok CLI or directly modi
|
|
|
130
130
|
|
|
131
131
|
## Sources and discovery
|
|
132
132
|
|
|
133
|
-
- Current npm stable release: [dsh-grok-provider@0.1.
|
|
134
|
-
- Most recent GitHub release and integrity values: [v0.1.
|
|
133
|
+
- Current npm stable release: [dsh-grok-provider@0.1.9](https://www.npmjs.com/package/dsh-grok-provider/v/0.1.9) (release artifact verified; known Search settings-registration defect)
|
|
134
|
+
- Most recent GitHub release and integrity values: [v0.1.9](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v0.1.9)
|
|
135
135
|
- GitHub community discovery: the repository carries the DeepSeek Harness-recommended `dsh-plugin` and `dsh` topics
|
|
136
136
|
- YukiRyou managed source: [deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog), still pinned to the real-device-accepted `dsh-grok-provider@0.1.0` and marking only `darwin-arm64`
|
|
137
137
|
|
|
@@ -139,21 +139,21 @@ Directory inclusion is not an endorsement by xAI or DeepSeek Harness. [Listing P
|
|
|
139
139
|
|
|
140
140
|
## Compatibility and scope
|
|
141
141
|
|
|
142
|
-
| Item | `0.1.9` candidate status |
|
|
142
|
+
| Item | `0.1.9` stable / `0.1.10` candidate status |
|
|
143
143
|
| --- | --- |
|
|
144
144
|
| DeepSeek Harness | Exact support for `0.1.1-rc.2` |
|
|
145
145
|
| Node.js | `>=24.19.0` |
|
|
146
|
-
| macOS arm64 |
|
|
147
|
-
| Windows x64 |
|
|
146
|
+
| macOS arm64 | Image sending has real-Harness confirmation; the `0.1.10` Search repair passes real SettingsProvider/LLM tests, candidate-tarball isolated install, settings API, browser switch-write acceptance, and candidate macOS 14 CI |
|
|
147
|
+
| Windows x64 | Code, slow fakes, and `0.1.10` candidate Windows 2022 CI pass. On a reachable network the official CLI generates the URL and opens the browser, and that path still lacks real-device Windows acceptance |
|
|
148
148
|
| macOS x64 / Linux | Unsupported |
|
|
149
149
|
| Grok CLI | No full-version lock; official path, `login --oauth` capability, and production OIDC credential contract are enforced |
|
|
150
150
|
| Models | Every account catalog model whose backend has a strict codec in this release |
|
|
151
151
|
|
|
152
|
-
`0.1.
|
|
152
|
+
`0.1.10` preserves the published image boundary: image input is enabled only for exact `grok-4.6`, while `grok-4.5` and every other dynamically discovered model remain text-only. Image sending has been confirmed in a real Harness conversation. Images must be verified JPEG/PNG projections from the Harness attachment service. Ordinary user content and images nested one level inside a tool result are supported with fixed `detail:"high"`; URLs, filesystem paths, file IDs, and caller-supplied data URLs are rejected. Private reasoning in ordinary user/system history is omitted while adjacent visible text remains ordered.
|
|
153
153
|
|
|
154
154
|
Each projected image is limited to 4 MiB, 16,777,216 pixels, and 8192px per side. A request retains at most eight images and 8 MiB of projected image bytes. When a limit is exceeded, the globally oldest images are offloaded to Harness text placeholders; the final JSON remains capped at 16 MiB.
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
Published `0.1.9` included the Search protocol and settings page but omitted the Host-side `llm-grok` namespace registration, leaving both controls unavailable. The `0.1.10` candidate registers and persists both settings through the canonical Harness settings module; each new call reads the latest value once before model discovery, while prepared and in-flight calls keep their original snapshot. Search remains default-off and limited to exact `grok-4.6`. Once enabled, ordinary conversation content and model-derived queries are sent to xAI and may incur additional usage. Web/X activity is already executed server-side and is not projected as a Harness-local tool call. Citation Markdown remains ordinary assistant text; bounded structured URL metadata is discarded, and the plugin never opens or downloads a citation. Search results are untrusted remote data, so verify sources before commands or file changes. Image generation, arbitrary downloads, API-key mode, multiple accounts, enterprise OIDC, ACP, and Headless agent wrapping remain out of scope; see the [capability roadmap](docs/11-capability-roadmap.md).
|
|
157
157
|
|
|
158
158
|
## How it works
|
|
159
159
|
|
|
@@ -255,7 +255,8 @@ Read the [contributing guide](CONTRIBUTING.md) before filing an issue or PR. Cha
|
|
|
255
255
|
- [x] Publish `0.1.5`: maintenance for release binding, dashboard capability badges, and transactional Provider Runtime installation; the unique artifact, dual-platform CI, signatures, and SLSA provenance are verified
|
|
256
256
|
- [x] Publish `0.1.6`: image-history reasoning compatibility and per-stage official-CLI deadline repair for Windows; image sending is confirmed in a real Harness conversation
|
|
257
257
|
- [x] Publish `0.1.7`: Provider/CLI version diagnostics, CLI installation recovery, redacted OIDC discovery-timeout settlement, and the `IconThinkOutline16` settings-navigation compatibility layer
|
|
258
|
-
- [
|
|
258
|
+
- [x] Publish `0.1.9`: added the Web/X Search protocol and settings page; the unique artifact, dual-platform CI, signatures, and SLSA provenance are verified; post-release verification found the missing Host settings namespace and unusable controls
|
|
259
|
+
- [ ] Publish `0.1.10`: `llm-grok` registration, per-call capture, isolated install, the code PR, and main dual-platform CI are complete; merging release evidence, freezing the unique artifact, and exact release authorization remain
|
|
259
260
|
- [ ] A subsequent slice: opt-in image generation (inline results only, committed through Harness attachments)
|
|
260
261
|
- [ ] Complete independent Windows x64 acceptance and publish a later stable fix if needed
|
|
261
262
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
让 DeepSeek Harness 使用你已登录的官方 Grok Build 账号:动态模型发现、流式推理、图片输入、可选 Web/X Search、工具调用,以及账号额度与模型能力面板。
|
|
6
6
|
|
|
7
|
-
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。当前源码候选版本为 `0.1.9
|
|
7
|
+
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。当前源码候选版本为 `0.1.10`;当前稳定版及 npm Registry 的 `latest` 均为 `0.1.9`。已发布的 `0.1.9` 完成了唯一制品、双平台 CI、签名与 provenance 验证,但遗漏 Host 设置注册,因此 Web/X Search 开关会显示暂时不可用;尚未发布的 `0.1.10` 专门修复这条链路。`0.1.8` 曾发布后撤回且版本号不可复用。项目不再发行预发行版;正式版缺陷通过新的递增稳定版本修复。
|
|
8
8
|
|
|
9
9
|
## 它解决什么问题
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| 模型 | 运行时读取账号可见的全部 Grok Build 模型,不维护静态模型白名单 |
|
|
16
16
|
| 对话 | Responses 流式文本、reasoning、加密 reasoning replay、usage 与 finish reason |
|
|
17
17
|
| 图片 | 仅精确 `grok-4.6` 接收 Harness attachment 中有界的 JPEG/PNG 图片;`grok-4.5` 与其他模型保持 text-only |
|
|
18
|
-
| 搜索 | `0.1.9`
|
|
18
|
+
| 搜索 | `0.1.9` 已包含协议与设置页,但开关因缺少 `llm-grok` Host 注册而不可用;`0.1.10` 候选修复注册,使精确 `grok-4.6` 的 Web Search / X Search 可默认关闭、分别开启,远端 lifecycle 不伪装成本地工具 |
|
|
19
19
|
| 工具 | 将 function call 交回 Harness 权限层;Provider 本身不执行工具 |
|
|
20
20
|
| 账户面板 | 登录状态、每周/月额度、重置时间、动态模型能力与 reasoning 档位 |
|
|
21
21
|
| 界面 | Web 设置页中英文切换;TUI 提供闭合的 `/grok` 命令 |
|
|
@@ -40,10 +40,10 @@ grok models
|
|
|
40
40
|
|
|
41
41
|
### 2. 安装 Provider
|
|
42
42
|
|
|
43
|
-
`0.1.
|
|
43
|
+
`0.1.10` 尚未发布;待它发布并完成 Registry 回读后,从 npm 安装该精确版本:
|
|
44
44
|
|
|
45
45
|
```sh
|
|
46
|
-
dsh plugin --profile web add dsh-grok-provider@0.1.
|
|
46
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.10
|
|
47
47
|
dsh web
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -130,8 +130,8 @@ dsh web
|
|
|
130
130
|
|
|
131
131
|
## 项目来源与发现
|
|
132
132
|
|
|
133
|
-
- npm 当前稳定版:[dsh-grok-provider@0.1.
|
|
134
|
-
- GitHub 最近发行版与校验值:[v0.1.
|
|
133
|
+
- npm 当前稳定版:[dsh-grok-provider@0.1.9](https://www.npmjs.com/package/dsh-grok-provider/v/0.1.9)(发行制品已验证;Search 开关存在已知设置注册缺陷)
|
|
134
|
+
- GitHub 最近发行版与校验值:[v0.1.9](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v0.1.9)
|
|
135
135
|
- GitHub 社区发现:仓库已添加 DeepSeek Harness 官方推荐的 `dsh-plugin` 与 `dsh` Topics
|
|
136
136
|
- YukiRyou 受管来源:[deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog),当前仍锁定已完成真机验收的 `dsh-grok-provider@0.1.0`,且只标记 `darwin-arm64`
|
|
137
137
|
|
|
@@ -139,21 +139,21 @@ dsh web
|
|
|
139
139
|
|
|
140
140
|
## 兼容性与范围
|
|
141
141
|
|
|
142
|
-
| 项目 | `0.1.9` 候选状态 |
|
|
142
|
+
| 项目 | `0.1.9` 稳定版 / `0.1.10` 候选状态 |
|
|
143
143
|
| --- | --- |
|
|
144
144
|
| DeepSeek Harness | 精确支持 `0.1.1-rc.2` |
|
|
145
145
|
| Node.js | `>=24.19.0` |
|
|
146
|
-
| macOS arm64 |
|
|
147
|
-
| Windows x64 | 代码、slow-fake 与 `0.1.
|
|
146
|
+
| macOS arm64 | 图片发送已完成真实 Harness 验证;`0.1.10` Search 修复已通过真实 SettingsProvider/LLM 回归、候选 tarball 隔离安装、设置 API、浏览器开关写入与候选 macOS 14 CI |
|
|
147
|
+
| Windows x64 | 代码、slow-fake 与 `0.1.10` 候选 Windows 2022 CI 已通过。网络可达时由官方 CLI 生成 URL 并打开浏览器,该路径仍未完成 Windows 真机验收 |
|
|
148
148
|
| macOS x64 / Linux | 不支持 |
|
|
149
149
|
| Grok CLI | 不锁完整版本;严格校验官方路径、`login --oauth` 能力与生产 OIDC 凭据契约 |
|
|
150
150
|
| 模型 | 当前账号目录中 backend 已被严格 codec 支持的全部模型 |
|
|
151
151
|
|
|
152
|
-
`0.1.
|
|
152
|
+
`0.1.10` 沿用已发布版本的图片边界:只为精确的 `grok-4.6` 开启图片输入;`grok-4.5` 与其他动态发现的模型继续按 text-only 处理。图片发送已在真实 Harness 对话中确认可用。图片只能来自 Harness attachment service 的已验证 JPEG/PNG 投影,支持普通用户内容和一层工具结果中的图片,并固定使用 `detail:"high"`;不接受 URL、文件路径、file ID 或调用方预制的 data URL。普通 user/system 历史中的私有 reasoning 会被省略并保留相邻可见文本。
|
|
153
153
|
|
|
154
154
|
每张投影图片最多 4 MiB、16,777,216 像素且任一边不超过 8192px;每次请求最多保留 8 张、投影字节合计最多 8 MiB。超限时按全局最旧优先移除图片并保留 Harness 的文本占位,最终 JSON 仍受 16 MiB 上限约束。
|
|
155
155
|
|
|
156
|
-
`0.1.9`
|
|
156
|
+
已发布的 `0.1.9` 包含 Search 协议实现和设置页面,但漏掉了 Host 侧 `llm-grok` namespace 注册,两个开关因此永久处于不可用状态。`0.1.10` 候选使用 Harness 官方 settings 模块注册并持久化这两个设置;每个新调用在模型发现前读取一次最新值,已准备和在途调用保持原快照。Search 仍只对精确 `grok-4.6` 开放并默认关闭。开启后,普通对话内容以及模型据此生成的检索词会交给 xAI,并可能产生额外用量。Web/X 是服务端已执行的检索过程,不会变成 Harness 本地工具调用;回答中的 citation Markdown 保留为普通文本,结构化 URL 元数据有界校验后丢弃,插件不会打开或下载引用。搜索结果属于不可信远端数据,执行命令或修改文件前应核实来源。图片生成、任意文件下载、API Key 模式、多账号、企业 OIDC、ACP 与 Headless agent 封装仍不在本版本范围内;后续切片见[能力路线图](docs/11-capability-roadmap.md)。
|
|
157
157
|
|
|
158
158
|
## 工作原理
|
|
159
159
|
|
|
@@ -255,7 +255,8 @@ npm run pack:check
|
|
|
255
255
|
- [x] 发布 `0.1.5`:发布链路、账户面板能力标签与 Provider Runtime 安装回滚维护版;唯一制品、双平台 CI、签名与 SLSA provenance 均已验证
|
|
256
256
|
- [x] 发布 `0.1.6`:图片历史 reasoning 兼容与 Windows 官方 CLI 分阶段 deadline 修复版;图片发送已完成真实 Harness 验证
|
|
257
257
|
- [x] 发布 `0.1.7`:Provider/CLI 双版本诊断、CLI 安装恢复、OIDC discovery 超时脱敏结算与 `IconThinkOutline16` 设置导航兼容层
|
|
258
|
-
- [
|
|
258
|
+
- [x] 发布 `0.1.9`:加入 Web/X Search 协议与设置页,唯一制品、双平台 CI、签名与 SLSA provenance 均已验证;发布后确认 Host 设置 namespace 遗漏,开关不可用
|
|
259
|
+
- [ ] 发布 `0.1.10`:`llm-grok` 注册、按调用读取设置、隔离安装、代码 PR 与 main 双平台 CI 已完成;仍需合并发布证据、冻结唯一制品和精确发布授权
|
|
259
260
|
- [ ] 再后续独立切片:默认关闭的图片生成(只收内联结果,提交 Harness attachment)
|
|
260
261
|
- [ ] 完成 Windows x64 独立真机验收并按需发布后续稳定修复版
|
|
261
262
|
|
package/SECURITY.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
## 支持范围
|
|
6
6
|
|
|
7
|
-
本安全策略对应源码候选版本 `0.1.
|
|
7
|
+
本安全策略对应源码候选版本 `0.1.10`;当前稳定版及 npm Registry 的 `latest` 均为 `0.1.9`。`0.1.8` 曾发布后撤回且版本号不可复用。已发布的 `0.1.9` 完成了失败关闭 fixture 下的隔离 Web Harness `ctx.llm` 四场景验收以及 macOS 14 / Windows 2022 CI,但遗漏 `llm-grok` Host settings namespace,导致 Web/X Search 开关失败关闭为不可用。尚未发布的 `0.1.10` 只修复设置注册和调用快照链路;该链路已通过真实 SettingsProvider/LLM 回归、候选 tarball 隔离安装、设置 API 与浏览器开关写入验收,候选双平台 CI 仍待完成。DeepSeek Harness、Node.js 与操作系统按发布线明确维护;Grok CLI 不使用完整版本字符串作为信任门禁,而是严格校验官方默认路径、命令能力、生产 OIDC 凭据契约和固定服务端协议。图片发送已在真实 Harness 对话中确认可用;Search 协议仍只有失败关闭 fixture 及隔离自动化证据,不覆盖浏览器手工对话、OAuth、真实账号、真实 xAI Search 请求或网络可达 Windows 真机外部浏览器弹出。
|
|
8
8
|
|
|
9
|
-
`0.1.
|
|
9
|
+
`0.1.10` 沿用已发布版本的图片边界:只为精确 `grok-4.6` 提供有界图片输入;`grok-4.5` 与所有其他模型保持 text-only。普通 user/system 历史中的私有 reasoning 会被省略并保留相邻可见 text/image;只有有效的同 Provider assistant 历史可进入加密 reasoning replay,一层 tool-result 仍只接受公开 text/image。图片只能来自 Harness attachment service 的已验证 JPEG/PNG 投影,以 `detail:"high"` 发送,并受单图字节、像素、边长、数量、总字节与最终 JSON 上限约束;URL、路径、file ID 和调用方预制 data URL 都会被拒绝。
|
|
10
10
|
|
|
11
11
|
`0.1.7` 的闭合运行时诊断、CLI 安装恢复、OIDC timeout 脱敏结算和 `IconThinkOutline16` 兼容层在本版保持不变。官方 CLI 仍负责生成登录 URL 与打开外部浏览器;插件不修复系统 DNS、代理、防火墙、VPN 或 CLI 行为。
|
|
12
12
|
|
|
13
|
-
`0.1.
|
|
13
|
+
`0.1.10` 通过 Harness 官方 settings module 注册 `llm-grok`,按 schema 默认值、组合配置、持久化用户层的顺序解析两个 Search 开关。设置提交只影响之后创建的调用;每个调用在模型发现前冻结一次策略,在途请求不会被后续设置写入改变。Search 仍只为精确 `grok-4.6` 默认关闭地开放。启用后,普通对话内容与模型生成的检索词会交给 xAI,并可能产生额外用量;结果和 citation 属于可能错误或含提示注入的不可信远端数据。Provider 只允许固定 Proxy 实测的 Web lifecycle 与四项 X custom-tool 名称,不把它们映射为 Harness 本地工具,不跟随或下载 citation URL,并在观察到 Search 后放弃该响应的 encrypted reasoning replay。后台 purpose、未验证模型、未启用类别、未知事件和未闭合 lifecycle 均失败关闭。固定路径/argv、最小环境、无 shell、输出上限、凭据、固定 origin 与 URL 拒绝边界不变;本版不新增生成、认证模式或 endpoint。
|
|
14
14
|
|
|
15
15
|
## 私下报告漏洞
|
|
16
16
|
|
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
-
English summary: GitHub Private vulnerability reporting is enabled and preferred. The current source candidate is `0.1.9`. Version `0.1.8` was published and then withdrawn, and npm version numbers cannot be reused
|
|
41
|
+
English summary: GitHub Private vulnerability reporting is enabled and preferred. The current source candidate is `0.1.10`; the current stable release and npm Registry `latest` are both `0.1.9`. Version `0.1.8` was published and then withdrawn, and npm version numbers cannot be reused. Published `0.1.9` passed four isolated Web Harness `ctx.llm` cases and macOS 14 / Windows 2022 CI under fail-closed fixtures, but omitted the `llm-grok` Host settings namespace and therefore left both Search controls unavailable. The unpublished `0.1.10` repair registers that namespace through the canonical Harness settings module and snapshots the current policy once per call before model discovery, so committed changes affect only later calls. Its settings path has passed real SettingsProvider/LLM tests, candidate-tarball isolated install, settings API, and browser switch-write acceptance; candidate dual-platform CI remains pending. Bounded JPEG/PNG input, browser-sign-in diagnostics, credentials, endpoints, fixed-Proxy Search allowlists, citation handling, and platform support remain unchanged. Search stays default-off and limited to exact `grok-4.6`; prompts and model-derived queries reach xAI only when enabled and may incur additional usage. Results and citations are untrusted remote data. Automated fixtures do not cover manual browser conversations, OAuth, a real account, real xAI Search requests, or network-reachable Windows browser launch. Never send credentials, identity data, prompts, tool arguments, cookies, image bytes, Search contents, or unreviewed diagnostics.
|
package/dist/host/index.mjs
CHANGED
|
@@ -4,6 +4,10 @@ import { randomUUID } from "node:crypto"
|
|
|
4
4
|
import packageJson from "../../package.json" with { type: "json" }
|
|
5
5
|
|
|
6
6
|
import { attributionHeaders } from "@deepseek-ai/dsh-llm"
|
|
7
|
+
import {
|
|
8
|
+
installSettingsSection,
|
|
9
|
+
settingsNamespace,
|
|
10
|
+
} from "@deepseek-ai/dsh-settings"
|
|
7
11
|
import Schema from "@deepseek-ai/schemastery"
|
|
8
12
|
|
|
9
13
|
import {
|
|
@@ -27,6 +31,7 @@ import { createRuntimeDiagnostics } from "../internal/runtime-diagnostics.mjs"
|
|
|
27
31
|
|
|
28
32
|
export const name = "llm-grok"
|
|
29
33
|
export const inject = ["llm"]
|
|
34
|
+
const SETTINGS_NAMESPACE = settingsNamespace(name)
|
|
30
35
|
|
|
31
36
|
export const Config = Schema.object({
|
|
32
37
|
webSearch: Schema.boolean().default(false).description("Allow xAI Web Search for regular Grok requests"),
|
|
@@ -39,10 +44,7 @@ export function apply(ctx, config) {
|
|
|
39
44
|
throw new TypeError("dsh-grok-provider supports macOS and Windows")
|
|
40
45
|
}
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
webSearch: config.webSearch,
|
|
44
|
-
xSearch: config.xSearch,
|
|
45
|
-
})
|
|
47
|
+
let currentConfig = () => config
|
|
46
48
|
|
|
47
49
|
const homeDir = os.homedir()
|
|
48
50
|
let refreshOfficialCredential
|
|
@@ -72,10 +74,22 @@ export function apply(ctx, config) {
|
|
|
72
74
|
createAdapter: ({ getGeneration }) => createGrokAdapter({
|
|
73
75
|
getGeneration,
|
|
74
76
|
getAttachmentStore: () => ctx.get("attachments"),
|
|
77
|
+
getSearchPolicy: () => {
|
|
78
|
+
const current = currentConfig()
|
|
79
|
+
return {
|
|
80
|
+
webSearch: current.webSearch,
|
|
81
|
+
xSearch: current.xSearch,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
75
84
|
mapError: mapLlmError,
|
|
76
|
-
searchPolicy,
|
|
77
85
|
}),
|
|
78
86
|
})
|
|
87
|
+
installSettingsSection(ctx, SETTINGS_NAMESPACE, Config, config, {
|
|
88
|
+
setSource(source) {
|
|
89
|
+
currentConfig = source
|
|
90
|
+
},
|
|
91
|
+
onChange() {},
|
|
92
|
+
})
|
|
79
93
|
const authController = createAuthController({
|
|
80
94
|
registry: runtime.auth,
|
|
81
95
|
randomUUID,
|
|
@@ -11,14 +11,23 @@ export class GrokAdapterError extends Error {
|
|
|
11
11
|
export function createGrokAdapter({
|
|
12
12
|
getGeneration,
|
|
13
13
|
getAttachmentStore = () => undefined,
|
|
14
|
-
|
|
14
|
+
getSearchPolicy = () => undefined,
|
|
15
15
|
mapError = (error) => error,
|
|
16
16
|
}) {
|
|
17
17
|
if (typeof getGeneration !== "function") {
|
|
18
18
|
throw new TypeError("A Grok adapter generation source is required")
|
|
19
19
|
}
|
|
20
20
|
if (typeof mapError !== "function") throw new TypeError("Invalid Grok adapter error mapper")
|
|
21
|
-
|
|
21
|
+
if (typeof getAttachmentStore !== "function") {
|
|
22
|
+
throw new TypeError("Invalid Grok attachment store source")
|
|
23
|
+
}
|
|
24
|
+
if (typeof getSearchPolicy !== "function") {
|
|
25
|
+
throw new TypeError("Invalid Grok Search policy source")
|
|
26
|
+
}
|
|
27
|
+
const captureCallProtocol = () => createResponsesCallProtocol({
|
|
28
|
+
getAttachmentStore,
|
|
29
|
+
searchPolicy: getSearchPolicy(),
|
|
30
|
+
})
|
|
22
31
|
|
|
23
32
|
const captureGeneration = () => {
|
|
24
33
|
const generation = getGeneration()
|
|
@@ -75,6 +84,7 @@ export function createGrokAdapter({
|
|
|
75
84
|
async prepareCall(provider, model, signal) {
|
|
76
85
|
try {
|
|
77
86
|
const generation = captureGeneration()
|
|
87
|
+
const callProtocol = captureCallProtocol()
|
|
78
88
|
const route = await resolveRouteWithGeneration(generation, provider, model, signal)
|
|
79
89
|
return Object.freeze({
|
|
80
90
|
model: route.resolvedModelInfo,
|
|
@@ -97,6 +107,7 @@ export function createGrokAdapter({
|
|
|
97
107
|
stream(options) {
|
|
98
108
|
let requestPlan
|
|
99
109
|
try {
|
|
110
|
+
const callProtocol = captureCallProtocol()
|
|
100
111
|
requestPlan = callProtocol.prepare(options)
|
|
101
112
|
return streamWithGeneration(captureGeneration(), undefined, requestPlan, mapError)
|
|
102
113
|
} catch (error) {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
- Web 设置页能区分官方 CLI 缺失、无效、检测不可用、OIDC discovery 网络超时与真人授权超时,并显示 Provider/已验证 CLI 版本;这些诊断不得暴露路径、stderr、代理配置或 OAuth URL。
|
|
22
22
|
- 首版只接受与发布绑定 CLI 版本的 xAI 第一方 OIDC schema 相符的候选。CLI 有效配置若选择外部 auth provider、企业 OIDC、API key 或无法判定的凭据结构,插件必须显示“不受支持的认证配置”并拒绝由本插件把该 token 发给 xAI CLI Chat Proxy;这不把未签名 metadata 宣称成来源证明。
|
|
23
23
|
- 支持多轮文本对话、reasoning 增量、流式文本、工具调用、usage 和明确 finish 原因。
|
|
24
|
-
- `0.1.9`
|
|
24
|
+
- `0.1.9` 引入精确 `grok-4.6` 的 Web/X Search 协议与页面,`0.1.10` 补齐可写 Host settings 集成:两个开关独立、默认关闭,后台/派生 purpose 不启用 Search,远端 server-tool lifecycle 不得投影为 Harness 本地工具。
|
|
25
25
|
- Harness 中止请求时,网络流和解析器都能及时终止。
|
|
26
26
|
- 热更新设置或重新认证不会让同一调用混用两组路由或凭据。
|
|
27
27
|
- 凭据不进入 renderer、RPC、settings、workspace、本插件日志、错误详情、诊断包或 npm tarball;官方 CLI 自身的日志、网络与遥测属于独立 vendor boundary。
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
- Grok ACP 或 `grok -p` headless 代理。
|
|
72
72
|
- 厂商侧 Web Search、X Search、远程抓取。
|
|
73
73
|
- 图片生成、图片 URL 下载或文件落盘。
|
|
74
|
-
- 图片输入(`0.1.0`–`0.1.3`);已发布 `0.1.4` 按[能力路线图](./11-capability-roadmap.md)与 [ADR-0008](./adr/0008-image-input-request-compiler.md)只为精确 `grok-4.6` 独立引入,`grok-4.5` 与所有其他模型继续 text-only;维护版 `0.1.5`–`0.1.7`、发布后撤回的 sidebar quota `0.1.8` 与当前 `0.1.
|
|
74
|
+
- 图片输入(`0.1.0`–`0.1.3`);已发布 `0.1.4` 按[能力路线图](./11-capability-roadmap.md)与 [ADR-0008](./adr/0008-image-input-request-compiler.md)只为精确 `grok-4.6` 独立引入,`grok-4.5` 与所有其他模型继续 text-only;维护版 `0.1.5`–`0.1.7`、发布后撤回的 sidebar quota `0.1.8`、已发布 `0.1.9` 与当前 `0.1.10` 候选均不扩大该图片集合。
|
|
75
75
|
- 自定义 endpoint、企业 OIDC、自定义代理或多账号。
|
|
76
76
|
- 自动安装或更新 Grok CLI。
|
|
77
77
|
- 在远程 Web/headless 主机自动打开浏览器或无人值守登录的承诺。
|
|
@@ -117,6 +117,7 @@ Web 的“退出”或 TUI `/grok logout` 先中止本插件所有在途 Grok
|
|
|
117
117
|
- canary secret 扫描确认日志、RPC、错误、临时文件和打包产物无泄漏。
|
|
118
118
|
- 协议测试确认第二个测试 origin 永远收不到 Authorization。
|
|
119
119
|
- `0.1.9` 的固定 Proxy 脱敏门禁分别覆盖 Web、X、Web+X、Web+Harness function;离线回归确认默认关闭 wire 不变、未支持 route 在 POST 前失败、Search 产生零本地 tool-call chunk,未知或未闭合 lifecycle 失败关闭。
|
|
120
|
+
- `0.1.10` 的真实 SettingsProvider 与隔离 Web Harness 验收必须证明唯一可写 `llm-grok` namespace、两个开关默认关闭且可操作;设置更新只影响首次 await 之后尚未开始的新调用,已准备或在途调用保持原快照。
|
|
120
121
|
|
|
121
122
|
## 8. `0.1.0` 历史发布阻断项
|
|
122
123
|
|
|
@@ -141,7 +142,8 @@ Web 的“退出”或 TUI `/grok logout` 先中止本插件所有在途 Grok
|
|
|
141
142
|
- `0.1.6`:已发布图片历史中非 assistant 私有 reasoning 的兼容修复,以及 Windows 官方 CLI 登录预检的分阶段 deadline 修复;不新增模型能力。
|
|
142
143
|
- `0.1.7`:已发布 Windows 官方 CLI 安装/版本诊断、登录失败可解释性与 Web 设置导航 `IconThinkOutline16` 维护;不改变官方 CLI 网络/代理或 OAuth 流程,不新增模型能力。
|
|
143
144
|
- `0.1.8`:sidebar quota 维护版曾发布后撤回;npm Registry 已消耗该版本号,不能把 Search 重新标记或发布为 `0.1.8`。
|
|
144
|
-
- `0.1.9`
|
|
145
|
+
- `0.1.9`:已为精确 `grok-4.6` 发布默认关闭、设计为可独立开启的 Web Search / X Search 协议与页面,但遗漏 Host `llm-grok` namespace,真实页面开关不可用。
|
|
146
|
+
- `0.1.10` 当前候选:补齐 canonical settings namespace 与按调用动态快照,使 `0.1.9` 的两个开关真正可写;不改变 Search wire、支持模型或认证边界。
|
|
145
147
|
- 再后续独立切片:默认关闭的图片生成(内联结果 → Harness attachment)。
|
|
146
148
|
|
|
147
149
|
`prompt_cache_key` 不与图片输入捆绑;若以后排期,需独立分析会话标识隐私和 POST 不自动重放边界。任意 URL 下载、API Key、企业 OIDC、ACP、Headless 和 Linux 仍不在路线内。公开协议可驱动隔离原型,但每个切片在声明能力、合并发布基线前必须有独立 ADR 与固定 CLI Chat Proxy spike;`0.1.4` 的 `grok-4.6` user/tool-result 红蓝语义门禁已于 2026-08-28 通过,`grok-4.5` 因语义不可靠失败关闭,最终 Harness attachment 复验见[上游证据页](./12-upstream-image-input-evidence.md)。
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
只有本文所有 P0 门禁和 [测试计划](./05-test-plan.md) 的安全用例通过,才允许发布。
|
|
11
11
|
|
|
12
|
-
`0.1.
|
|
12
|
+
`0.1.9` 已从 release commit `a0af7b74882546dc3d9477b8f6c1494935e6bfb4` 正式发布;CI run `33295408650` 全绿。唯一 69 文件、190,049-byte 制品的 unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,npm SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`;Trusted Publisher run `33295761336` 完成,Registry、GitHub Release 与本地制品逐字节一致,npm `latest=0.1.9`。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 `v0.1.9` tag、release workflow、release commit 与 release run。sidebar quota 维护版 `0.1.8` 曾发布后撤回,npm Registry 已消耗该号码且不能复用;Search 从未作为 `0.1.8` 发布。`0.1.9` 只为精确 `grok-4.6` 增加默认关闭、设计为可独立启用的 Web/X Search 协议与页面,但遗漏 Host `llm-grok` namespace,真实页面开关不可用。当前 `0.1.10` 候选只修复可写设置链路和按调用快照,不改变推理 Bearer 的固定 origin、Search wire、支持模型、官方 CLI OAuth 所有权或系统网络/代理边界。
|
|
13
13
|
|
|
14
14
|
## 2. 信任边界
|
|
15
15
|
|
|
@@ -55,6 +55,7 @@ Host AuthCoordinator
|
|
|
55
55
|
| Authorization 被继承到远端 URL | 账号接管 | 所有版本永久禁止任意图片 URL 下载;transport 不接受调用方 URL | P0 |
|
|
56
56
|
| Search 远端内容含提示注入或错误信息 | 诱导本地工具、文件或命令操作 | 默认关闭;只接受闭合 server lifecycle;不投影成本地 tool-call;结构化 citation 有界校验后丢弃;Harness 权限层继续独立裁决本地工具 | P0 |
|
|
57
57
|
| Search 设置误用于后台任务或不支持模型 | 隐私范围扩大、额外用量或协议漂移 | 只在普通 purpose 下启用;精确 `grok-4.6` allowlist;不支持 route 在 POST 前失败;不静默裁剪并重放 | P0 |
|
|
58
|
+
| Search namespace 缺失或热更新污染在途调用 | 控件永久不可用,或一次调用混用两组隐私/用量策略 | canonical `llm-grok` 注册;默认关闭;每次调用在首次 await 前读取并冻结一次;真实 SettingsProvider、页面写入和生命周期回归 | P0 |
|
|
58
59
|
| SSE/压缩响应无限增长 | 内存、CPU、磁盘 DoS | 解压后字节、行、事件、单事件与整体请求期限均有上限;当前没有独立 first-byte/idle timeout | P0 |
|
|
59
60
|
| 原始远端错误返回 UI | token、账号或内部信息泄漏 | 只返回插件稳定错误码和安全文案;Harness RPC correlation 留在 carrier 内部 | P0 |
|
|
60
61
|
| billing 响应或 credential metadata 越界进入 renderer | 身份、订阅或凭据泄漏 | Host 严格抽取百分比、周期与模型 capability;拒绝/忽略 identity、balance、history、headers、URL 和原始响应 | P0 |
|
|
@@ -241,16 +242,16 @@ TUI 通过 Harness 的 human-command registry 注册一个全局 `/grok`,只
|
|
|
241
242
|
- 最终 JSON 超限继续逐张淘汰最旧图片;缺服务、projection unsupported、源图片位置/引用/MIME 不支持在 Responses POST 前以 `UNSUPPORTED_CONTENT` 拒绝。store 返回损坏或不自洽的投影、超过含图编译 block 预算、更深 tool-result,以及图片全部淘汰后剩余非图片请求仍不合法,都保持通用 `INVALID_RESPONSE`。
|
|
242
243
|
- AbortSignal 在查询服务前检查并传给所有投影读取;编译失败时 Responses POST 调用必须为 0,但模型目录 GET 可能已发生。
|
|
243
244
|
|
|
244
|
-
`0.1.9` 按 [ADR-0010](./adr/0010-default-off-web-x-search.md) 独立增加 Search
|
|
245
|
+
`0.1.9` 按 [ADR-0010](./adr/0010-default-off-web-x-search.md) 独立增加 Search 协议与页面;`0.1.10` 补齐真实 Host settings 集成,且不扩大图片或 origin 边界:
|
|
245
246
|
|
|
246
|
-
- Web Search 与 X Search
|
|
247
|
+
- Web Search 与 X Search 在唯一 `llm-grok` namespace 中默认关闭并独立持久化;无 settings service 时回退组合配置。每个调用在首次 await 前冻结一次 policy,热更新只影响后续调用;两项全关时不读取 `purpose`,最终 request wire 与 `0.1.7` 保持一致。
|
|
247
248
|
- 只为固定 Proxy 已验证的精确 `grok-4.6` route 编译 `{type:"web_search"}` / `{type:"x_search"}`;不支持模型在 Responses POST 前返回 `UNSUPPORTED_CONTENT`。
|
|
248
249
|
- 普通 Harness functions、Web、X 依次排序并共用 128 项和 16 MiB 请求上限。receipt 只从冻结后的最终 wire 派生并与 decoder 绑定,避免配置、route 与 response 允许集分离。
|
|
249
250
|
- Web 与 X 都是 xAI 已执行的 server tool,产生零个 Harness `tool-call` chunk;X 只接受四个实测 custom-tool 名称。未启用类别、未知、重复、乱序或未闭合生命周期全部失败关闭。
|
|
250
251
|
- citation URL 不被打开、下载或重新请求;结构化 annotation/citations 只做有界验证后丢弃。观察到任何 Search 后不保存本响应的 encrypted reasoning replay。
|
|
251
252
|
- Search 关闭不代表服务商内部绝不检索;开启后提示词与模型生成的检索词会到达 xAI,且结果可能错误、含提示注入并产生额外用量。
|
|
252
253
|
|
|
253
|
-
公开 xAI 文档、离线测试与真机验证继续作为三类独立证据。[图片证据页](./12-upstream-image-input-evidence.md)记录的固定 Proxy 门禁已对 `grok-4.6` 的普通 user 与一层 tool-result 分别发送红/蓝合成图:4 次均为 HTTP 200、`text/event-stream`、completed,规范化整段回复只含正确颜色词和可选句末标点。`grok-4.5` 的受控红图结果语义不可靠,因此即使公开模型页声明图片能力也不进入本插件图片集合。图片固定使用 `detail:"high"`。Harness `0.1.1-rc.2` attachment-local/LlmRuntime 已复验 `grok-4.6` image、`grok-4.5`/未知模型 text-only,候选门禁随后关闭并完成 `0.1.4` 发布。已发布 `0.1.6` 只允许普通 user/system 历史省略通过闭合字符串/长度校验的私有 reasoning 并保留相邻可见 text/image;畸形或超限 reasoning 仍在 attachment I/O 和 Responses POST 前失败。该修复不改变 assistant 加密 reasoning replay 或一层 tool-result 的公开内容边界。已发布 `0.1.7` 同样不改变图片集合、投影、Responses wire 或固定 origin。sidebar quota `0.1.8` 发布后已撤回,Search 的 Web、X、Web+X 与生产 function → `web_search` 顺序 Web+function 四组固定 Proxy
|
|
254
|
+
公开 xAI 文档、离线测试与真机验证继续作为三类独立证据。[图片证据页](./12-upstream-image-input-evidence.md)记录的固定 Proxy 门禁已对 `grok-4.6` 的普通 user 与一层 tool-result 分别发送红/蓝合成图:4 次均为 HTTP 200、`text/event-stream`、completed,规范化整段回复只含正确颜色词和可选句末标点。`grok-4.5` 的受控红图结果语义不可靠,因此即使公开模型页声明图片能力也不进入本插件图片集合。图片固定使用 `detail:"high"`。Harness `0.1.1-rc.2` attachment-local/LlmRuntime 已复验 `grok-4.6` image、`grok-4.5`/未知模型 text-only,候选门禁随后关闭并完成 `0.1.4` 发布。已发布 `0.1.6` 只允许普通 user/system 历史省略通过闭合字符串/长度校验的私有 reasoning 并保留相邻可见 text/image;畸形或超限 reasoning 仍在 attachment I/O 和 Responses POST 前失败。该修复不改变 assistant 加密 reasoning replay 或一层 tool-result 的公开内容边界。已发布 `0.1.7` 同样不改变图片集合、投影、Responses wire 或固定 origin。sidebar quota `0.1.8` 发布后已撤回,Search 的 Web、X、Web+X 与生产 function → `web_search` 顺序 Web+function 四组固定 Proxy 观察全部归属已发布 `0.1.9`,见 [Search 证据页](./13-upstream-search-evidence.md);`0.1.10` 只修复真实设置入口。隔离 Web Harness 与精确 Registry Host/client import/export smoke 不覆盖浏览器手工对话、Agent/session loop、OAuth、真实账号/真实 xAI 请求或 Windows 真机。任意 URL 下载与把 Authorization 带到第二个 origin 在所有版本仍永久禁止。
|
|
254
255
|
|
|
255
256
|
## 9. 残余风险
|
|
256
257
|
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
|
|
32
32
|
初步分组:
|
|
33
33
|
|
|
34
|
-
- required:`@deepseek-ai/cordis`、`@deepseek-ai/dsh-llm`、`@deepseek-ai/schemastery`。
|
|
34
|
+
- required:`@deepseek-ai/cordis`、`@deepseek-ai/dsh-llm`、`@deepseek-ai/dsh-settings`、`@deepseek-ai/schemastery`。Host 通过 settings 包的 canonical helper 静态注册可选 settings service;包本身必须由 Runtime 提供。
|
|
35
35
|
- profile-specific optional:subprocess、commands、connection 和 client UI packages。目标桌面 Runtime 必须实际挂载 subprocess service 才能提供官方 CLI 登录;缺失时模型 Provider 仍可读取已有有效官方凭据,但登录/注销动作不可用。
|
|
36
36
|
|
|
37
|
-
全部放入 `peerDependencies`,optional 项同时声明 `peerDependenciesMeta.<name>.optional: true`。可选 peer 不得被 Host 入口无条件静态 import;需要通过独立 export、条件加载或已证明的 Runtime external
|
|
37
|
+
全部放入 `peerDependencies`,optional 项同时声明 `peerDependenciesMeta.<name>.optional: true`。可选 peer 不得被 Host 入口无条件静态 import;需要通过独立 export、条件加载或已证明的 Runtime external 方式隔离。`@deepseek-ai/dsh-settings` 不是 optional peer,但 `ctx.settings` service 仍是可选能力;canonical helper 在 service 缺失或卸载时回退组合配置。Web、TUI、headless 三种缺失可选 service/peer 的测试必须通过。
|
|
38
38
|
|
|
39
39
|
这些包由 Harness Runtime 满足,不进入插件普通 dependency 图。版本在脚手架阶段以实际 rc.2 manifest 再核对;不自动放宽到未经测试的 Harness 版本。
|
|
40
40
|
|
package/docs/05-test-plan.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- 所有本地模拟服务使用随机 loopback 端口,不访问真实第三方。
|
|
8
8
|
- 真实账号 smoke 只在发布候选上人工执行,记录脱敏结果。
|
|
9
9
|
- `0.1.0` 发布前必须通过 macOS arm64 真机与 macOS/Windows 自动化矩阵;Windows x64 首次真机验证在发布后对 Registry 精确版本执行,验证前对外标注“代码支持、真机未验证”。
|
|
10
|
-
- `0.1.1` 及后续版本不要求每次重复真机验证;自动化矩阵、契约测试、干净安装和 tarball 校验是常规发版门禁。认证流程、平台 subprocess seam 或安全契约发生变化的版本原则上仍须做对应平台的定向真机验证;若仓库所有者对精确版本明确批准发布后验证,发布前必须公开标注未验证范围、保留自动化门禁,并在失败时使用新的递增稳定版修复。`0.1.6` 采用该已记录特例并已发布;发布后图片已确认可用,Windows 官方 CLI 则在生成登录 URL 前复现 OIDC discovery timeout。已发布 `0.1.7` 负责解释并闭合这些状态,不把系统网络失败冒充成浏览器弹出修复;发布后撤回的 sidebar quota `0.1.8
|
|
10
|
+
- `0.1.1` 及后续版本不要求每次重复真机验证;自动化矩阵、契约测试、干净安装和 tarball 校验是常规发版门禁。认证流程、平台 subprocess seam 或安全契约发生变化的版本原则上仍须做对应平台的定向真机验证;若仓库所有者对精确版本明确批准发布后验证,发布前必须公开标注未验证范围、保留自动化门禁,并在失败时使用新的递增稳定版修复。`0.1.6` 采用该已记录特例并已发布;发布后图片已确认可用,Windows 官方 CLI 则在生成登录 URL 前复现 OIDC discovery timeout。已发布 `0.1.7` 负责解释并闭合这些状态,不把系统网络失败冒充成浏览器弹出修复;发布后撤回的 sidebar quota `0.1.8`、已发布的 Search `0.1.9` 与当前 `0.1.10` Search settings 集成候选均不改变认证流程。
|
|
11
11
|
|
|
12
12
|
## 2. Gate 0:方案确认
|
|
13
13
|
|
|
@@ -143,6 +143,8 @@
|
|
|
143
143
|
- 本地 fake/codec 测试与 CLI Chat Proxy 脱敏图片 spike 是两类独立证据;精确 `grok-4.6` 必须分别通过普通 user 与一层 tool-result 的红/蓝语义门禁,请求图片固定为 `detail:"high"`。`grok-4.5` 的受控红图语义不可靠,必须失败关闭为 text-only;真实 Harness attachment smoke 还必须独立复验仅 `grok-4.6` 保留图片、`grok-4.5`/未知模型 text-only 且网络请求为 0。
|
|
144
144
|
- Provider 只发已声明 Harness function 的 tool-call chunks,不执行工具/写文件;未声明工具名、恶意路径参数、伪造 server search/image/tool 事件不能绕过 Harness 权限层。`0.1.9` 的 Web/X server-tool 事件产生零 Harness `tool-call` chunk;后续生图版本也不得绕过 Harness 权限层。
|
|
145
145
|
- Search 两项全关时不读取 `purpose`,request wire 与 `0.1.7` 一致;任一开关启用时,非空后台 purpose 关闭 Search,空字符串、错误类型或 accessor 在 POST 前失败。
|
|
146
|
+
- 真实 `SettingsProvider` + `LlmRuntime` 必须描述唯一 `llm-grok` namespace,默认值为两项关闭且 `applies:"live"`;用户层更新进入后续请求,插件卸载清理 namespace,无 settings service 时回退组合配置。
|
|
147
|
+
- Adapter 必须在每个调用开始且首次模型目录 await 前冻结 Search policy;用延迟目录证明等待期间的设置更新不改变该 prepared call,而下一调用读取新值。
|
|
146
148
|
- 只有精确 `grok-4.6` route 可接收 Search descriptor;`grok-4.5`、未知模型、缺 capability 或 capability 顺序/值异常均在 POST 前失败。Harness functions → Web → X 的顺序、128 项共享上限和 16 MiB JSON 上限必须锁定。
|
|
147
149
|
- Web lifecycle、四项 X custom-tool 名称、Web+X 交错与 Web+function 混合都必须闭合;未启用类别、未知 name/event/annotation、重复 output index、乱序、截断或未闭合状态失败关闭。结构化 citation 有界校验后丢弃,任一 Search 出现后 encrypted reasoning replay 为空。
|
|
148
150
|
|
|
@@ -247,4 +249,4 @@ Web 与 TUI 分别验证:
|
|
|
247
249
|
- Windows x64 自动化平台测试通过,且 README、release notes 和 marketplace 元数据在首次真机验证前明确披露“代码支持、真机未验证”。
|
|
248
250
|
- npm 回读的 SHA-512 与本地发布 tarball 一致。
|
|
249
251
|
|
|
250
|
-
`0.1.0` 发布后原计划完成一次 Windows x64 Registry 精确版本真机验收;仓库所有者随后明确决定该验收不再阻断稳定发布,且普通后续版本不重复要求真机验证。`0.1.1` 及后续版本以 CI、契约测试、隔离安装和制品校验为常规门禁。已发布 `0.1.6` 改变了认证预检 deadline 所有权并通过 Windows slow-fake 与 Windows CI;发布后图片已确认可用,但 Windows 官方 CLI 直接命令在固定 OIDC discovery 请求上超时,未生成登录 URL。已发布 `0.1.7` 准确区分 CLI 缺失、discovery 超时与 discovery 可访问状态,并确保前两类及时、脱敏结算;在第三类真实通过前不得把代码、CI 或错误可解释性表述为 Windows 浏览器弹出已修复或已验证。发布后撤回的 `0.1.8`
|
|
252
|
+
`0.1.0` 发布后原计划完成一次 Windows x64 Registry 精确版本真机验收;仓库所有者随后明确决定该验收不再阻断稳定发布,且普通后续版本不重复要求真机验证。`0.1.1` 及后续版本以 CI、契约测试、隔离安装和制品校验为常规门禁。已发布 `0.1.6` 改变了认证预检 deadline 所有权并通过 Windows slow-fake 与 Windows CI;发布后图片已确认可用,但 Windows 官方 CLI 直接命令在固定 OIDC discovery 请求上超时,未生成登录 URL。已发布 `0.1.7` 准确区分 CLI 缺失、discovery 超时与 discovery 可访问状态,并确保前两类及时、脱敏结算;在第三类真实通过前不得把代码、CI 或错误可解释性表述为 Windows 浏览器弹出已修复或已验证。发布后撤回的 `0.1.8`、已发布 `0.1.9` Search 协议与当前 `0.1.10` settings 集成修复均不改变这一边界;`0.1.9` 的精确 Registry Host/client import/export smoke 也不构成 Windows 真机、OAuth、真实账号或真实 xAI 验收。
|
package/docs/06-release-plan.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 0. 当前状态
|
|
4
4
|
|
|
5
|
-
当前可用 npm 稳定基线为 `dsh-grok-provider@0.1.
|
|
5
|
+
当前可用 npm 稳定基线为 `dsh-grok-provider@0.1.9`;其 release commit 为 `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`,不可变 tag 为 `v0.1.9`,CI run `33295408650` 全绿。唯一 tarball 含 69 个文件、190,049 bytes,unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,npm SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`;Trusted Publisher run `33295761336` 已完成,Registry、GitHub Release 与本地制品逐字节一致,npm `latest=0.1.9`。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 `v0.1.9` tag、release workflow、release commit 与 release run。sidebar quota 维护版 `0.1.8` 曾发布后撤回;npm Registry 已永久消耗该版本号,禁止把 Search 制品重新标记或发布为 `0.1.8`。`0.1.9` 的 Search 开关因 Host settings namespace 遗漏而不可用;`0.1.10` 修复已由代码 PR #23 合入 `yukiryou/main` merge commit `6c3c5bfff8de4e8bc46074434aad7682b3509db3`,main CI run `33298895342` 的 macOS 14 / Windows 2022 全绿。当前 `yukiryou/v0.1.10-release-evidence` 只记录发布证据;该版不覆盖或重发 `0.1.9`,也不改变 Search wire、支持模型或认证边界。
|
|
6
6
|
|
|
7
7
|
首个 `dsh-grok-provider@0.1.0` 于 2026-08-26 从 GitHub Release 中唯一的候选 tarball 发布到 npm;Registry 回读的 SHA-512、重新下载文件的 SHA-256 和 GitHub Release 产物完全一致,并生成 npm provenance attestation。后续稳定版沿用由该流程建立的不可变制品与回读原则。
|
|
8
8
|
|
|
@@ -66,7 +66,7 @@ CHANGELOG.md
|
|
|
66
66
|
|
|
67
67
|
`docs/` 与根目录中相互链接的中文默认页 `README.md`、英文版 `README.en.md`、`CONTRIBUTING.md`、`SECURITY.md` 和 `THIRD_PARTY_NOTICES.md` 一起进入 tarball,使安装后的架构、安全边界、第三方许可、社区维护方式和发布门禁链接保持可读。发布前的证据文档只记录脱敏事实、hash 与固定公开地址,不得包含 token、真实 prompt/响应或用户身份数据。
|
|
68
68
|
|
|
69
|
-
目标为零普通 runtime dependencies。DSH peer 精确使用 `0.1.1-rc.2`;Cordis `4.0.1`、Schemastery `3.18.1` 由目标桌面 Runtime snapshot 满足。`@deepseek-ai/dsh-subprocess`、
|
|
69
|
+
目标为零普通 runtime dependencies。DSH peer 精确使用 `0.1.1-rc.2`;Cordis `4.0.1`、Schemastery `3.18.1` 由目标桌面 Runtime snapshot 满足。`@deepseek-ai/dsh-settings` 是 Host Search 设置链路的直接、非 optional peer;`@deepseek-ai/dsh-subprocess`、commands、connection 和 client UI/locale 等 profile-specific peer 保持 optional,并有 Web/TUI/headless 缺失-peer测试。插件不打包 settings provider 或本地 subprocess 实现。
|
|
70
70
|
|
|
71
71
|
`package.json` 同时固定公开 Registry:
|
|
72
72
|
|
|
@@ -131,7 +131,7 @@ patch 路径必须为不含 `..`、绝对路径、反斜线或 NUL 的相对 `.y
|
|
|
131
131
|
|
|
132
132
|
## 7. Git 与版本
|
|
133
133
|
|
|
134
|
-
- `0.1.0`
|
|
134
|
+
- `0.1.0` 历史开发分支为 `yukiryou/v0.1.0`;`0.1.9` 代码分支 `yukiryou/v0.1.9-search` 与发布证据分支 `yukiryou/v0.1.9-release-evidence` 已分别经 PR #20、#21 合入受保护 `yukiryou/main`,最终 release commit 为 `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`。`0.1.8` 已由撤回的 sidebar quota 发布消耗,不得复用;当前候选分支为 `yukiryou/v0.1.10-search-settings-fix`(目标版本 `0.1.10`),已发布 `0.1.9` 不可覆盖或重发。
|
|
135
135
|
- `package.json`、CHANGELOG、release notes、Git tag 和 tarball 必须使用同一个精确候选版本。
|
|
136
136
|
- 发布提交必须干净且可复现。
|
|
137
137
|
- tag 使用 `v<major>.<minor>.<patch>`,只在发布提交确定后创建。
|
|
@@ -194,9 +194,9 @@ scoped 包首次公开发布必须保留 `--access public`。
|
|
|
194
194
|
npm 发布不会自动成为受管可安装项。当前发现状态:
|
|
195
195
|
|
|
196
196
|
- GitHub 仓库已添加 DeepSeek Harness 官方推荐的 `dsh-plugin` 与 `dsh` Topics,可被 Topic 驱动来源发现。
|
|
197
|
-
- YukiRyou curated catalog 当前仍是精确 `dsh-grok-provider@0.1.0`、verification `installed`、仅 `darwin-arm64`。`0.1.
|
|
197
|
+
- YukiRyou curated catalog 当前仍是精确 `dsh-grok-provider@0.1.0`、verification `installed`、仅 `darwin-arm64`。`0.1.9` 已发布及其完整性/provenance 回读不等于从 catalog 安装该精确版本,因此不得据此升级条目或增加平台。
|
|
198
198
|
- 公共 `awesome-dsh-plugin` 的收录 PR #3415 已合并,项目已进入 `model` 分类。该列表不记录精确 npm 版本或平台验证字段,因此收录只代表发现入口,不证明任一后续制品的受管安装或平台验收。
|
|
199
|
-
- Windows x64 仍未完成一条闭合的 Registry 精确版本 production inspector、安装、重启、浏览器登录、聊天、工具调用和重新认证链路。`0.1.6` 发布后已确认图片可用,并确认官方 CLI 可在生成登录 URL 前因 OIDC discovery timeout 退出;`0.1.7`
|
|
199
|
+
- Windows x64 仍未完成一条闭合的 Registry 精确版本 production inspector、安装、重启、浏览器登录、聊天、工具调用和重新认证链路。`0.1.6` 发布后已确认图片可用,并确认官方 CLI 可在生成登录 URL 前因 OIDC discovery timeout 退出;`0.1.7` 只增加闭合诊断,不是浏览器弹出已修复或已验证的证据。`0.1.9` 精确 Registry 安装的 Host/client import/export smoke 已通过,但未覆盖上述真实链路、OAuth、真实账号或真实 xAI 请求。
|
|
200
200
|
|
|
201
201
|
catalog 条目只能记录实际验证完成的精确版本和平台。当前条目记录:
|
|
202
202
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# 当前实现与发布状态
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`0.1.9` 已发布 Search 协议与设置页面,但遗漏 `llm-grok` Host settings 注册并过早冻结组合配置,导致真实页面开关始终不可用。当前 `0.1.10` 源码候选修复设置注册与按调用快照,不改变 Search wire。
|
|
4
4
|
|
|
5
5
|
状态日期:2026-08-30
|
|
6
|
-
当前 npm 发布线:`dsh-grok-provider@0.1.
|
|
7
|
-
当前源码候选:`dsh-grok-provider@0.1.
|
|
8
|
-
版本分支:`yukiryou/v0.1.
|
|
9
|
-
|
|
6
|
+
当前 npm 发布线:`dsh-grok-provider@0.1.9`
|
|
7
|
+
当前源码候选:`dsh-grok-provider@0.1.10`
|
|
8
|
+
版本分支:`yukiryou/v0.1.10-search-settings-fix`
|
|
9
|
+
发布基线:`yukiryou/main@a0af7b74882546dc3d9477b8f6c1494935e6bfb4`
|
|
10
|
+
内容类型路线:已冻结于 [能力路线图](./11-capability-roadmap.md);`0.1.9` 单独加入 Web/X Search,`0.1.10` 是可用设置链路修复,不新增内容类型。
|
|
10
11
|
|
|
11
12
|
## 已实现
|
|
12
13
|
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
- `0.1.4` 图片输入:异步 request compiler 惰性读取 Harness attachment,只为精确 `grok-4.6` 生成有序 jpeg/png data URL,并固定 `detail:"high"`;普通 user 与一层 tool-result 图片受格式、尺寸、像素、张数、总字节、content block 和最终 JSON 上限约束,`grok-4.5` 与未知模型继续 text-only。
|
|
21
22
|
- `0.1.6` 历史兼容:普通 user/system 历史中的私有 reasoning 被省略并保留相邻可见 text/image;只有有效的同 Provider assistant 历史可以进入加密 reasoning replay,一层 tool-result 仍只接受公开 text/image。
|
|
22
23
|
- `0.1.7` 维护:独立只读 diagnostics RPC 投影插件版本与官方 CLI 的 `ready|missing|invalid|unavailable` 闭合集合;登录失败只投影白名单 reason 并及时结束 spinner。设置导航在 Harness 当前无原生 icon slot 时,以精确标签匹配、冲突失败关闭和可回收 lifecycle 应用 MIT 许可的 `IconThinkOutline16` 几何。
|
|
23
|
-
- `0.1.9`
|
|
24
|
+
- 已发布 `0.1.9` Search 协议与页面:Web/X 默认关闭且可独立编译;request/receipt 同编译,精确 route、共享工具/字节预算、后台 purpose 关闭、Web 标准 lifecycle、四项 X custom-tool、function membership、citation 有界丢弃与 replay 抑制均失败关闭。真实 Host settings 集成由当前 `0.1.10` 候选补齐。
|
|
24
25
|
|
|
25
26
|
## 已验证
|
|
26
27
|
|
|
@@ -141,11 +142,24 @@ Windows x64 真机不再是 `0.1.0` 预发布阻断项。首次发布后必须
|
|
|
141
142
|
- npm Registry 已消耗 `0.1.8`,即使撤回也不能以同一版本号重新发布不同 Search 制品。
|
|
142
143
|
- 原先标注为 `0.1.8` 的 Search 开发证据与未完成门禁整体迁移到 `0.1.9`,不得把 Search 描述为 `0.1.8` 能力。
|
|
143
144
|
|
|
144
|
-
## `0.1.9`
|
|
145
|
+
## `0.1.9` 发布状态与已确认缺陷
|
|
145
146
|
|
|
146
|
-
- Web Search、X Search
|
|
147
|
+
- Web Search、X Search 的协议、页面与 `settingsScope` 绑定均已进入发布制品;但 Host 未注册同名 `llm-grok` namespace,真实页面因此派生为 `unavailable` 并禁用两个开关。
|
|
147
148
|
- 两项全关时不读取 `purpose` 并保持 `0.1.7` request wire;启用时,非空后台/派生 purpose 强制关闭 Search,accessor/空值/错误类型本地失败。
|
|
148
149
|
- 只有精确 `grok-4.6` route 支持 Search。Harness functions 后依次追加 `web_search`、`x_search`,共同受 128 项和 16 MiB 上限约束;不支持模型在 Responses POST 前返回 `UNSUPPORTED_CONTENT`。
|
|
149
150
|
- 固定 Proxy 的 Web、X、双开与生产 function → `web_search` 顺序 Web+function 四组脱敏观察已完成。Web 使用标准 search lifecycle;X 使用四项闭合的 `custom_tool_call` 名称。Search 事件产生零 Harness tool-call chunk,结构化 citation 有界校验后丢弃,观察到 Search 后不保存 encrypted reasoning replay。
|
|
150
151
|
- 精确 Node `24.19.0` 本地全量测试已通过:221 项、219 pass、0 fail、2 项 Windows-only skip;生产依赖审计为 0 漏洞,干净提交的 dry-run pack 为 69 个文件,生成 bundle 一致性、diff 与秘密模式扫描通过。
|
|
151
|
-
- 候选 head `402920fa0f5eb0b543a09a597ada0b2dd9661020` 的 push/PR CI、代码 PR #20 合并提交 `89297ad5c30e1edd94936b52fbe89d0331aaddf5` 的 main CI,以及隔离 Web Harness 默认关闭、Web-only、X-only、function → `web_search` Mixed 四场景验收均已通过。隔离 fetch 无 passthrough;浏览器手工对话、OAuth、真实账号/真实 xAI 请求和 Windows
|
|
152
|
+
- 候选 head `402920fa0f5eb0b543a09a597ada0b2dd9661020` 的 push/PR CI、代码 PR #20 合并提交 `89297ad5c30e1edd94936b52fbe89d0331aaddf5` 的 main CI,以及隔离 Web Harness 默认关闭、Web-only、X-only、function → `web_search` Mixed 四场景验收均已通过。隔离 fetch 无 passthrough;浏览器手工对话、Agent/session loop、OAuth、真实账号/真实 xAI 请求和 Windows 真机不由此覆盖。
|
|
153
|
+
- 发布证据 PR #21 合并后的最终 release commit 为 `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`;CI run `33295408650` 全绿。唯一 `dsh-grok-provider-0.1.9.tgz` 含 69 个文件、190,049 bytes,unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`。
|
|
154
|
+
- 不可变 `v0.1.9`、GitHub Release 与 Trusted Publisher run `33295761336` 已完成;Registry、Release 与本地制品逐字节一致,npm `latest=0.1.9`。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 tag、workflow、commit 与 release run。
|
|
155
|
+
- 上述候选与隔离协议测试向客户端注入了合成的 ready settings scope,只证明 startup Config → request,并未证明真实 Host namespace 存在。发布后真实页面确认功能集成缺口;它不代表制品损坏,也不会通过覆盖或重发 `0.1.9` 修复。
|
|
156
|
+
|
|
157
|
+
## `0.1.10` 候选状态
|
|
158
|
+
|
|
159
|
+
- 通过 `@deepseek-ai/dsh-settings@0.1.1-rc.2` 的 canonical `installSettingsSection` 注册 `llm-grok`,解析 schema 默认值、组合配置和持久化用户层;settings service 缺失或重载时回退组合配置。
|
|
160
|
+
- Adapter 在每次调用开始且首次模型目录 await 前捕获一次 Search policy;后续设置提交影响下一调用,已准备或在途调用保持原策略。request compiler 与 receipt 继续只处理冻结调用,不承担动态状态。
|
|
161
|
+
- 真实 SettingsProvider + LLM Runtime 回归覆盖唯一 namespace、安全默认值、`applies:"live"`、持久化更新、组合回退和插件生命周期清理;延迟目录回归证明快照早于首个 await。
|
|
162
|
+
- 聚焦 Host/Adapter/client 38 项回归通过;精确 Node `24.19.0` 全量为 224 项、222 pass、0 fail、2 项 Windows-only skip,生产依赖审计为 0 漏洞。
|
|
163
|
+
- 收尾后的预验收 dry-run pack 为 70 个文件;隔离安装使用的是代码等价、文档收尾前的候选包。所有预验收包都不会进入 Release,也不作为最终发布制品;最终字节数与摘要只从合并后的 release commit 冻结并记录。
|
|
164
|
+
- 隔离 Web Harness 的真实 `settings.describe` 已返回可写、`applies:"live"` 的唯一 `llm-grok` namespace。页面两个开关均 enabled,“暂时不可用”提示消失;浏览器写入把 revision 从 1 推进到 4,最终已恢复 `{webSearch:false,xSearch:false}`。
|
|
165
|
+
- 最终候选 head `1e5e875c6e55616f8d589ed56d4aa5fab643387a` 的 push CI run [33298844135](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298844135) 与 PR CI run [33298846201](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298846201) 均完成 macOS 14 / Windows 2022 全绿。代码 PR #23 已合入受保护 `yukiryou/main` merge commit `6c3c5bfff8de4e8bc46074434aad7682b3509db3`,main CI run [33298895342](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298895342) 全绿。发布证据 PR 与最终 release commit 的唯一制品冻结仍需关闭;未向真实 xAI 发起额外请求。
|
|
@@ -165,11 +165,26 @@ English summary: every release must close documentation, security, tests, determ
|
|
|
165
165
|
- [x] ADR-0010 冻结两个默认关闭开关、精确模型 route、request/receipt 同编译、共享工具/JSON 预算、后台 purpose 关闭、零 URL 跟随、citation 与 prompt-injection 风险边界。
|
|
166
166
|
- [x] 固定 CLI Chat Proxy 的 Web、X、Web+X 与生产 function → `web_search` 顺序 Web+function 四组脱敏观察完成;X 按四项闭合 custom-tool 名称实现,不把公开候选 `x_search_call` 形状外推到当前 Proxy。
|
|
167
167
|
- [x] request/compiler、codec、Adapter、真实 Host Config → LlmRuntime、settingsScope UI 聚焦测试全部通过;默认关闭 wire、未支持 route 零 POST、function membership、Web/X/mixed lifecycle、citation、唯一 ID/连续序列与 replay 抑制均有覆盖。
|
|
168
|
-
- [x] `package.json`/lockfile、CHANGELOG、中英文 README、`SECURITY.md`、产品/威胁/测试/发布/状态文档、ADR/证据与折叠英文的双语 `docs/releases/v0.1.9.md`
|
|
168
|
+
- [x] `package.json`/lockfile、CHANGELOG、中英文 README、`SECURITY.md`、产品/威胁/测试/发布/状态文档、ADR/证据与折叠英文的双语 `docs/releases/v0.1.9.md` 已同步为精确能力、边界与发布前事实;`docs/releases/v0.1.8.md` 只记录撤回事实,不描述 Search。
|
|
169
169
|
- [x] 精确 Node `24.19.0` 全量测试通过:221 项、219 pass、0 fail、2 项 Windows-only skip;`npm audit --omit=dev` 为 0 漏洞,干净提交的 `npm run pack:check` 为 69 个文件,`git diff --check`、生成 bundle 一致性与秘密模式扫描通过。
|
|
170
170
|
- [x] 候选 head `402920fa0f5eb0b543a09a597ada0b2dd9661020` 的 push CI run [33294837923](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33294837923) 与 PR CI run [33294887140](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33294887140),以及代码 PR [#20](https://github.com/yoshino-xiao7/dsh-grok-provider/pull/20) 合并提交 `89297ad5c30e1edd94936b52fbe89d0331aaddf5` 的 main CI run [33295176360](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33295176360),均完成 macOS 14 / Windows 2022 全绿。
|
|
171
171
|
- [x] 基于同一候选代码的 macOS 隔离 Web Harness profile 验收通过:默认关闭请求无 `tools`;Web-only 为 `web_search`;X-only 为 `x_search`;Mixed 保持 function → `web_search` 且只向 Harness 交付一个 fixture function call。每组均只有受控的 models GET 与 Responses POST,fetch 无 passthrough,且没有外部 xAI、npm 或 login 请求;这不替代浏览器手工对话、Agent/session loop、OAuth、真实账号、真实 xAI 请求或 Windows 真机验收。
|
|
172
172
|
- [x] 代码 PR #20 已合入受保护 `yukiryou/main`,merge commit 为 `89297ad5c30e1edd94936b52fbe89d0331aaddf5`。
|
|
173
|
-
- [
|
|
174
|
-
- [
|
|
173
|
+
- [x] 发布证据 PR [#21](https://github.com/yoshino-xiao7/dsh-grok-provider/pull/21) 合并后的最终 release commit 为 `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`,其 CI run [33295408650](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33295408650) 全绿。从该 commit 唯一生成的 `dsh-grok-provider-0.1.9.tgz` 含 69 个文件、190,049 bytes,unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`;预验收 tarball 未冒充或替代最终制品。
|
|
174
|
+
- [x] 仓库所有者在完整提交与唯一制品证据后明确授权发布精确 `dsh-grok-provider@0.1.9`;任何既有 `0.1.8` 授权均未复用。
|
|
175
|
+
- [x] 不可变 `v0.1.9`、唯一 GitHub Release asset 与 Trusted Publisher run [33295761336](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33295761336) 已完成;npm `latest=0.1.9`,Registry、Release 与本地 tarball 逐字节一致。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 tag、workflow、release commit 与 release run。
|
|
176
|
+
- [x] 发布后真实页面验证发现功能验收缺口:Host 未注册 `llm-grok`,两个 Search 开关失败关闭为 `unavailable`。该缺陷不覆盖或重发 `0.1.9`,使用递增稳定版 `0.1.10` 修复。
|
|
177
|
+
|
|
178
|
+
## `0.1.10` Search settings 集成修复门禁
|
|
179
|
+
|
|
180
|
+
- [x] 从 `origin/yukiryou/main@a0af7b74882546dc3d9477b8f6c1494935e6bfb4` 创建隔离分支 `yukiryou/v0.1.10-search-settings-fix`;原工作树两个未跟踪文件保持未修改。
|
|
181
|
+
- [x] 建立快速红测:真实 Host namespace 缺失、设置更新未进入请求、Adapter 两次调用都无 Search tools;当前实现修复后三项转绿。
|
|
182
|
+
- [x] 使用 canonical `@deepseek-ai/dsh-settings@0.1.1-rc.2` 注册 `llm-grok`,并在 Adapter 调用开始、首次 await 前冻结策略;compiler/receipt 静态不变量不变。
|
|
183
|
+
- [x] 真实 SettingsProvider + LLM Runtime 覆盖安全默认值、`applies:"live"`、组合回退、用户更新、prepared-call 隔离和 namespace 生命周期;client ready/write 与 unavailable fail-closed 测试同时保留。
|
|
184
|
+
- [x] 精确 Node `24.19.0` 全量测试通过:224 项、222 pass、0 fail、2 项 Windows-only skip;生产依赖审计为 0 漏洞。收尾后的 dry-run pack 为 70 个文件;生成 bundle 一致、`git diff --check` 通过,秘密模式扫描仅命中显式测试 canary `Bearer fixture-access-token`。最终字节数与摘要等待合并后的 release commit 冻结。
|
|
185
|
+
- [x] 从预验收候选 tarball 完成隔离 profile 安装:实际 `settings.describe` 包含可写、`applies:"live"` 的唯一 `llm-grok`;浏览器页面两个开关 enabled 且 unavailable 提示消失。浏览器写入由服务端 revision 递增确认并恢复默认关闭;延迟目录与 Host/Adapter fixture 回归分别证明旧调用保持快照、后续请求工具随设置变化。该验收未访问真实 xAI。
|
|
186
|
+
- [x] 最终候选 head `1e5e875c6e55616f8d589ed56d4aa5fab643387a` 的 push CI run [33298844135](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298844135) 与 PR [#23](https://github.com/yoshino-xiao7/dsh-grok-provider/pull/23) CI run [33298846201](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298846201) 均完成 macOS 14 / Windows 2022 全绿。
|
|
187
|
+
- [x] 代码 PR #23 已合入受保护 `yukiryou/main`,merge commit 为 `6c3c5bfff8de4e8bc46074434aad7682b3509db3`;main CI run [33298895342](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33298895342) 的 macOS 14 / Windows 2022 全绿。
|
|
188
|
+
- [ ] 版本分支合并后,从最终 release commit 唯一生成 `dsh-grok-provider-0.1.10.tgz`,记录文件数、大小、SHA-256 与 SRI;预验收 tarball 不得进入 Release。
|
|
189
|
+
- [ ] 完整提交和唯一制品证据形成后,另行取得精确 `dsh-grok-provider@0.1.10` 发布授权。
|
|
175
190
|
- [ ] 不可变 tag、唯一 GitHub Release asset、Trusted Publisher、npm `latest`、Registry 字节、签名与 provenance 回读全部关闭。
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# 能力路线图
|
|
2
2
|
|
|
3
|
-
- 状态:**`0.1.
|
|
4
|
-
- 当前 npm 稳定版:`0.1.
|
|
5
|
-
- 最近发布:`0.1.
|
|
6
|
-
-
|
|
3
|
+
- 状态:**`0.1.9` Search 已发布但设置入口不可用;`0.1.10` 正在修复真实 Host settings 链路(2026-08-30)**
|
|
4
|
+
- 当前 npm 稳定版:`0.1.9`
|
|
5
|
+
- 最近发布:`0.1.9`
|
|
6
|
+
- 最近撤回:`0.1.8`(npm 版本号不可复用)
|
|
7
|
+
- 当前开发分支:`yukiryou/v0.1.10-search-settings-fix`
|
|
7
8
|
|
|
8
9
|
本文是 `0.1.3` 之后内容类型迭代的单一事实来源。`0.1.0`–`0.1.3` 的历史范围仍以 [ADR-0002](./adr/0002-v0.1-scope.md) 和[产品需求](./01-product-requirements.md)为准。
|
|
9
10
|
|
|
@@ -28,7 +29,8 @@
|
|
|
28
29
|
| `0.1.6` | 图片历史 reasoning 兼容与 Windows 官方 CLI 分阶段 deadline | 聚焦回归、macOS/Windows CI、唯一制品与发布回读 | 复用现有图片与认证契约 |
|
|
29
30
|
| `0.1.7` | Windows 运行时诊断、登录失败可解释性与 `IconThinkOutline16` 设置导航图标维护 | 闭合 DTO/reason、lifecycle、UI/图标回归与 Windows 三态真机证据 | [ADR-0009](./adr/0009-runtime-diagnostics-and-login-failures.md) |
|
|
30
31
|
| `0.1.8`(已撤回) | sidebar quota 维护;不含 Search | 发布后撤回;npm 号码已消耗且不得复用 | 见 `0.1.8` 撤回说明 |
|
|
31
|
-
| `0.1.9
|
|
32
|
+
| `0.1.9`(已发布) | 默认关闭的 Web Search / X Search 协议与页面;Host namespace 遗漏导致开关不可用 | 固定 Proxy、双平台 CI、隔离 Harness、唯一制品与 Registry 回读均已关闭;发布后确认功能集成缺口 | [ADR-0010](./adr/0010-default-off-web-x-search.md) 与固定 Proxy 证据 |
|
|
33
|
+
| `0.1.10` 候选 | 修复 `llm-grok` 注册与按调用读取 Search 设置 | 真实 SettingsProvider/LLM 回归、隔离安装、双平台 CI、唯一制品 | [ADR-0010](./adr/0010-default-off-web-x-search.md) 的发布后修正 |
|
|
32
34
|
| 再后续版本 | 默认关闭的图片生成 | Proxy 返回可有界提交到 Harness attachment 的内联结果 | ADR-0011 |
|
|
33
35
|
|
|
34
36
|
版本号可因缺陷修复顺延。`prompt_cache_key` 与图片输入相互独立,不属于 `0.1.4`:它需要独立的会话标识隐私、路由稳定性和“不得自动重放已经发送的 POST”分析,不得作为图片请求失败后的重试/降级机制。
|
|
@@ -133,13 +135,22 @@ const request = await requestCompiler.compile(options, preparedRoute)
|
|
|
133
135
|
- 本版不新增模型能力、Responses wire、认证 origin 或 Search runtime;Windows 可访问 discovery 时由官方 CLI 实际弹出浏览器仍是发布门禁,不得由自动化或图标变更替代。
|
|
134
136
|
- 最终 release commit `68f6b474bd860b829f03e7712ec79e8afe2b9b8d` 的唯一 64 文件、167,970-byte tarball 已由 Trusted Publisher run `33226665968` 发布;npm `latest=0.1.7`,Registry、Release 与本地制品逐字节一致,签名与 provenance 已验证。
|
|
135
137
|
|
|
136
|
-
## 7. `0.1.9
|
|
138
|
+
## 7. `0.1.9`:已发布默认关闭的 Web/X Search
|
|
137
139
|
|
|
138
140
|
- 两个独立开关默认关闭;关闭时 request wire 不包含 server tool。
|
|
139
141
|
- 固定 CLI Chat Proxy 的 Web、X、双开与生产 function → `web_search` 顺序 Web+function 四组脱敏协议观察已完成;实现只允许实测 lifecycle,详见[证据页](./13-upstream-search-evidence.md)。
|
|
140
142
|
- request 与 response receipt 由同一深模块绑定;精确 `grok-4.6` 之外失败关闭,Web/X 远端调用产生零 Harness tool-call chunk。
|
|
141
143
|
- 搜索词、远端检索、额外用量、citation 和 prompt injection 风险必须在 UI 与安全文档中就近披露。
|
|
142
|
-
- 本地精确 Node 24 全量测试、生产依赖审计、69 文件 dry-run pack、生成 bundle/diff/秘密模式门禁已通过;候选与 main 合并提交的双平台 CI、隔离 Web Harness 四场景验收也已完成。隔离验收不覆盖浏览器手工对话、OAuth、真实账号/真实 xAI 请求或 Windows
|
|
144
|
+
- 本地精确 Node 24 全量测试、生产依赖审计、69 文件 dry-run pack、生成 bundle/diff/秘密模式门禁已通过;候选与 main 合并提交的双平台 CI、隔离 Web Harness 四场景验收也已完成。隔离验收不覆盖浏览器手工对话、Agent/session loop、OAuth、真实账号/真实 xAI 请求或 Windows 真机。
|
|
145
|
+
- 最终 release commit `a0af7b74882546dc3d9477b8f6c1494935e6bfb4` 的 CI run `33295408650` 全绿;唯一 69 文件、190,049-byte tarball 的 unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`。Trusted Publisher run `33295761336` 完成,npm `latest=0.1.9`,Registry、Release 与本地制品逐字节一致。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 tag、workflow、commit 与 release run。
|
|
146
|
+
- 上述协议与供应链门禁均已完成;但隔离 UI 使用合成 ready scope,Host Config 测试也只覆盖 startup config,未发现真实 `llm-grok` namespace 没有注册。发布后的真实页面因此失败关闭为不可用。
|
|
147
|
+
|
|
148
|
+
### `0.1.10` 修复切片
|
|
149
|
+
|
|
150
|
+
- 使用 Harness canonical settings module 注册 `llm-grok`,默认值、组合配置和用户层按标准顺序解析;无 settings service 时仍使用组合配置。
|
|
151
|
+
- Adapter 在调用开始且首次目录 await 前冻结策略;设置更新只影响后续调用,不改变已准备或在途请求。
|
|
152
|
+
- 不改变 Search descriptor、响应 lifecycle、模型 allowlist、citation 或 replay 规则;本版不新增能力。
|
|
153
|
+
- 真实 SettingsProvider/LLM 回归、真实页面可写 smoke、候选隔离安装、代码 PR 与 main 双平台 CI 已经完成;发布前仍需关闭发布证据 PR 与最终唯一制品门禁。
|
|
143
154
|
|
|
144
155
|
## 8. 后续:默认关闭的图片生成
|
|
145
156
|
|
|
@@ -155,4 +166,4 @@ const request = await requestCompiler.compile(options, preparedRoute)
|
|
|
155
166
|
- ACP、`grok -p` Headless、Linux / macOS x64 发布承诺。
|
|
156
167
|
- 厂商 `code_execution`;Harness 已有本地工具权限层。
|
|
157
168
|
|
|
158
|
-
English summary: `0.1.
|
|
169
|
+
English summary: `0.1.9` is the current stable npm release from commit `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`; version `0.1.8` was briefly published for sidebar-quota maintenance and then withdrawn, and its npm version number remains unusable. The unique 69-file, 190,049-byte artifact has an unpacked size of 603,475 bytes, SHA-256 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`, and SRI `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`. Final CI run `33295408650` and Trusted Publisher run `33295761336` passed; npm `latest=0.1.9`, and the Registry, GitHub Release, and local artifacts are byte-identical. The exact Registry Host/client import/export smoke passed. Its exact-install audit graph reported 71 verified signatures and 3 attestations, while this package's attestations endpoint returned 2; SLSA provenance binds the tag, workflow, commit, and release run. The published Host omitted the `llm-grok` settings namespace, so the real controls remain unavailable. The `0.1.10` candidate is a focused integration repair: canonical namespace registration plus one policy snapshot per new call before model discovery. Its real SettingsProvider/LLM tests, writable-page smoke, candidate isolated install, code PR, and main macOS 14 / Windows 2022 CI passed; the release-evidence PR and final exact artifact remain pending. It does not change authentication, Search wire rules, image input, or platform support. Real xAI Search and network-reachable browser launch on a physical Windows device remain separate acceptance boundaries.
|
|
@@ -95,4 +95,4 @@ Node 24 协议测试使用内存 attachment store 和合成 jpeg/png 字节,
|
|
|
95
95
|
|
|
96
96
|
`0.1.6` 已从 release commit `93519f77adc4ce2edfc1bbd27bce9e44d4805da6` 正式发布:唯一 tarball 为 60 个文件、145,620 bytes,SHA-256 `fd660d91216086496a4d189cb7e60b3445079913c97da41fccf805e3086c0347`,npm SRI `sha512-Vsmzm+8tgmHCuS8WKfzicjgauupY9FZ5B/V+55KbCTggBrThDDArjeS2bwHUVpjd92CvO47ya3SHELdWtTijAQ==`;Trusted Publisher run `33177647530` 完成,Registry 签名与 provenance 验证通过。发布后仓库所有者确认该精确版本的图片输入可用。
|
|
97
97
|
|
|
98
|
-
已发布 `0.1.7` 只增加 Windows 运行时诊断、登录失败可解释性与 `IconThinkOutline16` 设置导航图标维护。曾发布后撤回的 sidebar quota `0.1.8` 同样不修改图片边界;该 npm 版本号已消耗且不承载 Search
|
|
98
|
+
已发布 `0.1.7` 只增加 Windows 运行时诊断、登录失败可解释性与 `IconThinkOutline16` 设置导航图标维护。曾发布后撤回的 sidebar quota `0.1.8` 同样不修改图片边界;该 npm 版本号已消耗且不承载 Search。已发布 `0.1.9` 独立增加默认关闭的 Web/X Search 协议与页面,当前 `0.1.10` 候选只修复其 settings 集成;两者都不修改上述图片模型集合、attachment 投影、资源上限或图片 wire。
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# `0.1.9` Web/X Search 上游与固定 Proxy 证据
|
|
2
2
|
|
|
3
|
-
- 状态:`grok-4.6` 四组脱敏观察、生产顺序 mixed 复验、双平台 CI
|
|
3
|
+
- 状态:`grok-4.6` 四组脱敏观察、生产顺序 mixed 复验、双平台 CI、隔离 Web Harness、最终制品与发布后回读门禁均已完成;`0.1.9` 已正式发布,发布后发现的 Host settings 集成缺口由 `0.1.10` 修复
|
|
4
4
|
- 观察日期:2026-08-30
|
|
5
5
|
- 固定 origin/path:`https://cli-chat-proxy.grok.com/v1/responses`
|
|
6
6
|
- Provider client identity:`dsh-grok-provider/1.0.5`
|
|
7
|
-
-
|
|
7
|
+
- 协议目标版本:`0.1.9`;设置链路修正:`0.1.10`
|
|
8
8
|
|
|
9
|
-
sidebar quota 维护版 `0.1.8` 曾发布后撤回,npm Registry 已消耗该版本号且不能复用;本页所有 Search
|
|
9
|
+
sidebar quota 维护版 `0.1.8` 曾发布后撤回,npm Registry 已消耗该版本号且不能复用;本页所有 Search 协议证据只属于已发布 `0.1.9`,不能据此把 Search 描述为 `0.1.8` 能力,也不能替代 `0.1.10` 的真实 settings 集成验收。
|
|
10
10
|
|
|
11
11
|
本页只保存协议形状、计数和边界,不保存 access token、refresh token、搜索词、回答正文、citation URL、X 帖子/用户内容或原始响应。
|
|
12
12
|
|
|
@@ -79,13 +79,16 @@ Web + X 观察共 68 个 SSE event、4 个 output item、8 个 citation annotati
|
|
|
79
79
|
- Web/X lifecycle 产生零个 Harness tool-call chunk;function call 仍由 Harness 权限层处理。
|
|
80
80
|
- 观察到任一 server-tool 后禁用本响应的 encrypted reasoning replay。
|
|
81
81
|
|
|
82
|
-
##
|
|
82
|
+
## 发布门禁与集成后记
|
|
83
83
|
|
|
84
84
|
- [x] request/compiler、严格 codec、Adapter、真实 Host Config → LlmRuntime 与 settingsScope 设置页聚焦测试全绿。
|
|
85
85
|
- [x] 全量 Node `24.19.0` 测试通过(221 项、219 pass、0 fail、2 项 Windows-only skip);生产依赖审计为 0 漏洞,干净提交的 dry-run pack 为 69 个文件,生成 bundle/diff/秘密模式扫描通过。
|
|
86
86
|
- [x] 以 function → `web_search` 顺序单独重跑 mixed 固定 Proxy 脱敏协议探针,并更新该 case 的 request bytes 与事件计数。
|
|
87
87
|
- [x] 候选 push/PR 与 main 合并提交的 macOS 14 / Windows 2022 CI 通过。
|
|
88
88
|
- [x] macOS 隔离 Web Harness profile 的真实 `ctx.llm` 路径完成默认关闭、Web-only、X-only 与 function → `web_search` Mixed 四组验收;fetch 在插件导入前由失败关闭 fixture 接管,无 passthrough 或外部 xAI、npm、login 请求。该证据不覆盖浏览器手工对话、Agent/session loop、OAuth、真实账号、真实 xAI 请求或 Windows 真机。
|
|
89
|
-
- [
|
|
89
|
+
- [x] 发布证据 PR #21 合并后的最终 release commit 为 `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`,CI run `33295408650` 全绿。唯一 `dsh-grok-provider-0.1.9.tgz` 含 69 个文件、190,049 bytes,unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`。
|
|
90
|
+
- [x] 不可变 `v0.1.9`、GitHub Release 与 Trusted Publisher run `33295761336` 已完成;npm `latest=0.1.9`,Registry、Release 与本地制品逐字节一致。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 tag、workflow、commit 与 release run。
|
|
90
91
|
|
|
91
|
-
|
|
92
|
+
`0.1.9` 发布后的真实页面检查证明上述协议证据没有覆盖 Host namespace 注册:`settings.describe` 可写但不包含 `llm-grok`,客户端因此正确派生 `unavailable` 并禁用开关;Host 同时只在启动时读取一次组合配置。`0.1.10` 增加真实 SettingsProvider + LLM Runtime 回归和 Adapter 首次 await 前快照回归,只修复设置进入后续请求的链路,不改变本页任何固定 Proxy 结论。
|
|
93
|
+
|
|
94
|
+
这些自动化与脱敏证据仍不构成所有平台真实账户验收;真实 xAI Search、浏览器手工对话、OAuth 和网络可达 Windows 真机浏览器弹出保持独立边界。
|
package/docs/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# Grok Build Provider 文档索引
|
|
2
2
|
|
|
3
|
-
- 状态:**`0.1.
|
|
4
|
-
- 当前 npm 稳定版本:`0.1.
|
|
5
|
-
- 最近发布版本:`0.1.
|
|
6
|
-
- 当前开发分支:`yukiryou/v0.1.
|
|
7
|
-
-
|
|
3
|
+
- 状态:**`0.1.9` 已发布但 Search 设置链路存在缺陷;`0.1.10` 正在修复 Host namespace 与按调用配置快照**
|
|
4
|
+
- 当前 npm 稳定版本:`0.1.9`
|
|
5
|
+
- 最近发布版本:`0.1.9`
|
|
6
|
+
- 当前开发分支:`yukiryou/v0.1.10-release-evidence`
|
|
7
|
+
- 发布路径:`0.1.10` 代码 PR #23 已合入受保护 `yukiryou/main`;当前分支记录 release evidence
|
|
8
|
+
- 发布状态:不可变 `v0.1.9` 精确指向 release commit `a0af7b74882546dc3d9477b8f6c1494935e6bfb4`;CI run `33295408650` 全绿。唯一 69 文件、190,049-byte tarball 的 unpacked size 为 603,475 bytes,SHA-256 为 `78c73c95ea71d66cad6e6146fed41c281f1c8b29f60353e3f20247ec23833210`,npm SRI 为 `sha512-GeXQg3qedCGZz9D5MMaHd8Afe5Bn0nxjG+PQmKOB2AxB3m6IiGA07PMD77dEAOJVbAzKk0SnxAOKTZMTQFtuYg==`;Trusted Publisher run `33295761336` 已完成,Registry、GitHub Release 与本地制品逐字节一致,npm `latest=0.1.9`。精确 Registry 安装的 Host/client import/export smoke 通过;精确安装审计图汇总 71 个已验证签名与 3 个 attestations,本包 attestations endpoint 返回 2 项,SLSA provenance 精确绑定 tag、workflow、commit 与 release run。该制品遗漏 `llm-grok` Host settings 注册,不能通过重启或重装修复
|
|
8
9
|
- 撤回状态:`0.1.8` 只对应 sidebar quota 维护发布,不包含 Search;撤回不会释放 npm semver,任何 Search 制品都不得复用 `0.1.8`
|
|
9
10
|
- 兼容基线:DeepSeek Harness `0.1.1-rc.2`
|
|
10
11
|
- 目标平台:macOS arm64、Windows x64
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
- [v0.1.7 中英双语发行说明](./releases/v0.1.7.md)
|
|
53
54
|
- [v0.1.8 sidebar quota 撤回说明](./releases/v0.1.8.md)
|
|
54
55
|
- [v0.1.9 中英双语发行说明](./releases/v0.1.9.md)
|
|
56
|
+
- [v0.1.10 中英双语发行说明](./releases/v0.1.10.md)
|
|
55
57
|
- [v0.1.2-rc.1 中英双语预发行说明](./releases/v0.1.2-rc.1.md)
|
|
56
58
|
- [ADR-0001:认证与传输路线](./adr/0001-auth-and-transport-route.md)
|
|
57
59
|
- [ADR-0002:首版能力边界](./adr/0002-v0.1-scope.md)
|
|
@@ -64,11 +66,11 @@
|
|
|
64
66
|
- [ADR-0009:运行时版本诊断与闭合登录失败](./adr/0009-runtime-diagnostics-and-login-failures.md)
|
|
65
67
|
- [ADR-0010:默认关闭且独立配置的 Web/X Search](./adr/0010-default-off-web-x-search.md)
|
|
66
68
|
|
|
67
|
-
##
|
|
69
|
+
## 发布与后续开发门禁
|
|
68
70
|
|
|
69
71
|
`0.1.2-rc.1` 是唯一一次预发行尝试。仓库所有者决定从稳定 `0.1.2` 起不再发行预发行版;正式版缺陷通过新的递增稳定版本修复。`0.1.4` 已发布:仅精确 `grok-4.6` 开启图片,普通 user 与一层 tool-result 的红/蓝合成图共四次脱敏 Proxy 请求均通过;`grok-4.5` 的红图语义结果不可靠,因此失败关闭并与其他模型保持 text-only。`0.1.5` 维护发布供应链、账户面板投影与 Provider Runtime 安装事务。`0.1.6` 已发布图片历史 reasoning 兼容与 Windows CLI 分阶段 deadline 修复,精确制品、Trusted Publisher、Registry signature 与 provenance 均已验证;发布后图片能力已由仓库所有者确认可用。Windows 真机同时确认官方 `grok login --oauth` 可在 xAI OIDC discovery 阶段超时,此时登录 URL 尚未生成,不能据此声称 Provider 已修复或验证浏览器弹出。
|
|
70
72
|
|
|
71
|
-
`0.1.7` 已发布闭合 CLI 安装/版本诊断、登录失败可解释性,以及采用 MIT 许可的 Harness `IconThinkOutline16` 路径几何;它不接管官方 CLI 的网络、代理或 OAuth 流程。sidebar quota `0.1.8` 曾发布后撤回,且该 npm 号码不能复用;Search 从未作为 `0.1.8`
|
|
73
|
+
`0.1.7` 已发布闭合 CLI 安装/版本诊断、登录失败可解释性,以及采用 MIT 许可的 Harness `IconThinkOutline16` 路径几何;它不接管官方 CLI 的网络、代理或 OAuth 流程。sidebar quota `0.1.8` 曾发布后撤回,且该 npm 号码不能复用;Search 从未作为 `0.1.8` 发布。`0.1.9` 已发布精确 `grok-4.6` 的 Search 协议和页面,但遗漏 Host namespace 注册并过早冻结组合配置;`0.1.10` 只补齐 canonical settings 注册与调用级快照,不改变固定 Proxy、citation 或不可信远端内容边界。`0.1.10` 的真实 SettingsProvider/LLM 回归、页面写入、候选隔离安装、代码 PR 与 main 双平台 CI 已完成,发布证据 PR 和最终唯一制品仍待关闭。隔离验收与精确 Registry Host/client import/export smoke 均不覆盖浏览器手工对话、Agent/session loop、OAuth、真实账号/真实 xAI 请求或 Windows 真机。完整门禁见[逐版发布检查表](./10-release-checklist.md)。
|
|
72
74
|
|
|
73
75
|
## 官方依据
|
|
74
76
|
|
|
@@ -81,4 +83,4 @@
|
|
|
81
83
|
- [RFC 9700:OAuth 2.0 Security Best Current Practice](https://www.rfc-editor.org/rfc/rfc9700)
|
|
82
84
|
- DeepSeek Harness `0.1.1-rc.2` 内置公开类型:`@deepseek-ai/dsh-llm`、`@deepseek-ai/dsh-subprocess`、`@deepseek-ai/dsh-settings`、`@deepseek-ai/dsh-client-connection`
|
|
83
85
|
|
|
84
|
-
外部基础认证文档最近核对日期:2026-08-26;图片协议、精确模型页与固定 Proxy 图片 wire 最近核对/验证日期:2026-08-28;Search 官方文档、Grok Build sampler contract 与四组固定 Proxy Search wire 最近核对/验证日期:2026-08-30
|
|
86
|
+
外部基础认证文档最近核对日期:2026-08-26;图片协议、精确模型页与固定 Proxy 图片 wire 最近核对/验证日期:2026-08-28;Search 官方文档、Grok Build sampler contract 与四组固定 Proxy Search wire 最近核对/验证日期:2026-08-30。后续版本正式发布前仍必须重新核对上游接口与服务条款。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# ADR-0010:默认关闭且独立配置的 Web/X Search
|
|
2
2
|
|
|
3
|
-
-
|
|
3
|
+
- 状态:已接受;协议能力已在 `0.1.9` 正式发布,`0.1.10` 修正设置集成缺口
|
|
4
4
|
- 日期:2026-08-30
|
|
5
|
-
- 适用版本:`0.1.9`
|
|
5
|
+
- 适用版本:`0.1.9` 协议能力,`0.1.10` 可用设置链路
|
|
6
6
|
- 取代:无
|
|
7
7
|
|
|
8
8
|
## 背景
|
|
@@ -26,6 +26,8 @@ Provider Host Config 增加两个独立 boolean:
|
|
|
26
26
|
|
|
27
27
|
两项默认关闭。现有 Grok Build 设置页通过 Harness `settingsScope` 写入同一个 `llm-grok` 配置 namespace;不新增 Search RPC,不使用 `localStorage`,不维护第二份 renderer 状态。
|
|
28
28
|
|
|
29
|
+
Host 必须通过 `@deepseek-ai/dsh-settings` 的 canonical `installSettingsSection` 注册同名 namespace。解析顺序为 schema 默认值、组合 entry config、持久化用户层;settings service 缺失或重载时回退组合配置。动态设置停留在 Adapter seam:Adapter 在每次调用开始、首次模型目录异步等待前读取一次,底层 request compiler 继续只接收该调用的冻结策略。
|
|
30
|
+
|
|
29
31
|
设置页必须就近说明远端检索、额外用量、citation 与 prompt injection 风险。插件不会打开、下载或预览 citation,也不会把 Search 结果直接执行为命令或文件操作。
|
|
30
32
|
|
|
31
33
|
### 2. 一个深的 Responses call module
|
|
@@ -78,6 +80,12 @@ request 与 receipt 均复制并冻结。decoder 不从 Config、route 或原始
|
|
|
78
80
|
|
|
79
81
|
每个 call 持有独立、冻结的 receipt 与 decoder FSM。设置更新只影响后续创建的 call,不改变在途请求。
|
|
80
82
|
|
|
83
|
+
## `0.1.9` 发布后修正
|
|
84
|
+
|
|
85
|
+
已发布的 `0.1.9` 完成了 Search request/response 协议和设置页面,但 Host 漏掉 `llm-grok` namespace 注册,并在插件启动时过早冻结组合配置。真实 Harness 因此把 settings scope 派生为 `unavailable`,两个开关保持禁用;即使只解除 UI 禁用,后续设置写入也不会进入请求。
|
|
86
|
+
|
|
87
|
+
`0.1.10` 不改变 Search wire 或响应 allowlist,只补齐 canonical Host 注册和 Adapter 调用快照。回归测试必须同时证明:真实 SettingsProvider 可描述唯一 namespace、安全默认值与 `applies:"live"`;设置更新影响下一调用;更新前已准备的调用保留旧策略;无 settings service 时组合配置仍有效;插件卸载后 namespace 被清理。
|
|
88
|
+
|
|
81
89
|
- 不支持的精确模型能力:`UNSUPPORTED_CONTENT`。
|
|
82
90
|
- 协议、receipt、未知事件、未声明 function 或不闭合 lifecycle:`INVALID_RESPONSE`。
|
|
83
91
|
- Abort、认证、429 与其他 HTTP 错误沿用现有 `ABORTED`、`AUTH`、`RATE_LIMIT`、`PROVIDER_ERROR`。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
## 中文
|
|
2
|
+
|
|
3
|
+
`0.1.10` 修复 `0.1.9` 中 Web Search 与 X Search 开关始终不可用的问题。缺陷来自 Host 未注册页面所绑定的 `llm-grok` 设置 namespace;不是登录状态、CLI 版本或用户操作造成的。
|
|
4
|
+
|
|
5
|
+
### 安装
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.10
|
|
9
|
+
dsh web
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
### 修复内容
|
|
13
|
+
|
|
14
|
+
- 通过 Harness 官方 settings module 注册 `llm-grok`,设置页可读取并写入 Web Search 与 X Search。
|
|
15
|
+
- 保留安全默认值:两项均默认关闭,并继续只对精确 `grok-4.6` 开放。
|
|
16
|
+
- 设置写入只影响后续调用;每个调用在模型发现前冻结一次策略,已准备和在途请求不会被中途改变。
|
|
17
|
+
- 没有 settings provider 时继续使用组合配置;插件卸载或 settings service 重载时由 Harness 生命周期自动清理和回退。
|
|
18
|
+
- 新增真实 SettingsProvider + LLM Runtime 集成回归,以及模型目录延迟期间的调用快照回归。
|
|
19
|
+
|
|
20
|
+
### 不变边界
|
|
21
|
+
|
|
22
|
+
本版不改变认证、凭据、官方 CLI、固定 endpoint、Search 协议 allowlist、citation 处理、图片输入或平台支持。真实 xAI Search 请求和网络可达的 Windows 真机浏览器弹出仍属于独立验收范围。
|
|
23
|
+
|
|
24
|
+
<details>
|
|
25
|
+
<summary>English release notes</summary>
|
|
26
|
+
|
|
27
|
+
`0.1.10` fixes the Web Search and X Search controls that remained permanently unavailable in `0.1.9`. The Host had not registered the `llm-grok` settings namespace consumed by the page; sign-in state, CLI version, and user actions were not the cause.
|
|
28
|
+
|
|
29
|
+
### Install
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
dsh plugin --profile web add dsh-grok-provider@0.1.10
|
|
33
|
+
dsh web
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Fixes
|
|
37
|
+
|
|
38
|
+
- Register `llm-grok` through the canonical Harness settings module so the page can read and persist Web Search and X Search.
|
|
39
|
+
- Preserve safe defaults: both settings remain off by default and available only for exact `grok-4.6`.
|
|
40
|
+
- Apply committed settings only to later calls. Each call snapshots its policy before model discovery, so prepared and in-flight requests do not change underneath the user.
|
|
41
|
+
- Retain composition configuration when no settings provider is mounted, with Harness-owned cleanup and fallback across unload or settings-service reload.
|
|
42
|
+
- Add real SettingsProvider + LLM Runtime integration coverage and a deferred-model-discovery call-snapshot regression.
|
|
43
|
+
|
|
44
|
+
### Unchanged boundaries
|
|
45
|
+
|
|
46
|
+
Authentication, credentials, the official CLI, fixed endpoints, Search protocol allowlists, citation handling, image input, and platform support are unchanged. Real xAI Search requests and network-reachable browser launch on a physical Windows device remain separate acceptance boundaries.
|
|
47
|
+
|
|
48
|
+
</details>
|
package/docs/releases/v0.1.8.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
### 撤回状态
|
|
6
6
|
|
|
7
7
|
- npm Registry 的包名与版本号组合 `dsh-grok-provider@0.1.8` 已被永久占用;即使 unpublish,也不能复用该号码或用它重发不同制品。
|
|
8
|
-
- npm Registry 的 `latest`
|
|
8
|
+
- 撤回后 npm Registry 的 `latest` 恢复为 `0.1.7`;后续 Search 已作为独立 `0.1.9` 发布。
|
|
9
9
|
- Web/X Search 顺延至 `0.1.9`。
|
|
10
10
|
|
|
11
11
|
<details>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
### Withdrawal status
|
|
17
17
|
|
|
18
18
|
- The npm Registry package-name/version pair `dsh-grok-provider@0.1.8` is permanently reserved. Unpublishing does not make the number reusable or permit a different artifact to be republished under it.
|
|
19
|
-
- npm Registry `latest`
|
|
19
|
+
- After withdrawal, npm Registry `latest` returned to `0.1.7`; the independent Search slice was subsequently published as `0.1.9`.
|
|
20
20
|
- Web/X Search moves to `0.1.9`.
|
|
21
21
|
|
|
22
22
|
</details>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-grok-provider",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Clean-room Grok Build provider for DeepSeek Harness with official CLI browser authentication",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"@deepseek-ai/dsh-client-ui-settings": "0.1.1-rc.2",
|
|
69
69
|
"@deepseek-ai/dsh-commands": "0.1.1-rc.2",
|
|
70
70
|
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-settings": "0.1.1-rc.2",
|
|
71
72
|
"@deepseek-ai/dsh-subprocess": "0.1.1-rc.2",
|
|
72
73
|
"@deepseek-ai/schemastery": "3.18.1"
|
|
73
74
|
},
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
"@deepseek-ai/cordis": "4.0.1",
|
|
84
85
|
"@deepseek-ai/dsh-commands": "0.1.1-rc.2",
|
|
85
86
|
"@deepseek-ai/dsh-llm": "0.1.1-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-settings": "0.1.1-rc.2",
|
|
86
88
|
"@deepseek-ai/dsh-subprocess": "0.1.1-rc.2",
|
|
87
89
|
"@deepseek-ai/schemastery": "3.18.1"
|
|
88
90
|
},
|