dsh-gokifu-compact 1.11.6 → 1.11.7

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 CHANGED
@@ -1,5 +1,44 @@
1
1
  # 更新记录
2
2
 
3
+ ## 1.11.7 — 2026-10-31
4
+
5
+ ### 真实测试与门禁都不再「靠输出猜」
6
+
7
+ **问题**:两个门禁的判据都在**猜**,而不是**问退出码**。
8
+
9
+ 1. `test/all.mjs` 用正则 `/failed|✗/` 扫子进程输出判失败 —— 测试名里可能**字面含 `✗`**
10
+ (例如 `✓ S10c-3 manifestError 进 ✗ 详情…`)⇒ **把绿当红**;反过来,子进程真失败但输出没命中关键字 ⇒ **漏报**。
11
+ 2. `test/real-fold-trigger.mjs` 无论 4/5 还是 5/5 **都 exit 0** ⇒ 它作为门禁时几乎没有意义。
12
+
13
+ **改法**
14
+
15
+ | 文件 | 变更 |
16
+ |---|---|
17
+ | `test/all.mjs` | 删掉 `/failed\|✗/` 正则判据,**只按子进程退出码**;**超时 / 起不来 / 无退出码一律算红**(不许当成「没输出=没事」);导出 `STEPS` / `stepPassed` / `runStep` / `allPassed` 供单测直测 |
18
+ | `test/real-fold-trigger.mjs` | **加退出码**:4/5 ⇒ `exit 1`;依赖未提取(跑不了)⇒ `exit 2` 表示「未运行」而不是「通过」 |
19
+ | 同上 · ⑤ 溢出自救 | 没有可压内容时记 **N/A**(不计失败)—— 先注入新内容让它有东西可压;⑤ 判红不再是「环境没给料」的假失败 |
20
+ | 同上 · usage 对账 | 打印模型返回的 `usage`(**prompt / completion / total / calls**)并累加落盘,真实调用的成本可对账 |
21
+ | 同上 · 预清理 | 跑前**清空 `graphs-trigger`** —— 旧状态会让 ② 的 growth gate 误拦,**第二次跑必红** |
22
+
23
+ **新增 `test/test-gate.test.mjs`(5 条)**:`exit 0` 但输出含 `✗` **不得**误红 / 非 0 **必红** /
24
+ 起不来 · 超时 **必红** / 4 通过 1 失败 **必败** / 结构回归(`STEPS` 与导出面)。
25
+
26
+ **变异自检**:`stepPassed` 恒 `true` ⇒ TG-2/TG-3 红;判据退回正则 ⇒ TG-5 红。
27
+
28
+ ### 验证
29
+
30
+ - 全量:**486 passed / 0 skipped / 0 failed**(37 个测试文件;481 + 5)
31
+ - `node test/all.mjs` → **exit 0**(5 个步骤全绿:单测 / 挂载校验 / 真实模块 / 真实事务 / 性能基准)
32
+ - `node test/real-fold-trigger.mjs` → **5/5 exit 0**,usage 已打印
33
+ - `verify-install` **16/16** · `bench 2000` **351 tokens**
34
+ - `npm pack --dry-run --json`:**71 文件**(数量不变;`test/` 不进包)
35
+
36
+ **未验证**
37
+
38
+ - `real-fold-trigger` 依赖**真实模型**(走 magpie `127.0.0.1:3425`)与已提取的模块目录;缺依赖时它会 **exit 2(未运行)**,
39
+ 这是有意的语义 —— 但也就意味着**它在别的机器上可能根本不跑**,不能当「任何环境都能复现」的证据。
40
+ - `all.mjs` 的「超时必红」用 300s 默认超时,**没有真的等满 300s 去验证**(用的是注入假 `exec` 的单测)。
41
+
3
42
  ## 1.11.6 — 2026-10-31
4
43
 
5
44
  ### tier-2 解耦:checkpoint 的常驻成本不再随 fold 次数线性涨
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # dsh-GOkifu-compact
2
2
 
3
- > 当前版本:**`1.11.6`** · npm [`dsh-gokifu-compact`](https://www.npmjs.com/package/dsh-gokifu-compact) · [GitHub Releases](https://github.com/MYCF711/dsh-GOkifu-compact/releases) · 更新记录见 [CHANGELOG.md](CHANGELOG.md)
3
+ > 当前版本:**`1.11.7`** · npm [`dsh-gokifu-compact`](https://www.npmjs.com/package/dsh-gokifu-compact) · [GitHub Releases](https://github.com/MYCF711/dsh-GOkifu-compact/releases) · 更新记录见 [CHANGELOG.md](CHANGELOG.md)
4
4
 
5
5
  **DSH 的棋谱式上下文压缩后端 —— 把「历史 → 一段摘要」换成「历史 → 可复盘的棋谱 DAG + 每步只有 351 tokens 的热清单」。**
6
6
 
@@ -8,7 +8,7 @@
8
8
  热清单 351 tokens (2000 边合成夹具 · L5 降级档 · 2026-10-30/10-31 两次实测同值;旧版全量 28,800)
9
9
  失败保留 8 / 8 (历史口径 †;官方 8 段模板 4.67 / 8)
10
10
  清单开销 未复现/待测 (原载 0.2% = 历史单会话 v1.3.1 后实测;无复跑命令、无对照组;源 evidence/真实计费核对.md)
11
- 验证 481 项单测(0 skipped) · 真实包 8/8 † · 真实进程 fold 3~6/6 †
11
+ 验证 486 项单测(0 skipped) · 真实包 8/8 † · 真实进程 fold 3~6/6 †
12
12
  ```
13
13
 
14
14
  GO = 围棋,kifu = 棋谱,compact = 压缩。一局棋下完,棋谱上不只有落子顺序,还有每一手的评语。
@@ -1,31 +1,51 @@
1
1
  {
2
- "generatedAt": "2026-10-28T07:54:08.545Z",
2
+ "generatedAt": "2026-10-31T07:57:46.306Z",
3
3
  "model": "group/deepseek-v4.1-flash1017",
4
4
  "window": 200000,
5
5
  "threshold": 90000,
6
6
  "results": [
7
7
  {
8
8
  "step": "below-threshold",
9
- "folded": false
9
+ "folded": false,
10
+ "status": "ok"
10
11
  },
11
12
  {
12
13
  "step": "over-threshold",
13
- "folded": false,
14
+ "folded": true,
14
15
  "before": 25,
15
- "after": 25,
16
- "summaryChars": 0
16
+ "after": 6,
17
+ "summaryChars": 368,
18
+ "status": "ok"
17
19
  },
18
20
  {
19
21
  "step": "growth-gate",
20
- "folded": false
22
+ "folded": false,
23
+ "status": "ok"
21
24
  },
22
25
  {
23
26
  "step": "second-fold",
24
- "folded": false
27
+ "folded": true,
28
+ "status": "ok"
25
29
  },
26
30
  {
27
31
  "step": "overflow",
28
- "folded": true
32
+ "folded": true,
33
+ "injected": 6,
34
+ "compressibleTail": 7,
35
+ "status": "ok"
29
36
  }
30
- ]
37
+ ],
38
+ "summary": {
39
+ "ok": 5,
40
+ "na": 0,
41
+ "fail": 0,
42
+ "total": 5
43
+ },
44
+ "usage": {
45
+ "calls": 3,
46
+ "prompt": 1534,
47
+ "completion": 2738,
48
+ "total": 4272,
49
+ "empty": 0
50
+ }
31
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-gokifu-compact",
3
- "version": "1.11.6",
3
+ "version": "1.11.7",
4
4
  "description": "DSH context-compression backend with a go game record (kifu) DAG: node = position, edge = attempted move + result. Incremental fold (each span summarized once), failure memory that survives compaction, transposition detection (chess-engine style), and a tiny hot ledger rebuilt every step.",
5
5
  "repository": {
6
6
  "type": "git",