dsh-codex-connect 0.1.0-alpha.4.50 → 0.1.0-alpha.4.51
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/INSTALL.md +14 -7
- package/README.i18n.yaml +2 -2
- package/README.md +6 -6
- package/docs/README.zh.md +6 -6
- package/docs/agent-notes/diagnostic-frame-types-20260928.md +29 -0
- package/docs/experiments/evidence/alpha-450-publication.json +67 -0
- package/docs/experiments/evidence/issue-282-final-review-20260928.json +67 -0
- package/lib/bin.js +1 -1
- package/lib/client.js +1 -1
- package/lib/index.js +25 -4
- package/package.json +3 -3
package/INSTALL.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Installation Runbook for CLI Agents
|
|
2
2
|
|
|
3
|
-
Published Alpha 4.
|
|
3
|
+
Published Alpha 4.50 is verified with either exact DSH `0.1.7-rc.1` or `0.1.7-rc.2` and pi-ai `0.85.1`, using a consistent host package set. Earlier DSH pairings retain their separately published plugin versions below.
|
|
4
4
|
|
|
5
5
|
Install `dsh-codex-connect` into one requested DeepSeek Harness profile without changing its current default model, search route, global configuration, or OAuth state.
|
|
6
6
|
|
|
7
|
-
Channel snapshot on 2026-09-26: npm `alpha` points to `0.1.0-alpha.4.
|
|
7
|
+
Channel snapshot on 2026-09-26: npm `alpha` points to `0.1.0-alpha.4.50`; `latest` remains `0.1.0-alpha.4.47`. Use the exact-version command for the installed DSH version; moving npm tags are not compatibility guarantees.
|
|
8
8
|
|
|
9
9
|
## Safety requirements
|
|
10
10
|
|
|
@@ -30,11 +30,18 @@ Check `dsh --version` before changing the requested profile. Use `dsh --help` to
|
|
|
30
30
|
| `0.1.5-alpha.1` | `0.1.0-alpha.4.41` |
|
|
31
31
|
| `0.1.5-rc.1` | `0.1.0-alpha.4.41` |
|
|
32
32
|
| `0.1.5-rc.2` | `0.1.0-alpha.4.41` |
|
|
33
|
-
| `0.1.7-rc.1` | `0.1.0-alpha.4.
|
|
33
|
+
| `0.1.7-rc.1` | `0.1.0-alpha.4.50` |
|
|
34
|
+
| `0.1.7-rc.2` | `0.1.0-alpha.4.50` |
|
|
34
35
|
|
|
35
36
|
If your exact DSH version is unknown or not listed, preserve the installed host, report that the combination is unverified, and verify it before making installation changes. A missing record does not prove incompatibility, and the catalog's latest verified DSH version is not the latest upstream release. Do not recommend upgrading or downgrading DSH merely to match a row. Investigate any specific failure and seek verification of the installed combination. Do not blindly install `dsh-codex-connect@alpha`: `alpha` is a moving tag, not a compatibility guarantee. Do not infer support for newer DSH versions from these rows.
|
|
36
37
|
|
|
37
|
-
Alpha 4.
|
|
38
|
+
Alpha 4.50 requires one consistent DSH `0.1.7-rc.1` or `0.1.7-rc.2` plugin API and pi-ai `0.85.1`; its direct runtime imports include `@deepseek-ai/schemastery` `3.18.4` and `@earendil-works/pi-ai` `0.85.1` so an isolated profile need not already provide them. Node.js remains `^22.19.0 || >=24.0.0`. It does not support the older DSH rows. Alpha 4.41 remains the choice for DSH `0.1.2-rc.1` with pi-ai `^0.84.2`, or `0.1.5-alpha.1`, `0.1.5-rc.1`, and `0.1.5-rc.2` with pi-ai `0.85.1`. Mixed host versions and other DSH/pi-ai combinations remain unverified. Alpha 4.25 remains the verified choice for DSH `0.1.2-alpha.5`, Alpha 4.23 for DSH `0.1.2-alpha.2`, Alpha 4.21 for DSH `0.1.1-rc.2`, and Alpha 4.14 for DSH `0.1.0-rc.7`. Changing DSH is a separate operation requiring the user's explicit request; a plugin update request does not authorize it. The repository's `pnpm --silent run check:compatibility` remains a strict development/release dependency gate, not a recommendation to change a user's host.
|
|
39
|
+
|
|
40
|
+
The Alpha 4.50 recommendation follows [PR #275](https://github.com/franksong2702/dsh-codex-connect/pull/275), [exact-release main CI](https://github.com/franksong2702/dsh-codex-connect/actions/runs/36222707376) and a successful [protected publication run](https://github.com/franksong2702/dsh-codex-connect/actions/runs/36222974006) at `6baa422b7b9cd513340948f659b51b0b9d76a724`. The same candidate passed unmodified rc.1 and rc.2 isolated installations without exemptions; Chromium passed 73 tests on each host. The rc.1 frozen full check passed 1,452 tests; rc.2 source types and focused image/auth/transport/compaction suites passed. An independent source reviewer found a mandatory UI-peer consistency gap; five red/green controls covered the correction before the final source review passed. See [the exact scope and evidence](docs/experiments/dsh-017rc2-compatibility.md).
|
|
41
|
+
|
|
42
|
+
Independent post-publication verification returned `already-complete`, matching the npm archive byte-for-byte to the original verified release artifact (SHA-256 `e974ef71d77b3153c8a41fa454d6e53de41227cf1ee96cee99db42f73a43b58d`). The version, `alpha`, Git tag and [prerelease](https://github.com/franksong2702/dsh-codex-connect/releases/tag/v0.1.0-alpha.4.50) agree. This release's publication workflow succeeded; no recovery mutation or duplicate publication was needed. `latest` remains 4.47. This is not new live-account/image/Reserve or physical Windows/mobile acceptance. All mandatory host peers, including UI peers, are checked by the full capability/strict compatibility checks; the compact doctor report alone is not a full peer audit. Optional commands-service behavior is not certified by the mandatory-peer check. Task controls remain paused and defaults are unchanged.
|
|
43
|
+
|
|
44
|
+
Historical Alpha 4.49 evidence:
|
|
38
45
|
|
|
39
46
|
The Alpha 4.49 recommendation follows [exact-release main CI](https://github.com/franksong2702/dsh-codex-connect/actions/runs/36212638824) on Node 22/24, browser and keyless Windows checks, plus the stock DSH `0.1.7-rc.1` same-artifact installation matrix. It fixes both independently reproduced Alpha 4.48 image-editing defects: reuploaded copies could select historical originals, and safe actionable input errors were hidden. The three original reproduction tests pass; a separate ephemeral GPT-6 Astra process reviewed the correction's source without implementation history and found no blockers in that scope.
|
|
40
47
|
|
|
@@ -85,10 +92,10 @@ Alpha 4.33 omits the `modelErrors` profile field required by RC model packages,
|
|
|
85
92
|
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.41
|
|
86
93
|
```
|
|
87
94
|
|
|
88
|
-
For
|
|
95
|
+
For either exact DSH `0.1.7-rc.1` or `0.1.7-rc.2` pairing, use Alpha 4.50:
|
|
89
96
|
|
|
90
97
|
```sh
|
|
91
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
98
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.50
|
|
92
99
|
```
|
|
93
100
|
|
|
94
101
|
For DSH `0.1.2-alpha.5`, use Alpha 4.25:
|
|
@@ -99,7 +106,7 @@ Alpha 4.33 omits the `modelErrors` profile field required by RC model packages,
|
|
|
99
106
|
|
|
100
107
|
If npm is unavailable after the matching GitHub prerelease is created, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.21'` only for the DSH `0.1.1-rc.2` combination, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.23'` only for the DSH `0.1.2-alpha.2` combination, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.25'` only for the DSH `0.1.2-alpha.5` combination, `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.41'` only for the DSH `0.1.2-rc.1`, `0.1.5-alpha.1`, `0.1.5-rc.1`, and `0.1.5-rc.2` combinations, or `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.46'` only for DSH `0.1.7-rc.1`.
|
|
101
108
|
|
|
102
|
-
For the current DSH `0.1.7-rc.1` pairing, if npm is unavailable after the matching GitHub prerelease is created, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.
|
|
109
|
+
For the current DSH `0.1.7-rc.1` or `0.1.7-rc.2` pairing, if npm is unavailable after the matching GitHub prerelease is created, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.50'`.
|
|
103
110
|
|
|
104
111
|
3. Run `dsh web --help` once to compose the installed profile without starting the server. DSH `0.1.2-rc.1` prepares profile plugin dependency fallback during this step.
|
|
105
112
|
4. Run `dsh --profile web --dump-config` and require exactly one `llm-openai-codex` row loading `dsh-codex-connect`.
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# git hash-object README.md docs/README.zh.md
|
|
5
|
-
README.md:
|
|
6
|
-
docs/README.zh.md:
|
|
5
|
+
README.md: 042cbc25138136fb6086b74b9174e560c7dcdd26
|
|
6
|
+
docs/README.zh.md: 394fa85a66eccbdee1adbfe2b859dd51b73ab785
|
package/README.md
CHANGED
|
@@ -16,19 +16,19 @@ This guide describes the published pairing below. Check `dsh --version` first an
|
|
|
16
16
|
|
|
17
17
|
| Requirement | Verified pairing |
|
|
18
18
|
|---|---|
|
|
19
|
-
| Codex Connect | `0.1.0-alpha.4.
|
|
20
|
-
| DeepSeek Harness | `0.1.7-rc.1` |
|
|
19
|
+
| Codex Connect | `0.1.0-alpha.4.50` |
|
|
20
|
+
| DeepSeek Harness | `0.1.7-rc.1` or `0.1.7-rc.2` (consistent package set) |
|
|
21
21
|
| Node.js | `^22.19.0 \|\| >=24.0.0` |
|
|
22
22
|
| Account | ChatGPT OAuth with access to the requested Codex model; availability is decided by OpenAI |
|
|
23
23
|
|
|
24
|
-
As of 2026-09-26, npm `alpha` points to 4.
|
|
24
|
+
As of 2026-09-26, npm `alpha` points to 4.50 while `latest` remains 4.47; publishing this release did not promote `latest`. Use the exact version below for this DSH pairing; a moving npm tag is not a compatibility guarantee for other hosts.
|
|
25
25
|
|
|
26
|
-
On stock DSH `0.1.7-rc.1`,
|
|
26
|
+
On stock DSH `0.1.7-rc.1` and `0.1.7-rc.2`, the package is installation/runtime-regression verified; Task controls remain paused: activation is rejected and fresh Sessions do not show them. Migration of earlier Task grants across a Harness upgrade is not verified. Older supported pairings and their task behavior are documented in [Installation and upgrades](INSTALL.md).
|
|
27
27
|
|
|
28
28
|
### 1. Install
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
31
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.50
|
|
32
32
|
dsh web
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -88,7 +88,7 @@ With `enableReserveFallback: true`, the account UI and agent routing share one i
|
|
|
88
88
|
|
|
89
89
|
Use the image generation capability included with your current GPT subscription. Successful images appear below the conversation answer without opening its processing details; the original tool card remains available there. Generated originals are stored separately from attachment previews; disabling the capability or uninstalling the plugin does not delete them. See [Configuration and recovery](docs/reference.md#search-and-image-tools) for storage and access rules.
|
|
90
90
|
|
|
91
|
-
Alpha 4.49 fixes the re-uploaded-copy/original confusion and hidden safe failure reasons found in 4.48. Ambiguous inputs require an explicit selection rather than silently changing the target. The original package remains unchanged;
|
|
91
|
+
Alpha 4.49 fixes the re-uploaded-copy/original confusion and hidden safe failure reasons found in 4.48. Ambiguous inputs require an explicit selection rather than silently changing the target. The original package remains unchanged; Alpha 4.50 retains both repairs and adds exact DSH rc.2 compatibility while preserving rc.1. Do not mix rc.1 and rc.2 packages or bypass the plugin manager's version checks.
|
|
92
92
|
|
|
93
93
|
Auto-review operates after Harness policy requires approval; it does not bypass that policy. See [Auto-review behavior](docs/auto-review.md) before enabling it.
|
|
94
94
|
|
package/docs/README.zh.md
CHANGED
|
@@ -16,19 +16,19 @@ Codex Connect 为标准 Harness agent loop 添加 `openai-codex` 模型提供方
|
|
|
16
16
|
|
|
17
17
|
| 要求 | 已验证组合 |
|
|
18
18
|
|---|---|
|
|
19
|
-
| Codex Connect | `0.1.0-alpha.4.
|
|
20
|
-
| DeepSeek Harness | `0.1.7-rc.1` |
|
|
19
|
+
| Codex Connect | `0.1.0-alpha.4.50` |
|
|
20
|
+
| DeepSeek Harness | `0.1.7-rc.1` 或 `0.1.7-rc.2`(包版本必须一致) |
|
|
21
21
|
| Node.js | `^22.19.0 \|\| >=24.0.0` |
|
|
22
22
|
| 账户 | 通过 ChatGPT OAuth 使用所请求的 Codex 模型;可用性由 OpenAI 决定 |
|
|
23
23
|
|
|
24
|
-
截至 2026-09-26,npm `alpha` 指向 4.
|
|
24
|
+
截至 2026-09-26,npm `alpha` 指向 4.50,`latest` 仍为 4.47;本次发布没有提升 `latest`。安装此 DSH 组合请使用下方精确版本命令;会移动的 npm tag 不保证其他宿主版本的兼容性。
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
该安装包已通过原版 DSH `0.1.7-rc.1` 和 `0.1.7-rc.2` 的安装及运行回归验证;Task 控件仍暂停:激活请求会被拒绝,新 Session 不显示这些控件。跨 Harness 升级迁移旧任务授权尚未验证。较旧组合及其任务行为见[安装与升级](../INSTALL.md)。
|
|
27
27
|
|
|
28
28
|
### 1. 安装
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
|
-
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.
|
|
31
|
+
dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.50
|
|
32
32
|
dsh web
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -88,7 +88,7 @@ Alpha 4.40 还会在旧提供方目录缺失时补充 `gpt-6-sol` 和 `gpt-6-lun
|
|
|
88
88
|
|
|
89
89
|
使用你当前 GPT 订阅计划提供的图片生成能力。成功生成的图片会显示在对话回复下方,无需展开处理过程;原工具卡片仍保留在处理过程里。生成原文件与附件预览分开保存;关闭能力或卸载插件不会删除这些文件。存储和访问规则见[配置与恢复](reference.zh.md#搜索与图片工具)。
|
|
90
90
|
|
|
91
|
-
Alpha 4.49 修复了 4.48
|
|
91
|
+
Alpha 4.49 修复了 4.48 中重新上传的副本与历史原图混淆、以及安全失败原因未显示的问题。输入有歧义时要求明确选择,不会静默更换编辑对象。旧安装包保持不变;Alpha 4.50 保留这两项修复,并在继续支持 rc.1 的同时增加精确的 DSH rc.2 兼容。不要混装 rc.1/rc.2 的包,也不要绕过插件管理器的版本检查。
|
|
92
92
|
|
|
93
93
|
自动审查在 Harness 策略判定需要审批后执行,不会绕过该策略。启用前请阅读[自动审查行为](auto-review.zh.md)。
|
|
94
94
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Diagnostic observer repair — 2026-09-28
|
|
2
|
+
|
|
3
|
+
## Current delivery scope
|
|
4
|
+
|
|
5
|
+
Maintenance candidate `0.1.0-alpha.4.51`, based on main `a56109f7c017049089300927d90b6b1dcef80b2d`. Resolves #282 with a string-type guard and transparent error/cancellation lifecycle for the diagnostic wrapper. This branch excludes the unpublished metrics collector, CLI and evaluation framework. No defaults, Task publication gate, accounts or daily services change.
|
|
6
|
+
|
|
7
|
+
## Defects and reproductions
|
|
8
|
+
|
|
9
|
+
The existing observer coerced arbitrary JSON `event.type` through `String`, allowing an object to raise a diagnostic-origin TypeError before bytes reached the provider. The original five-case regression recorded one failure before repair and all five passing afterward. The guard stops diagnostic attribution for non-string types while forwarding original response bytes. Two supplemental cases verify direct invalid-type-to-error attribution and cancellation after an invalid frame.
|
|
10
|
+
|
|
11
|
+
A fresh independent metrics review also exposed a pre-existing diagnostic-wrapper lifecycle problem: an unread or paused consumer could keep a pending `reader.closed` after underlying abort, disposal or network failure. All six new reproductions failed before correction. The wrapper now observes the upstream reader closure, forwards the same error without requiring another read, and guards cancellation/release once. The combined focused suite passed 54 tests. This does not establish a cause for #219's long-lived overloaded condition.
|
|
12
|
+
|
|
13
|
+
## Independent review and validation
|
|
14
|
+
|
|
15
|
+
A separate ephemeral GPT-6 Astra process received only the exact source/patch and test code, not implementation chat history. The final combined-correction report returned PASS with no findings. This is static source review, not a claim that the reviewer ran tests. Input/report fingerprints and reviewed file hashes are in [the evidence record](../experiments/evidence/issue-282-final-review-20260928.json).
|
|
16
|
+
|
|
17
|
+
The aligned candidate completed `pnpm install --frozen-lockfile`, full `pnpm run check` (127 files / 1,466 tests) and Chromium (13 files / 73 tests). The first version-bumped check had one CLI snapshot mismatch; only the displayed version was updated, then the complete check passed. Installation matrix and exact-head remote CI are separate gates; publication is not implied by these local results.
|
|
18
|
+
|
|
19
|
+
## Historical blocked attempts
|
|
20
|
+
|
|
21
|
+
The earlier research-workflow final review and commit calls were blocked and produced no completion evidence. The maintainer subsequently authorized continuation. The successful fresh final review above supersedes the pending status; the prior blocked attempts are not represented as passes.
|
|
22
|
+
|
|
23
|
+
## Release discipline
|
|
24
|
+
|
|
25
|
+
Use the existing protected OIDC workflow only after the exact candidate is reviewed and both declared stock hosts pass installation. Keep the published recommendation at the already-available version until publication readback succeeds. Published 4.50 bytes/tags must not be rewritten. Source, merge, publication and daily deployment remain distinct.
|
|
26
|
+
|
|
27
|
+
## Final local candidate results
|
|
28
|
+
|
|
29
|
+
Both unmodified stock DSH `0.1.7-rc.1` and `0.1.7-rc.2` passed the same-artifact installation/runtime matrix. Candidate version 4.51; archive SHA-256 `4c02b790c749c02d9b9e880d2742b1d04ab433df04d92c5ba94b76b51fa63eee`; defaults unchanged. The archive predates only final evidence-text updates and must not be presented as the eventual OIDC-published artifact identity. Exact-head CI repeats final-tree checks before merge and exact-main CI gates publication. A verified-pair entry was added only after both host results existed.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"recordedAt": "2026-09-26T07:28:30.379047+00:00",
|
|
4
|
+
"version": "0.1.0-alpha.4.50",
|
|
5
|
+
"releaseSHA": "6baa422b7b9cd513340948f659b51b0b9d76a724",
|
|
6
|
+
"channels": {
|
|
7
|
+
"latest": "0.1.0-alpha.4.47",
|
|
8
|
+
"alpha": "0.1.0-alpha.4.50"
|
|
9
|
+
},
|
|
10
|
+
"release": {
|
|
11
|
+
"isDraft": false,
|
|
12
|
+
"isPrerelease": true,
|
|
13
|
+
"publishedAt": "2026-09-26T06:15:32Z",
|
|
14
|
+
"tagName": "v0.1.0-alpha.4.50",
|
|
15
|
+
"targetCommitish": "6baa422b7b9cd513340948f659b51b0b9d76a724",
|
|
16
|
+
"url": "https://github.com/franksong2702/dsh-codex-connect/releases/tag/v0.1.0-alpha.4.50"
|
|
17
|
+
},
|
|
18
|
+
"mainCI": {
|
|
19
|
+
"runId": 36222707376,
|
|
20
|
+
"conclusion": "success",
|
|
21
|
+
"jobs": [
|
|
22
|
+
{
|
|
23
|
+
"name": "browser-ui-regression",
|
|
24
|
+
"conclusion": "success"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "phase2-host-regression (24.x)",
|
|
28
|
+
"conclusion": "success"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "phase2-host-regression (22.19.0)",
|
|
32
|
+
"conclusion": "success"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "windows-canary-contract",
|
|
36
|
+
"conclusion": "success"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "validate (24.x)",
|
|
40
|
+
"conclusion": "success"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "validate (22.19.0)",
|
|
44
|
+
"conclusion": "success"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"publication": {
|
|
49
|
+
"runId": 36222974006,
|
|
50
|
+
"conclusion": "success",
|
|
51
|
+
"url": "https://github.com/franksong2702/dsh-codex-connect/actions/runs/36222974006"
|
|
52
|
+
},
|
|
53
|
+
"readOnlyArtifactVerification": {
|
|
54
|
+
"status": "already-complete",
|
|
55
|
+
"version": "0.1.0-alpha.4.50",
|
|
56
|
+
"runId": "36222974006",
|
|
57
|
+
"sha": "6baa422b7b9cd513340948f659b51b0b9d76a724",
|
|
58
|
+
"sha256": "e974ef71d77b3153c8a41fa454d6e53de41227cf1ee96cee99db42f73a43b58d",
|
|
59
|
+
"npmRepublished": false,
|
|
60
|
+
"tagsPromoted": false,
|
|
61
|
+
"releaseId": 397120247
|
|
62
|
+
},
|
|
63
|
+
"runtimeTests": "Pre-existing release evidence; not rerun by this documentation closeout",
|
|
64
|
+
"realProviderRequestsThisCloseout": 0,
|
|
65
|
+
"npmRepublished": false,
|
|
66
|
+
"dailyServiceChanges": false
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"recordedAt": "2026-09-28",
|
|
4
|
+
"issue": 282,
|
|
5
|
+
"candidateVersion": "0.1.0-alpha.4.51",
|
|
6
|
+
"base": "a56109f7c017049089300927d90b6b1dcef80b2d",
|
|
7
|
+
"reviewerModel": "gpt-6-astra",
|
|
8
|
+
"independentEphemeralProcess": true,
|
|
9
|
+
"sourceOnly": true,
|
|
10
|
+
"inputSha256": "49e5deaf73ab2becb2d43fbf54adeb32abe09715575c3de8cb831d8577e8f68a",
|
|
11
|
+
"reportSha256": "65c8fb582b318e4eab3cc8d6c4f52f2da23d10434c59434152bbff4f92e03a9e",
|
|
12
|
+
"reviewedSourceDigests": {
|
|
13
|
+
"src/request-diagnostics.ts": "8ca36837811f0e3c37e9d4e9c73599d188b407ec61c276e0547d9b93783c2e46",
|
|
14
|
+
"src/backend-request.ts": "46a0b01778ba422204f653667a4314a17eea2cf728ac8f04cc4631a978921edb",
|
|
15
|
+
"tests/diagnostic-frame-types.spec.ts": "b97651f04f1e247fbee513b1c5836628cc9d47c5f052d9bd82c750e84e7c67a7",
|
|
16
|
+
"tests/diagnostic-response-lifecycle.spec.ts": "8ce79d455e18d43e0c8ac6387348368c5313d4e650f781f855a1b5097ad095a9",
|
|
17
|
+
"tests/issue-219-diagnostics.spec.ts": "cafff35ba95c4b9a7e83f38a2b3c2a399980407d2b7629127982b8d3a112cebc"
|
|
18
|
+
},
|
|
19
|
+
"review": {
|
|
20
|
+
"verdict": "PASS",
|
|
21
|
+
"findings": [],
|
|
22
|
+
"residual_limits": [
|
|
23
|
+
"仅审查所提供的代码与 diff;未使用工具、网络或历史记录,未运行测试。",
|
|
24
|
+
"静态确认:JSON 元数据经过字符串类型检查后才参与匹配,不会触发对象到字符串的诊断强制转换错误。",
|
|
25
|
+
"静态确认:上游 reader.closed 的拒绝经 fail 传播到下游;未读或暂停读取时,abort、disposal 和网络错误均无需再次 read 即可被观察。",
|
|
26
|
+
"诊断层 finished/released 防止重复取消与释放;正常结束不取消,已错误的流不会再次调用底层 cancellation hook。原始字节直接转发,highWaterMark: 0 保持背压,错误对象和既有分类逻辑保持不变。",
|
|
27
|
+
"上述结论基于标准 Web Streams 语义;所附测试的实际运行结果、真实网络及宿主集成行为未经验证。"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"reproductions": {
|
|
31
|
+
"nonStringTypes": {
|
|
32
|
+
"scope": "prior recorded red/green",
|
|
33
|
+
"beforeFailed": 1,
|
|
34
|
+
"beforePassed": 4
|
|
35
|
+
},
|
|
36
|
+
"readerLifecycle": {
|
|
37
|
+
"beforeFailed": 6,
|
|
38
|
+
"beforePassed": 0,
|
|
39
|
+
"afterFocusedPassed": 54
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"validation": {
|
|
43
|
+
"fullCheck": {
|
|
44
|
+
"files": 127,
|
|
45
|
+
"tests": 1466,
|
|
46
|
+
"passed": true
|
|
47
|
+
},
|
|
48
|
+
"chromium": {
|
|
49
|
+
"files": 13,
|
|
50
|
+
"tests": 73,
|
|
51
|
+
"passed": true
|
|
52
|
+
},
|
|
53
|
+
"installationMatrix": {
|
|
54
|
+
"sameArtifact": true,
|
|
55
|
+
"hosts": [
|
|
56
|
+
"0.1.7-rc.1",
|
|
57
|
+
"0.1.7-rc.2"
|
|
58
|
+
],
|
|
59
|
+
"artifactSha256": "4c02b790c749c02d9b9e880d2742b1d04ab433df04d92c5ba94b76b51fa63eee",
|
|
60
|
+
"defaultsUnchanged": true,
|
|
61
|
+
"scope": "tested runtime before final evidence-text updates; not the eventual publication artifact identity"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"liveProviderAcceptanceRequests": 0,
|
|
65
|
+
"taskActivated": false,
|
|
66
|
+
"dailyServicesChanged": false
|
|
67
|
+
}
|
package/lib/bin.js
CHANGED
|
@@ -769,7 +769,7 @@ async function detectCompatibility(options = {}) {
|
|
|
769
769
|
}
|
|
770
770
|
//#endregion
|
|
771
771
|
//#region src/version.ts
|
|
772
|
-
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.
|
|
772
|
+
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.51";
|
|
773
773
|
//#endregion
|
|
774
774
|
//#region src/doctor.ts
|
|
775
775
|
/** Secret-free diagnostics and duplicate-provider guidance. */
|
package/lib/client.js
CHANGED
|
@@ -7106,7 +7106,7 @@ window.__ModuleLoader__.load({
|
|
|
7106
7106
|
}
|
|
7107
7107
|
//#endregion
|
|
7108
7108
|
//#region src/version.ts
|
|
7109
|
-
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.
|
|
7109
|
+
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.51";
|
|
7110
7110
|
//#endregion
|
|
7111
7111
|
//#region src/client/OpenAICodexModelsCard.tsx
|
|
7112
7112
|
/** Compact Models account entry with quota disclosure and shared configuration. */
|
package/lib/index.js
CHANGED
|
@@ -2081,11 +2081,16 @@ var ErrorFrameObserver = class {
|
|
|
2081
2081
|
this.stop();
|
|
2082
2082
|
return;
|
|
2083
2083
|
}
|
|
2084
|
+
const eventType = event["type"];
|
|
2085
|
+
if (typeof eventType !== "string") {
|
|
2086
|
+
this.stop();
|
|
2087
|
+
return;
|
|
2088
|
+
}
|
|
2084
2089
|
if ([
|
|
2085
2090
|
"response.completed",
|
|
2086
2091
|
"response.done",
|
|
2087
2092
|
"response.incomplete"
|
|
2088
|
-
].includes(
|
|
2093
|
+
].includes(eventType)) {
|
|
2089
2094
|
this.stop();
|
|
2090
2095
|
return;
|
|
2091
2096
|
}
|
|
@@ -2107,18 +2112,32 @@ function observeResponse(response, diagnostic) {
|
|
|
2107
2112
|
const observer = new ErrorFrameObserver(diagnostic);
|
|
2108
2113
|
const reader = response.body.getReader();
|
|
2109
2114
|
let released = false;
|
|
2115
|
+
let finished = false;
|
|
2116
|
+
let output;
|
|
2110
2117
|
const release = () => {
|
|
2111
2118
|
if (!released) {
|
|
2112
2119
|
released = true;
|
|
2113
2120
|
reader.releaseLock();
|
|
2114
2121
|
}
|
|
2115
2122
|
};
|
|
2123
|
+
const fail = (error) => {
|
|
2124
|
+
if (finished) return;
|
|
2125
|
+
finished = true;
|
|
2126
|
+
output.error(error);
|
|
2127
|
+
reader.cancel(error).catch(() => void 0);
|
|
2128
|
+
release();
|
|
2129
|
+
};
|
|
2116
2130
|
const body = new ReadableStream({
|
|
2131
|
+
start(controller) {
|
|
2132
|
+
output = controller;
|
|
2133
|
+
},
|
|
2117
2134
|
async pull(controller) {
|
|
2118
2135
|
try {
|
|
2119
2136
|
const { done, value } = await reader.read();
|
|
2137
|
+
if (finished) return;
|
|
2120
2138
|
if (done) {
|
|
2121
2139
|
observer.finish();
|
|
2140
|
+
finished = true;
|
|
2122
2141
|
release();
|
|
2123
2142
|
controller.close();
|
|
2124
2143
|
return;
|
|
@@ -2126,11 +2145,12 @@ function observeResponse(response, diagnostic) {
|
|
|
2126
2145
|
observer.feed(value);
|
|
2127
2146
|
controller.enqueue(value);
|
|
2128
2147
|
} catch (error) {
|
|
2129
|
-
|
|
2130
|
-
controller.error(error);
|
|
2148
|
+
fail(error);
|
|
2131
2149
|
}
|
|
2132
2150
|
},
|
|
2133
2151
|
async cancel(reason) {
|
|
2152
|
+
if (finished) return;
|
|
2153
|
+
finished = true;
|
|
2134
2154
|
try {
|
|
2135
2155
|
await reader.cancel(reason);
|
|
2136
2156
|
} finally {
|
|
@@ -2138,6 +2158,7 @@ function observeResponse(response, diagnostic) {
|
|
|
2138
2158
|
}
|
|
2139
2159
|
}
|
|
2140
2160
|
}, { highWaterMark: 0 });
|
|
2161
|
+
reader.closed.catch(fail);
|
|
2141
2162
|
const wrapped = new Response(body, {
|
|
2142
2163
|
status: response.status,
|
|
2143
2164
|
statusText: response.statusText,
|
|
@@ -5782,7 +5803,7 @@ function registerOpenAICodexOriginalImageRoute(ctx, trustedOrigins, assets) {
|
|
|
5782
5803
|
}
|
|
5783
5804
|
//#endregion
|
|
5784
5805
|
//#region src/version.ts
|
|
5785
|
-
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.
|
|
5806
|
+
const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.51";
|
|
5786
5807
|
//#endregion
|
|
5787
5808
|
//#region src/fast-mode-defaults.ts
|
|
5788
5809
|
/**
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "dsh-codex-connect",
|
|
3
3
|
"displayName": "Codex Connect",
|
|
4
4
|
"description": "ChatGPT OAuth and Codex models for DeepSeek Harness.",
|
|
5
|
-
"version": "0.1.0-alpha.4.
|
|
5
|
+
"version": "0.1.0-alpha.4.51",
|
|
6
6
|
"author": "Frank Song",
|
|
7
7
|
"contributors": [
|
|
8
8
|
"Yan-Zero (original dsh-codex author)"
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"diff": "^9.0.0",
|
|
214
214
|
"eslint": "^10.10.0",
|
|
215
215
|
"immer": "^10.1.1",
|
|
216
|
-
"katex": "^0.
|
|
216
|
+
"katex": "^0.18.9",
|
|
217
217
|
"jsdom": "29.1.1",
|
|
218
218
|
"mdast-util-from-markdown": "^2.0.3",
|
|
219
219
|
"mdast-util-gfm": "^3.0.0",
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
"react": "^18.2.0",
|
|
232
232
|
"react-dom": "^18.2.0",
|
|
233
233
|
"shiki": "^4.3.1",
|
|
234
|
-
"simple-icons": "16.
|
|
234
|
+
"simple-icons": "16.32.0",
|
|
235
235
|
"tsdown": "^0.23.0",
|
|
236
236
|
"typescript": "^5.9.3",
|
|
237
237
|
"typescript-eslint": "^8.69.0",
|