dsh-doublecheck 0.9.1 → 0.9.2
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 +6 -0
- package/README.es.md +2 -1
- package/README.hi.md +2 -1
- package/README.md +2 -1
- package/README.pt.md +2 -1
- package/README.zh.md +2 -1
- package/lib/guard/command.js +4 -1
- package/package.json +17 -17
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to dsh-doublecheck are recorded here, newest first.
|
|
4
4
|
|
|
5
|
+
## [0.9.2] - 2026-09-01
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Align the devDependency pins to the published dsh `0.1.2-alpha.3` line (11 `@deepseek-ai/dsh-*` packages) and align `cordis`/`schemastery` to `^4.0.2`/`^3.18.2`. The durable-write gate behavior is unchanged on `0.1.2-alpha.3` (`Session.append` still cannot stamp the `ignorable` envelope); the five-language READMEs record the alpha.3 fact.
|
|
10
|
+
|
|
5
11
|
## [0.9.1] - 2026-08-30
|
|
6
12
|
|
|
7
13
|
### Fixed
|
package/README.es.md
CHANGED
|
@@ -223,7 +223,8 @@ El CLI solo serializa el `GateState` ya asentado — nunca vuelve a ejecutar la
|
|
|
223
223
|
|
|
224
224
|
## Limitaciones conocidas
|
|
225
225
|
|
|
226
|
-
- **Escrituras durables.** `/doublecheck on\|off` → `doublecheck/state` y `/gate run` → `doublecheck/gate` necesitan la superficie de append `ignorable` del host (post-rc.6 hasta `0.1.1-rc.2`). En hosts sin esa superficie (rc.6/rc.8 y `0.1.2-alpha.1`, que eliminó el sobre), las escrituras se omiten y el interruptor queda en proceso.
|
|
226
|
+
- **Escrituras durables.** `/doublecheck on\|off` → `doublecheck/state` y `/gate run` → `doublecheck/gate` necesitan la superficie de append `ignorable` del host (post-rc.6 hasta `0.1.1-rc.2`). En hosts sin esa superficie (rc.6/rc.8 y `0.1.2-alpha.1`, que eliminó el sobre — `0.1.2-alpha.3` restaura el campo solo para compatibilidad de lectura de logs almacenados y aún no puede estamparlo), las escrituras se omiten y el interruptor queda en proceso.
|
|
227
|
+
0.1.2-alpha.3 (adaptado el 2026-09-01): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia.
|
|
227
228
|
- **Interfaces opcionales.** El espacio de ajustes `doublecheck.gate` se registra solo cuando el servicio de ajustes está montado; la línea de modo plan de `/gate status` lee el `ctx.planMode` opcional (muestra `unknown` sin él); la revisión adversarial necesita `ctx.subagents`; la verificación necesita `workflowEngine`.
|
|
228
229
|
- **Degradación local.** `gate.review.engine: auto` degrada al revisor local cuando dsh-auto-review está ausente o no tiene registros de veredicto en esta sesión — el informe nombra la razón en lugar de inventar un veredicto.
|
|
229
230
|
- **La evidencia dsh-eval se basa en archivos.** El motor de evaluación de dsh-auto-review (`dsh-eval`) escribe sus resultados de regresión de prompt / estrés / equidad en un archivo de informe del espacio de trabajo, no en el registro de sesión. `gate.tests.evalReports.enabled` pliega ese archivo (desactivado por defecto; salta cuando está ausente) y los recuentos pliegados viajan en el registro duradero `doublecheck/gate` para que una ejecución asentada siga siendo reproducible.
|
package/README.hi.md
CHANGED
|
@@ -223,7 +223,8 @@ CLI केवल पहले से स्थापित `GateState` को
|
|
|
223
223
|
|
|
224
224
|
## ज्ञात सीमाएँ
|
|
225
225
|
|
|
226
|
-
- **टिकाऊ लेखन।** `/doublecheck on\|off` → `doublecheck/state` और `/gate run` → `doublecheck/gate` को host की `ignorable` append सतह (rc.6 के बाद से `0.1.1-rc.2` तक) चाहिए। उस सतह के बिना hosts (rc.6/rc.8 और `0.1.2-alpha.1`, जिसने envelope हटा दिया) पर लेखन छोड़ दिया जाता है और स्विच प्रक्रिया-स्थानीय रहता है।
|
|
226
|
+
- **टिकाऊ लेखन।** `/doublecheck on\|off` → `doublecheck/state` और `/gate run` → `doublecheck/gate` को host की `ignorable` append सतह (rc.6 के बाद से `0.1.1-rc.2` तक) चाहिए। उस सतह के बिना hosts (rc.6/rc.8 और `0.1.2-alpha.1`, जिसने envelope हटा दिया — `0.1.2-alpha.3` केवल संग्रहीत-लॉग पठन संगतता के लिए फ़ील्ड बहाल करता है और अभी भी स्टैम्प नहीं कर सकता) पर लेखन छोड़ दिया जाता है और स्विच प्रक्रिया-स्थानीय रहता है।
|
|
227
|
+
0.1.2-alpha.3 (2026-09-01 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है।
|
|
227
228
|
- **वैकल्पिक इंटरफ़ेस।** `doublecheck.gate` सेटिंग्स नेमस्पेस केवल तब पंजीकृत होता है जब सेटिंग्स सेवा माउंट हो; `/gate status` की प्लान-मोड पंक्ति वैकल्पिक `ctx.planMode` पढ़ती है (इसके बिना `unknown` दिखाती है); प्रतिकूल समीक्षा को `ctx.subagents` चाहिए; सत्यापन को `workflowEngine` चाहिए।
|
|
228
229
|
- **स्थानीय अवनति।** जब dsh-auto-review अनुपस्थित हो या इस सत्र में उसके कोई निर्णय रिकॉर्ड न हों, तो `gate.review.engine: auto` स्थानीय समीक्षक पर घट जाता है — रिपोर्ट निर्णय गढ़ने के बजाय कारण बताती है।
|
|
229
230
|
- **dsh-eval साक्ष्य फ़ाइल-आधारित है।** dsh-auto-review का मूल्यांकन इंजन (`dsh-eval`) अपने prompt-regression / stress / fairness परिणाम कार्यक्षेत्र रिपोर्ट फ़ाइल में लिखता है, सत्र लॉग में नहीं। `gate.tests.evalReports.enabled` उस फ़ाइल को मोड़ता है (डिफ़ॉल्ट रूप से बंद; अनुपस्थित होने पर छोड़ देता है) और मोड़ी गई गणनाएँ टिकाऊ `doublecheck/gate` रिकॉर्ड पर चलती हैं, ताकि तयशुदा रन फिर भी रीप्ले हो सके।
|
package/README.md
CHANGED
|
@@ -224,7 +224,8 @@ The CLI only serializes the already-settled `GateState` — it never re-runs the
|
|
|
224
224
|
|
|
225
225
|
## Known limitations
|
|
226
226
|
|
|
227
|
-
- **Durable writes.** `/doublecheck on\|off` → `doublecheck/state` and `/gate run` → `doublecheck/gate` ride the host's `ignorable` append surface (post-rc.6 through `0.1.1-rc.2`). On hosts without that surface (rc.6/rc.8, and `0.1.2-alpha.1
|
|
227
|
+
- **Durable writes.** `/doublecheck on\|off` → `doublecheck/state` and `/gate run` → `doublecheck/gate` ride the host's `ignorable` append surface (post-rc.6 through `0.1.1-rc.2`). On hosts without that surface (rc.6/rc.8, and `0.1.2-alpha.1`, which removed the envelope — `0.1.2-alpha.3` restores the field for stored-log read compatibility only and still cannot stamp it), the writes are skipped and the switch stays process-local.
|
|
228
|
+
0.1.2-alpha.3 (adapted 2026-09-01): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged.
|
|
228
229
|
- **Optional seams.** The `doublecheck.gate` settings namespace registers only when the settings service is mounted; the `/gate status` plan-mode line reads the optional `ctx.planMode` (shows `unknown` without it); the adversary review needs `ctx.subagents`; verification needs `workflowEngine`.
|
|
229
230
|
- **Local degrade.** `gate.review.engine: auto` degrades to the local reviewer when dsh-auto-review is absent or has no verdict records this session — the report names the reason instead of inventing a verdict.
|
|
230
231
|
- **dsh-eval evidence is file-based.** The dsh-auto-review eval engine (`dsh-eval`) writes its prompt-regression / stress / fairness results to a workspace report file, not the session log. `gate.tests.evalReports.enabled` folds that file (off by default; skips when absent) and the folded counts ride the durable `doublecheck/gate` record so a settled run still replays.
|
package/README.pt.md
CHANGED
|
@@ -223,7 +223,8 @@ O CLI apenas serializa o `GateState` já assentado — nunca reexecuta a porta d
|
|
|
223
223
|
|
|
224
224
|
## Limitações conhecidas
|
|
225
225
|
|
|
226
|
-
- **Escritas duráveis.** `/doublecheck on\|off` → `doublecheck/state` e `/gate run` → `doublecheck/gate` precisam da superfície de append `ignorable` do host (pós-rc.6 até `0.1.1-rc.2`). Em hosts sem essa superfície (rc.6/rc.8 e `0.1.2-alpha.1`, que removeu o envelope), as escritas são omitidas e o interruptor permanece em processo.
|
|
226
|
+
- **Escritas duráveis.** `/doublecheck on\|off` → `doublecheck/state` e `/gate run` → `doublecheck/gate` precisam da superfície de append `ignorable` do host (pós-rc.6 até `0.1.1-rc.2`). Em hosts sem essa superfície (rc.6/rc.8 e `0.1.2-alpha.1`, que removeu o envelope — `0.1.2-alpha.3` restaura o campo apenas para compatibilidade de leitura de logs armazenados e ainda não consegue estampá-lo), as escritas são omitidas e o interruptor permanece em processo.
|
|
227
|
+
0.1.2-alpha.3 (adaptado em 2026-09-01): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda.
|
|
227
228
|
- **Interfaces opcionais.** O namespace de configurações `doublecheck.gate` é registrado apenas quando o serviço de configurações está montado; a linha de modo plano de `/gate status` lê o `ctx.planMode` opcional (mostra `unknown` sem ele); a revisão adversarial precisa de `ctx.subagents`; a verificação precisa de `workflowEngine`.
|
|
228
229
|
- **Degradação local.** `gate.review.engine: auto` degrada para o revisor local quando o dsh-auto-review está ausente ou não tem registros de veredicto nesta sessão — o relatório nomeia a razão em vez de inventar um veredicto.
|
|
229
230
|
- **A evidência dsh-eval é baseada em arquivos.** O motor de avaliação do dsh-auto-review (`dsh-eval`) grava seus resultados de regressão de prompt / estresse / equidade em um arquivo de relatório do espaço de trabalho, não no registro de sessão. `gate.tests.evalReports.enabled` dobra esse arquivo (desativado por padrão; pula quando ausente) e as contagens dobradas viajam no registro durável `doublecheck/gate` para que uma execução assentada ainda seja reproduzível.
|
package/README.zh.md
CHANGED
|
@@ -223,7 +223,8 @@ CLI 只序列化已定的 `GateState` —— 它从不重新运行四阶段门
|
|
|
223
223
|
|
|
224
224
|
## 已知限制
|
|
225
225
|
|
|
226
|
-
- **持久写入。** `/doublecheck on\|off` → `doublecheck/state` 与 `/gate run` → `doublecheck/gate` 需要宿主的 `ignorable` 追加接口(rc.6 之后至 `0.1.1-rc.2`)。在无此接口的宿主上(rc.6/rc.8,以及移除该信封的 `0.1.2-alpha.1
|
|
226
|
+
- **持久写入。** `/doublecheck on\|off` → `doublecheck/state` 与 `/gate run` → `doublecheck/gate` 需要宿主的 `ignorable` 追加接口(rc.6 之后至 `0.1.1-rc.2`)。在无此接口的宿主上(rc.6/rc.8,以及移除该信封的 `0.1.2-alpha.1`——`0.1.2-alpha.3` 仅恢复存量日志读取兼容字段、仍无法盖章),写入被跳过、开关保持进程内状态。
|
|
227
|
+
0.1.2-alpha.3(2026-09-01 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。
|
|
227
228
|
- **可选接口。** `doublecheck.gate` 设置命名空间仅在挂载设置服务时注册;`/gate status` 的计划模式行读取可选的 `ctx.planMode`(没有则显示 `unknown`);对抗式评审需要 `ctx.subagents`;验证需要 `workflowEngine`。
|
|
228
229
|
- **本地降级。** 当 dsh-auto-review 缺失或本会话没有裁决记录时,`gate.review.engine: auto` 会降级到本地评审者——报告会写明原因,而不是捏造裁决。
|
|
229
230
|
- **dsh-eval 证据基于文件。** dsh-auto-review 评测引擎(`dsh-eval`)把其 prompt 回归 / 压测 / 公平性结果写入工作区报告文件,而非会话日志。`gate.tests.evalReports.enabled` 折叠该文件(默认关闭;缺失时跳过),折叠出的计数随持久 `doublecheck/gate` 记录保存,使已定的运行仍可重放。
|
package/lib/guard/command.js
CHANGED
|
@@ -22,7 +22,10 @@ import { PROSE } from "./prose.js";
|
|
|
22
22
|
* Detected once per process on a detached probe session: hosts without the
|
|
23
23
|
* surface (rc.6/rc.8) accept and ignore the options bag, 0.1.2-alpha.1
|
|
24
24
|
* removed the ignorable envelope entirely (42dc2a46c2) and would refuse the
|
|
25
|
-
* unknown type on restore, and
|
|
25
|
+
* unknown type on restore, and 0.1.2-alpha.2 restores the envelope field
|
|
26
|
+
* for stored-log read compatibility only — its append third argument is a
|
|
27
|
+
* `SurfaceIntent` for surface events, so it still cannot stamp the marker.
|
|
28
|
+
* Writing the durable state event unmarked would
|
|
26
29
|
* make the session log unreadable to first-party readers — so the switch
|
|
27
30
|
* command falls back to in-memory switching on any host where the probe does
|
|
28
31
|
* not come back stamped.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-doublecheck",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Delivery quality gate for DeepSeek Harness: grill the requirements, test the implementation, prove the delivery, and gate the handoff with a deliverable/rework decision.",
|
|
5
5
|
"packageManager": "pnpm@11.7.0",
|
|
6
6
|
"repository": {
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
],
|
|
112
112
|
"compatibility": {
|
|
113
113
|
"dshVersions": [
|
|
114
|
-
"0.1.
|
|
114
|
+
"0.1.2-alpha.3"
|
|
115
115
|
]
|
|
116
116
|
},
|
|
117
117
|
"capability": {
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
}
|
|
129
129
|
},
|
|
130
130
|
"peerDependencies": {
|
|
131
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
131
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
132
132
|
"@deepseek-ai/dsh-agent": ">=0.1.0-rc.8 <0.2.0",
|
|
133
133
|
"@deepseek-ai/dsh-commands": ">=0.1.0-rc.8 <0.2.0",
|
|
134
134
|
"@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
|
|
@@ -137,27 +137,27 @@
|
|
|
137
137
|
"@deepseek-ai/dsh-session-projection": ">=0.1.1-rc.2 <0.2.0",
|
|
138
138
|
"@deepseek-ai/dsh-skill": ">=0.1.0-rc.8 <0.2.0",
|
|
139
139
|
"@deepseek-ai/dsh-tools": ">=0.1.0-rc.8 <0.2.0",
|
|
140
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
140
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
141
141
|
},
|
|
142
142
|
"dependencies": {
|
|
143
143
|
"typescript": "^5.7.0",
|
|
144
144
|
"zod": "^4.4.3"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
147
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
148
148
|
"@deepseek-ai/cordis-plugin-loader": "1.0.2",
|
|
149
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
150
|
-
"@deepseek-ai/dsh-commands": "0.1.
|
|
151
|
-
"@deepseek-ai/dsh-fs": "0.1.
|
|
152
|
-
"@deepseek-ai/dsh-llm": "0.1.
|
|
153
|
-
"@deepseek-ai/dsh-session": "0.1.
|
|
154
|
-
"@deepseek-ai/dsh-session-projection": "0.1.
|
|
155
|
-
"@deepseek-ai/dsh-skill": "0.1.
|
|
156
|
-
"@deepseek-ai/dsh-subagent": "0.1.
|
|
157
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.
|
|
158
|
-
"@deepseek-ai/dsh-tools": "0.1.
|
|
159
|
-
"@deepseek-ai/dsh-workflow": "0.1.
|
|
160
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
149
|
+
"@deepseek-ai/dsh-agent": "0.1.2-alpha.3",
|
|
150
|
+
"@deepseek-ai/dsh-commands": "0.1.2-alpha.3",
|
|
151
|
+
"@deepseek-ai/dsh-fs": "0.1.2-alpha.3",
|
|
152
|
+
"@deepseek-ai/dsh-llm": "0.1.2-alpha.3",
|
|
153
|
+
"@deepseek-ai/dsh-session": "0.1.2-alpha.3",
|
|
154
|
+
"@deepseek-ai/dsh-session-projection": "0.1.2-alpha.3",
|
|
155
|
+
"@deepseek-ai/dsh-skill": "0.1.2-alpha.3",
|
|
156
|
+
"@deepseek-ai/dsh-subagent": "0.1.2-alpha.3",
|
|
157
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.2-alpha.3",
|
|
158
|
+
"@deepseek-ai/dsh-tools": "0.1.2-alpha.3",
|
|
159
|
+
"@deepseek-ai/dsh-workflow": "0.1.2-alpha.3",
|
|
160
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
161
161
|
"@eslint/js": "^9.30.0",
|
|
162
162
|
"@types/node": "^22.15.0",
|
|
163
163
|
"@vitest/coverage-v8": "^3.2.0",
|