dsh-vibe-math 2.8.0 → 2.8.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/README.en.md CHANGED
@@ -9,7 +9,7 @@ English | [中文](README.md)
9
9
  > A set of **agent presets** running inside **DeepSeek Harness** (`vibe-math-v2` / `vibe-math-v3` / `vibe-math-v4` / `vibe-math-v5`),
10
10
  > which use multi-agent collaboration to automatically solve mathematical problems and perform multi-agent cross-verification of the conclusions. All four presets share the foundational capabilities of "**checkpoint resume**,
11
11
  > **mid-run manual intervention**, **progress reporting**, and **natural-language driving**", but adopt four generations of different solving architectures:
12
- > **💡 All four architectures are peers** — `vibe-math-v2` and `vibe-math-v3` are the **classic** architectures (mature, usable, actively maintained); `vibe-math-v4` is the "resident self-organizing collaborative research" architecture and `vibe-math-v5` is the latest "institute system" (both labelled experimental); choose according to your actual needs (see "How to choose" below).
12
+ > **💡 v4/v5 first** — `vibe-math-v4` (the "resident self-organizing collaborative research" architecture) and `vibe-math-v5` (the latest "institute system") are the **current focus of maintenance**; `vibe-math-v2` and `vibe-math-v3` are the **classic / early** architectures, now **architecturally frozen** and receiving **compatibility-only** maintenance (new capabilities land in v4/v5). All four still install and work; see [`docs/maintenance-policy.md`](docs/maintenance-policy.md). Choose according to your actual needs (see "How to choose" below).
13
13
  >
14
14
  > - **`vibe-math-v2` (probability-driven · JSON data layer) · classic**: `qs.json` problem list + `Propos/` proposition library + probability-driven scheduling + code heuristic scheduling;
15
15
  > - **`vibe-math-v3` (third generation · paper-style md + planner agent + method library) · classic**: all knowledge is stored and extended in **Markdown paper/research-report form** (`Problems/` problem list + dependencies + source motivation, `Progress/` research log, `Propos/` proposition library, `Methods/` general theory invention library, `Verified/` absolutely trustworthy); before scheduling, the **planner agent** autonomously draws up a plan for the next N steps; theories/frameworks/tools/methods/ideas invented during solving are distilled by the **Method Keeper** into a reusable method system (as in inventing group theory or functional analysis).
@@ -628,7 +628,7 @@ Common controls: `vibe_v5_configure` (configure first) → `vibe_v5_start` (star
628
628
  - **The persona source text of the four presets**: [`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md) (the prompts the main agent actually receives: which tools, which parameters, which slash subcommands; generated by `audit-persona-surface.test.mjs` and shipped with the package)
629
629
  - **Lean formal verification (a contract shared by the four architectures)**: [`docs/formal-verification.md`](docs/formal-verification.md)
630
630
  - **Final paper (a contract shared by the four architectures)**: [`docs/final-paper.md`](docs/final-paper.md) (the five parameters plus `paperEditor` on v4/v5, the "paper phase before the run is marked complete" ordering, the `Paper/<id>/` artifacts and the nine-section skeleton, LaTeX detection with repair-then-degrade, the v4/v5 team co-authoring flow and the v5 office-consultation rule)
631
- - **Test timing baseline and parallel run recipes**: [`docs/test-timing.md`](docs/test-timing.md) (`node tests/run-tests.mjs` runs **every suite AND every probe** in parallel: `TOTAL 105 (44 suites + 61 probes/variants — JOB counts, not file counts); the authority is `node tests/run-tests.mjs --counts` (JOB counts, not file counts), checked by [`tests/audit-readme-counts.mjs`](tests/audit-readme-counts.mjs); which 69 of the `tests/*.mjs` files ship in the package (17 suites + 52 probe/script files) and which are repository-only is in §1.1 of that document; every runner prints its elapsed time/speedup so the next strategy can be chosen)
631
+ - **Test timing baseline and parallel run recipes**: [`docs/test-timing.md`](docs/test-timing.md) (`node tests/run-tests.mjs` runs **every suite AND every probe** in parallel: `TOTAL 106 (44 suites + 62 probes/variants — JOB counts, not file counts); the authority is `node tests/run-tests.mjs --counts` (JOB counts, not file counts), checked by [`tests/audit-readme-counts.mjs`](tests/audit-readme-counts.mjs); which 71 of the `tests/*.mjs` files ship in the package (18 suites + 53 probe/script files) and which are repository-only is in §1.1 of that document; every runner prints its elapsed time/speedup so the next strategy can be chosen)
632
632
  - **Static prompt-surface consistency (persona ↔ tool registry ↔ slash command hint/usage)**: [`audit-persona-surface.test.mjs`](tests/audit-persona-surface.test.mjs) (260 assertions, and generates [`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md) for manual review) + [`audit-persona-sensitivity.mjs`](tests/audit-persona-sensitivity.mjs) (16 sensitivity probes) — guarding "every registered tool must appear in the persona / every name in the persona must really be registered / the `prefix` and `text` blocks must match line by line / hint, usage, and the actual branch must agree in all three places"
633
633
  - **Mandatory checklist for a full review**: [`AUDIT-CHECKLIST.md`](docs/AUDIT-CHECKLIST.md) (this repository's mandatory audit process; §1.9 specifically checks "whether the tool parameter schema can accommodate them")
634
634
  - **Prompt/interaction invariants (all four sets together, re-checkable in one command)**: [`audit-prompt-invariants.mjs`](tests/audit-prompt-invariants.mjs) (157 assertions) — encoding, one by one, "the classes of prompt/tool-surface defects that have really occurred historically" as static invariants (abbreviated tool names, projecting a fidelity defect as 0, `defect` written only in the prompt but not implemented, a receipt contract missing `defect`, passing without a note, wrong field names, the `off` tier still being able to write state in its receipt, uncertain corpora, missing probes, **a tool's closed schema that cannot accommodate the parameters in its own documentation**, **keys that the schema declares at the parameter level but silently drops**). Adding `--self-probe` injects these defect shapes in memory and requires the corresponding invariants to **turn red** while the unmutated control run **stays green** (5/5); the script itself additionally carries six self-checks X5–X8b (the comment scanner must recognize regex literals — including regexes **after a keyword** such as `return /…/` — `//` inside strings must be preserved, stripping comments must not change line structure, and the parse-level criterion that "the four sets of source, with comments stripped, must still parse under `node --check`")
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  > 运行在 **DeepSeek Harness** 内的一组 **agent preset**(`vibe-math-v2` / `vibe-math-v3` / `vibe-math-v4` / `vibe-math-v5`),
10
10
  > 用多代理协作自动求解数学问题并对结论做多代理交叉验证。四个预设共享「**断点续跑**、
11
11
  > **中途人工干预**、**进度汇报**、**自然语言驱动**」底座能力,但采用四代不同的求解架构:
12
- > **💡 四个架构同级**——`vibe-math-v2` 与 `vibe-math-v3` 是**经典**架构(成熟可用、持续维护),`vibe-math-v4` 是「常驻自组织合作研究」架构、`vibe-math-v5` 是最新的「研究所体系」(两者均标注为实验性);根据你的实际需求自行选择(详见下方「怎么选」)。
12
+ > **💡 v4/v5 优先**——`vibe-math-v4`(「常驻自组织合作研究」架构)与 `vibe-math-v5`(最新的「研究所体系」)是**当前主要维护方向**;`vibe-math-v2` 与 `vibe-math-v3` 是**经典/早期架构**,已**成熟定型**,今后只做**适配兼容**维护(新能力只进 v4/v5)。四套都随包安装、可正常使用;详见 [`docs/maintenance-policy.md`](docs/maintenance-policy.md)。根据你的实际需求自行选择(详见下方「怎么选」)。
13
13
  >
14
14
  > - **`vibe-math-v2`(概率驱动 · JSON 数据层)· 经典**:`qs.json` 问题清单 + `Propos/` 命题库 + 概率驱动调度 + 代码启发式调度;
15
15
  > - **`vibe-math-v3`(第三代 · 论文式 md + 规划代理 + 方法库)· 经典**:全部知识以 **Markdown 论文/研究报告式** 存储与续写(`Problems/` 问题清单+依赖+来源动机、`Progress/` 研究日志、`Propos/` 命题库、`Methods/` 通用理论发明库、`Verified/` 绝对可信);调度前由**规划代理**自主制定接下来 N 步计划;解决过程中发明的理论/框架/工具/方法/思想由 **Method Keeper** 沉淀为可复用方法体系(如发明群论、泛函分析那样)。
@@ -628,7 +628,7 @@ v3 与 v2 同一开关、同一时序(严格收口;**在调度器停止之
628
628
  - **四个预设的 persona 原文**:[`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md)(主代理实际收到的提示词:有哪些工具、哪些参数、哪些斜杠子命令;由 `audit-persona-surface.test.mjs` 生成,随包发布)
629
629
  - **Lean 形式化验证(四架构共用契约)**:[`docs/formal-verification.md`](docs/formal-verification.md)
630
630
  - **最终论文(四架构共用契约)**:[`docs/final-paper.md`](docs/final-paper.md)(五个参数与 v4/v5 的 `paperEditor`、收口顺序"先论文后完成"、`Paper/<id>/` 产物与 9 节骨架、LaTeX 检测顺序与"先修复后降级"、v4/v5 团队合写流程与 v5 所办咨询规则)
631
- - **测试耗时基线与并行跑法**:[`docs/test-timing.md`](docs/test-timing.md)(`node tests/run-tests.mjs` 并行跑**全部套件 + 全部探针**:`TOTAL 105`(44 套件 + 61 探针/变体,**作业计数**(job count),不是文件计数);**这些数字必须派生**:`node tests/run-tests.mjs --counts` 是权威来源(**作业计数**,不是文件计数),并由 [`tests/audit-readme-counts.mjs`](tests/audit-readme-counts.mjs) 校验本页与另两份文档;随包发布的是 `files[]` 里的 69 个 `tests/*.mjs`(17 个套件 + 52 个探针/脚本)(文件计数),其余仅开发检出可见,清单见该文档 §1.1;每个 runner 都会打印耗时/加速比供下次选策略)
631
+ - **测试耗时基线与并行跑法**:[`docs/test-timing.md`](docs/test-timing.md)(`node tests/run-tests.mjs` 并行跑**全部套件 + 全部探针**:`TOTAL 106`(44 套件 + 62 探针/变体,**作业计数**(job count),不是文件计数);**这些数字必须派生**:`node tests/run-tests.mjs --counts` 是权威来源(**作业计数**,不是文件计数),并由 [`tests/audit-readme-counts.mjs`](tests/audit-readme-counts.mjs) 校验本页与另两份文档;随包发布的是 `files[]` 里的 71 个 `tests/*.mjs`(18 个套件 + 53 个探针/脚本)(文件计数),其余仅开发检出可见,清单见该文档 §1.1;每个 runner 都会打印耗时/加速比供下次选策略)
632
632
  - **静态提示词面一致性(persona ↔ 工具注册表 ↔ 斜杠命令 hint/usage)**:[`audit-persona-surface.test.mjs`](tests/audit-persona-surface.test.mjs)(260 条断言,并生成 [`prompt-corpus-persona/persona-corpus.md`](prompt-corpus-persona/persona-corpus.md) 供人工复核)+ [`audit-persona-sensitivity.mjs`](tests/audit-persona-sensitivity.mjs)(16 条灵敏度探针)——守"注册的工具必须在 persona 里出现 / persona 里的名字必须真的注册 / `prefix` 与 `text` 两块逐行一致 / hint、usage、实际分支三处必须一致"
633
633
  - **全面检查必查清单**:[`AUDIT-CHECKLIST.md`](docs/AUDIT-CHECKLIST.md)(本仓库的强制审计流程;§1.9 专门查"工具参数 schema 收不收得下")
634
634
  - **提示词/交互不变式(四套一起,可一键复核)**:[`audit-prompt-invariants.mjs`](tests/audit-prompt-invariants.mjs)(157 条断言)——把"历史上真实发生过的提示词/工具面缺陷类别"逐条编码成静态不变式(缩写工具名、把忠实性缺陷投成 0、`defect` 只写在提示词里没实现、回执契约缺 `defect`、无 note 放行、字段名错、`off` 档回执仍能写状态、语料不确定、探针缺失、**工具的封闭 schema 收不下它自己文档里的参数**、**schema 声明了参数层却静默丢弃的键**)。加 `--self-probe` 会在内存里注入这些缺陷形状,要求对应不变式**变红**、未变异的对照跑**仍为绿**(5/5);脚本自身另带 X5–X8b 六条自检(注释扫描器必须认正则字面量——包括 `return /…/ ` 这种**关键字后面**的正则——字符串里的 `//` 必须保留、抹注释不改变行结构,以及"四套源码抹掉注释后仍必须能被 `node --check` 解析"这条解析级判据)
@@ -216,8 +216,8 @@ v2/v3/v4/v5 是**同构实现**(同一份契约、四份独立代码,刻意
216
216
  ② 建一个 `git worktree` 拿改动前的检出,同一套件在两种布局各跑一遍,归一化路径/临时目录/耗时后
217
217
  **逐行比对**(`_oneoff/layout-invariance.mjs`);③ 相对链接扫描 0 失效(`_oneoff/scan-links.mjs`)。
218
218
  - [ ] 讲"全套件 / 门禁 / 多少次全绿"时,是否区分了**随包发布面**与**仓库**?`package.json` 的 `files`
219
- 只发 `tests/` 的 **69** 项(**文件计数**;其中 `.test.mjs` **17** 个),完整门禁(`node tests/run-tests.mjs`,
220
- 当前 **105 项作业(job count)= 44 套件 + 61 探针/变体**,由 `node tests/run-tests.mjs --counts` 派生)只在开发检出里成立。两边的清单见
219
+ 只发 `tests/` 的 **71** 项(**文件计数**;其中 `.test.mjs` **18** 个),完整门禁(`node tests/run-tests.mjs`,
220
+ 当前 **106 项作业(job count)= 44 套件 + 62 探针/变体**,由 `node tests/run-tests.mjs --counts` 派生)只在开发检出里成立。两边的清单见
221
221
  `docs/test-timing.md` §1.1;发布物里的 runner 会把缺失/跳过项**打印出来**(不会静默少跑),
222
222
  所以"安装用户照文档跑得到全套件"这类说法必须避免。
223
223
  - [ ] **runner 本身也要跑一遍**:直接跑套件通过 ≠ 并行 runner 通过(2.3.13 就出现过
@@ -545,6 +545,11 @@ DSH 的 **agent preset 交付方式**在 0.1.6 → 0.1.7 之间换过一次,
545
545
  | **中断语义(SLV P3,task-14)** | "**宿主拒绝中断**"这条 `catch` 分支必须保持**具名失败**与**可行动指引**:`code='VIBE_MATH_INTERRUPT_FAILED'` + `next{tool='vibe_math_abort',hint}`(§19/D1 此前只覆盖"未知 child/空 childId/决策诊断")| **随包** `node tests/v2v3-interrupt.mutants.mjs`(**2/2** 具名红:v2/v3 各把产品里的 `VIBE_MATH_INTERRUPT_FAILED` 改名 ⇒ 对应 `★ [P3/v2]`/`★ [P3/v3]` 断言按名变红,实测 `"code":"VIBE_MATH_INTERRUPT_RENAMED"`);两套件各自 `node tests/math-computation-v2.test.mjs`/`-v3` 绿。**已知未覆盖**:P3 的"**调用方被丢弃**(中断后不再重试该调用)"属**宿主层行为**,随包套件不可观测 ⇒ 记为需真机 |
546
546
  | **临时目录卫生(task-12)** | 被杀死的套件会泄漏临时目录(实测 `%TEMP%` 顶层 24 万项、其中我们 24.5 万项)⇒ 门禁启动时清扫**陈旧**目录:仅 `os.tmpdir()` **顶层** + 前缀**从套件自动提取**(88 个)+ `mtime` 早于阈值(默认 6 h);并把临时根**优先指向 `D:\_tmp`**(`os.tmpdir()` 自动跟随 ⇒ 零产品改动)| **随包** `node scripts/clean-temp.mjs --self-test`(四条:新鲜目录绝不清理/陈旧且前缀匹配才清理/只匹配精确前缀/前缀表来自套件)+ `node tests/temp-hygiene.mutants.mjs`(**2/2** 具名红:去掉年龄阈值 ⇒"新鲜目录不得被删"按名红、去掉前缀判断 ⇒"只匹配精确前缀"按名红);`--dry-run` 实测"扫 160,923 项 ⇒ 计划 144,404 项" |
547
547
 
548
+ | **发布前检查(可执行化)** | 版本**三处一致**(`package.json`/lock 顶层/`packages[""]`)、当前版本的中英两份发布说明存在且**章节顺序符合模板**、两份都登记进 `files[]`、`compatNote` 提到当前版本、tarball **声明了但缺失 = 0**、开发专用文件(`.gitattributes`)**不随包**、包内**无 CRLF** | **随包** `node scripts/release-check.mjs`(对 2.8.0 实跑 `ALL CHECKS PASSED`,扫 179 个文本文件)+ `--self-test`(**15** 条)+ `node tests/release-check.mutants.mjs`(**4/4** 具名红:分别去掉版本一致性/章节数量/章节顺序/CRLF 扫描 ⇒ 对应自检**按名**变红)。发布后加 `--registry` 比对线上 `dist.shasum` 与本地 tarball |
549
+ | **v4 交付物必须说明编译结果** | 论文正文在**编译之前**组装,因此"局限与未决"里那两条依赖 `ps.compile` 的 bullet 只在**重入**时才有值 ⇒ 交付的 `paper.md`/`paper.tex` 必须**各自写明**"未检测到引擎(只产出 tex+md)"或"PDF 编译失败",且**恰好一次**(finalize 可重入 ⇒ 幂等;`.tex` 以注释插在 `\end{document}` 之前)| **随包** `node tests/v4-final-paper.test.mjs`(`★ [deliverable/v4] … (once each; md=1 tex=1)`)+ `node tests/v4-final-paper.mutants.mjs`(**3/3** 具名红:把中文说明置空 ⇒ 该断言按名红,实测 `md=0 tex=0`)|
550
+
551
+ | **维护方针(文档)** | `vibe-math-v4`/`vibe-math-v5` 是**主要维护方向**(新能力、新守卫、提示词强化、重构只落这两套);`vibe-math-v2`/`vibe-math-v3` 已**成熟定型**,只接受**适配兼容**改动:宿主适配、共享模块的正确性/安全修复、行为不变的回归修复。共享模块(`vibe-math-v{2,3,4,5}/math-computation.js` 等)是**四份复制型** ⇒ 修复必须**同批传播**且四份**字节一致**,否则 v2/v3 会在宿主升级后腐坏;**明显的正确性/安全缺陷无论落在哪套都修**("冻结"= 停止功能投资,不是放任缺陷)| **随包文档** `docs/maintenance-policy.md`(中英同页)+ `README.md`/`README.en.md` 各一行指引;`node scripts/release-check.mjs` 核对随包清单与 `files[]` 一致(声明了但缺失 = 0)|
552
+
548
553
  > **运行方式(本轮核实)**:`tests/run-tests.mjs:93-110` 收集 `tests/` 下**每一个** `.mjs`(仅跳过自身、`NEEDS_ARGS` 清单与 `replacedBare` 变体),因此 `audit-path-discipline.mjs` 是**门禁内的 probe**,不是"只能手动跑";未随包发布的守卫(见 `package.json#files` 的 tests 子集)在安装树里不可运行。
549
554
 
550
555
 
@@ -721,7 +726,7 @@ DSH 的 **agent preset 交付方式**在 0.1.6 → 0.1.7 之间换过一次,
721
726
  ### README/计数一致性(D1):数字必须**派生**,不许手打
722
727
 
723
728
  - **权威来源**:`node tests/run-tests.mjs --counts`(门禁自己那份 job 列表)+ `package.json#files`(随包 `tests/*.mjs` 数)。文档里的数字由 **`node scripts/update-doc-counts.mjs`** 生成(`--check` 只检查不改);新增测试文件会让守卫变红,**修法是跑一次 updater**,因此数字再也不可能被手打。
724
- - **计数(实测)**:`TOTAL 105`(44 套件 + 61 探针/变体,**作业计数/job count**,不是文件计数);随包 `tests/*.mjs` = 69(**文件计数**:17 个套件 + 52 个探针/脚本)。
729
+ - **计数(实测)**:`TOTAL 106`(44 套件 + 62 探针/变体,**作业计数/job count**,不是文件计数);随包 `tests/*.mjs` = 71(**文件计数**:18 个套件 + 53 个探针/脚本)。
725
730
  - **怎么让它红一次(in-repo)**:`tests/audit-readme-counts.mutants.mjs` —— 基线:守卫绿;**★ 篡改 README 里被引用的派生总数**(走 `COUNTS_README` seam,指向**绝对路径**的副本)⇒ 守卫**具名红**("README.md quotes the DERIVED totals")。守卫本体:`tests/audit-readme-counts.mjs`(**19+** 条断言:README/EN/test-timing/checklist 的派生形状、旧读数的消失,以及 **F-C 的全 `docs/**`(live 文档)`TOTAL <n>` 扫描** —— 每个 occurrence 必须等于 `--counts` 的派生值,冻结的 `docs/release-notes/**` 按名排除并在输出里报数)。
726
731
  - **touch-anchor(claim-vs-tree 用)**:`--counts`、`update-doc-counts.mjs`、`README COUNTS:`、`README.md quotes the DERIVED totals`。
727
732
 
@@ -0,0 +1,31 @@
1
+ # 维护方针:v4/v5 优先,v2/v3 冻结为「适配兼容」
2
+
3
+ > 本文件说明四套预设的**维护优先级**,供使用者与维护者参考。策略由维护者决定,可能随版本调整。
4
+
5
+ ## 中文
6
+
7
+ **投资方向:`vibe-math-v4` 与 `vibe-math-v5`。** 新能力、新守卫(测试/审计)、提示词强化与重构都只落这两套。
8
+
9
+ **`vibe-math-v2` 与 `vibe-math-v3` 已成熟定型(architecturally frozen)。** 它们仍随包安装、可正常使用,但**只接受「适配兼容」类改动**:
10
+
11
+ - 宿主(DeepSeek Harness)升级带来的适配修复;
12
+ - **共享模块的正确性/安全修复**:`vibe-math-v{2,3,4,5}/math-computation.js` 等是四份**复制型共享** ⇒ 修复必须**同批传播**且四份保持**字节一致**,否则 v2/v3 会在宿主升级后悄悄腐坏;
13
+ - 让既有行为**保持不变**的回归修复。
14
+
15
+ **因此**:v2/v3 的参数名、默认值与数据格式**不再演进**(新参数、新字段只出现在 v4/v5);v2/v3 的测试套件保留为**兼容回归守卫**(保持通过即可),不再为它们新增作业。
16
+
17
+ **例外(不可扩大解释)**:**明显的正确性/安全缺陷**无论落在哪一套都会被修复 —— 「冻结」指停止**功能投资**,不等于放任已发布代码里的缺陷。
18
+
19
+ ## English
20
+
21
+ **Investment goes to `vibe-math-v4` and `vibe-math-v5`.** New capabilities, new guards (tests/audits), prompt strengthening and refactors land in these two only.
22
+
23
+ **`vibe-math-v2` and `vibe-math-v3` are architecturally frozen.** They still install and work, but accept **compatibility-only** changes:
24
+
25
+ - adaptations required by a DeepSeek Harness upgrade;
26
+ - **correctness/security fixes in shared modules**: `vibe-math-v{2,3,4,5}/math-computation.js` and friends are **copied** into each preset, so a fix must be propagated in the same change and the four copies must stay **byte-identical** — otherwise v2/v3 rot silently on the next host upgrade;
27
+ - regression fixes that keep their current behaviour unchanged.
28
+
29
+ **Consequently** v2/v3 parameter names, defaults and data formats **no longer evolve** (new parameters and fields appear in v4/v5 only), and their test suites remain **compatibility regression guards** (kept green) without new jobs.
30
+
31
+ **Exception (not to be stretched)**: an outright correctness/security defect is fixed wherever it lives — "frozen" means no further **feature** investment, not tolerating defects in shipped code.
@@ -8,6 +8,8 @@ Chinese counterpart of this index is [`README.md`](./README.md) (中文索引).
8
8
 
9
9
  | Version | Key change | Notes |
10
10
  |---|---|---|
11
+ | 2.8.2 | Patch: an explicit `paperLatexCommand` is now probed **alone**, so `triedPaths` no longer reports impossible paths of the form "known TeX root + absolute path"; v5's delivered `paper.md` / `paper.tex` now also **each state** the compile outcome (no engine detected / compilation failed), exactly once and without duplication on re-entry — matching v4 since 2.8.1. Both have real-host reproductions and named-red guards. | [中文](./RELEASE-NOTES-2.8.2.md) · [English](./RELEASE-NOTES-2.8.2.en.md) |
12
+ | 2.8.1 | Patch: v4's delivered `paper.md` and `paper.tex` now each state the compile outcome (no engine detected → tex+md only, or PDF compilation failed with tex/md kept), **exactly once** and idempotently — resolving known limitation #3 of the 2.8.0 notes; added `scripts/release-check.mjs`, which runs the pre-release checks as one command (version triple, section order of both notes, manifest registration, declared-but-missing = 0, repository-only files not shipped, no CRLF in the package). | [中文](./RELEASE-NOTES-2.8.1.md) · [English](./RELEASE-NOTES-2.8.1.en.md) |
11
13
  | 2.8.0 | Feature: an explicit `paperLatexCommand` now means "use only this" (v4/v5 no longer fall back silently), the missing-engine warning is actionable and `triedPaths` is recorded, and all four presets share one byte-identical missing-engine guidance block; the test gate is steadier (default concurrency 2, stale scratch swept at start-up, read-only warning for suspected leftover processes); repository line endings are unified on LF (byte-reproducible npm package). | [中文](./RELEASE-NOTES-2.8.0.md) · [English](./RELEASE-NOTES-2.8.0.en.md) |
12
14
  | 2.7.3 | Patch: the v5 mailbox acknowledges **only after a successful send** (unacknowledged mail is no longer lost), round numbering is correct on founding and on resume, a failed required paper-artifact write is named once with an idempotent refill, a refused task CAS leaves no trace, the member path contract and v4's Lean library-index write failure are named; eight stale "ack first" passages were corrected and a prose↔code pairing guard now prevents them from returning. | [中文](./RELEASE-NOTES-2.7.3.md) · [English](./RELEASE-NOTES-2.7.3.en.md) |
13
15
  | 2.7.2 | Patch: completes engine discovery and evidence on real hosts (engines installed but not on `PATH` are found, no unrunnable install command, `probe` names the absent engines, complete timeout evidence, the constraint policy is stated, archive identity and participant-set semantics are checkable). | [中文](./RELEASE-NOTES-2.7.2.md) · [English](./RELEASE-NOTES-2.7.2.en.md) |
@@ -7,6 +7,8 @@
7
7
 
8
8
  | 版本 | 关键变化 | 说明 |
9
9
  |---|---|---|
10
+ | 2.8.2 | 补丁:显式 `paperLatexCommand` 改为**单独探测** ⇒ `triedPaths` 不再出现「已知 TeX 根 + 绝对路径」这类**不可能路径**;v5 交付的 `paper.md`/`paper.tex` 也**各自写明**编译结果(未检测到引擎/编译失败),恰好一次且重入不重复 ⇒ 与 2.8.1 的 v4 对齐。两处均有真机复现读数与具名红守卫。 | [中文](./RELEASE-NOTES-2.8.2.md) · [English](./RELEASE-NOTES-2.8.2.en.md) |
11
+ | 2.8.1 | 补丁:v4 交付的 `paper.md`/`paper.tex` 现在各自写明编译结果(未检测到引擎 ⇒ 只产出 tex+md,或 PDF 编译失败并保留 tex/md),**恰好一次**且幂等 ⇒ 2.8.0 说明里的「已知限制」第 3 条已解决;新增 `scripts/release-check.mjs` 把发布前逐项核对做成一条命令(版本三处一致/两份说明章节顺序/清单登记/声明缺失=0/开发专用文件不随包/包内无 CRLF)。 | [中文](./RELEASE-NOTES-2.8.1.md) · [English](./RELEASE-NOTES-2.8.1.en.md) |
10
12
  | 2.8.0 | 功能版:显式 `paperLatexCommand` 改为「指定即只用它」(v4/v5 不再静默回落)、检测不到引擎的警告可行动并新增 `triedPaths`、四套预设新增逐字一致的引擎缺失指引;测试门禁更稳(默认并发 2、自动清扫陈旧临时目录、疑似遗留进程只读告警);仓库行尾统一为 LF(npm 包逐字节可复现)。 | [中文](./RELEASE-NOTES-2.8.0.md) · [English](./RELEASE-NOTES-2.8.0.en.md) |
11
13
  | 2.7.3 | 补丁:v5 邮袋改为「发送成功后才确认」(未确认消息不再丢失)、入会与恢复的轮次编号正确、论文必需产物写失败具名告警且补偿幂等、任务 CAS 被拒不留痕、成员库路径契约与 v4 Lean 索引写失败具名;文档中 8 处旧顺序已改正并新增文↔码配对守卫。 | [中文](./RELEASE-NOTES-2.7.3.md) · [English](./RELEASE-NOTES-2.7.3.en.md) |
12
14
  | 2.7.2 | 补丁:真实引擎发现与证据补齐(不在 PATH 的引擎可发现、不给出跑不了的安装命令、`probe` 点名缺席引擎、超时证据完整、约束口径明说、归档身份与名册口径可核对)。 | [中文](./RELEASE-NOTES-2.7.2.md) · [English](./RELEASE-NOTES-2.7.2.en.md) |
@@ -0,0 +1,49 @@
1
+ # dsh-vibe-math 2.8.1 — Release Notes
2
+
3
+ > Previous release: 2.8.0. This is a **patch release**: it fixes the "known limitation" that 2.8.0 honestly disclosed — v4's final paper did **not** state that no LaTeX engine was detected, or that PDF compilation failed — and it turns the pre-release checklist into one command. Parameter names and defaults, data formats and the directory layout are **unchanged**, the DSH support window is unchanged, and **no migration is needed**.
4
+
5
+ ## Overview
6
+
7
+ - v4's delivered `paper.md` and `paper.tex` now **each state the compile outcome**: no engine detected (tex+md only), or PDF compilation failed with tex/md kept.
8
+ - The note is written **exactly once** (finalisation can be re-entered, so it is idempotent) and does not change the paper's section structure or any other field.
9
+ - Known limitation #3 of the 2.8.0 notes (v4's finalisation note could be empty) is **resolved**.
10
+ - Added `scripts/release-check.mjs`: the pre-release checklist as a single command.
11
+
12
+ ## Added
13
+
14
+ - `scripts/release-check.mjs`: checks the **version triple**, the **section order** of both release notes for the current version, that both are listed in `package.json#files`, that `dsh.compatNote` names the current version, that `npm pack` has **declared-but-missing = 0**, that repository-only files are **not** shipped, and that the packaged text contains **no CRLF**. Switches: `--skip-pack` (static checks only), `--registry` (after publishing: compare the registry `dist.shasum` with the local tarball), `--self-test` (prove the predicates are not vacuous).
15
+
16
+ ## Changed
17
+
18
+ - v4's paper deliverables carry one extra outcome note (see "Fixed"). Apart from that note, the paper's section order, fixed wording and other fields are unchanged.
19
+
20
+ ## Fixed
21
+
22
+ - Symptom: after reading `paper.md` / `paper.tex`, a v4 user still could not tell **why no PDF was produced** — only `paper.log.md` had a line. Cause: the paper body is composed **before** compilation, so the two body items that depend on the compile result were **always empty** in the normal flow. Finalisation now writes the outcome into the deliverables **after** compiling: a bullet at the end of `paper.md`, and a comment line (`% …`) inserted before `\end{document}` in `paper.tex`, **once each** (re-entry does not duplicate it). Guards: `tests/v4-final-paper.test.mjs` (`★ [deliverable/v4] … (once each; md=1 tex=1)`), `tests/v4-final-paper.mutants.mjs` (**3/3** named reds: blanking the Chinese note reddens that assertion by name, measured `md=0 tex=0`).
23
+ - Release-process defect (tooling): the pre-release checks had to be done by hand and were easy to miss. `scripts/release-check.mjs` now does them in one command, with **4** single-site mutations proving the checker is not vacuous. Guard: `tests/release-check.mutants.mjs` (**4/4** named reds).
24
+
25
+ ## Compatibility & Migration
26
+
27
+ - Breaking changes: **none**.
28
+ - Additive only: one outcome line in the deliverables; one shipped script.
29
+ - Migration: none needed; existing `paper.meta.json` files and the directory layout are unchanged.
30
+ - The DSH support window is unchanged (see `engines.dsh` in `package.json`).
31
+
32
+ ## Known Limitations
33
+
34
+ - **TeX installed in a non-standard location is still not auto-discovered**: the default probe covers PATH and the documented common install roots; use an absolute path in `paperLatexCommand` otherwise.
35
+ - The shipped suites **do not cover host-level behaviour** (for example "the caller is dropped after an interrupt"); that needs a real host.
36
+ - On machines without Lean / LaTeX, the related suites **skip loudly** rather than passing silently.
37
+ - This version did not re-run a full research workflow on a real host.
38
+
39
+ ## Verification
40
+
41
+ - `node tests/run-tests.mjs` — all green (**106** items: 44 suites + 62 probes).
42
+ - `node scripts/update-doc-counts.mjs --check` — exits 0 (documented derived counts match the repository).
43
+ - `node scripts/release-check.mjs` — exits 0; after publishing, `node scripts/release-check.mjs --registry` also compares the registry shasum with the local tarball byte for byte.
44
+ - v4 deliverable note: `node tests/v4-final-paper.test.mjs`, `node tests/v4-final-paper.mutants.mjs` (3/3 named reds).
45
+ - The checker itself: `node scripts/release-check.mjs --self-test` (15 checks) and `node tests/release-check.mutants.mjs` (4/4 named reds).
46
+
47
+ ## Dependencies
48
+
49
+ - No new runtime dependencies; the DSH support window is unchanged.
@@ -0,0 +1,49 @@
1
+ # dsh-vibe-math 2.8.1 — 发布说明
2
+
3
+ > 上一版本:2.8.0。本版是**补丁版**:修掉 2.8.0 说明里如实写出的那条「已知限制」——v4 的最终文稿此前**不会**说明「本机没有 LaTeX 引擎」或「PDF 编译失败」;并把发布前的逐项核对做成一条命令。参数名与默认值、数据格式与目录结构**未变**,DSH 支撑窗口不变,**无需迁移**。
4
+
5
+ ## 概述
6
+
7
+ - v4 交付的 `paper.md` 与 `paper.tex` 现在**各自写明编译结果**:未检测到引擎(只产出 tex+md),或 PDF 编译失败并已保留 tex/md。
8
+ - 该说明**只写一次**(定稿可重入 ⇒ 幂等),不改变论文的章节结构与其它字段。
9
+ - 2.8.0 说明中的「已知限制」第 3 条(v4 收尾备注可能为空)**已解决**。
10
+ - 新增 `scripts/release-check.mjs`:把发布前必须逐项核对的检查做成一条命令。
11
+
12
+ ## 新增
13
+
14
+ - `scripts/release-check.mjs`:核对版本**三处一致**、当前版本两份发布说明的**章节顺序**、两份是否登记进 `package.json#files`、`dsh.compatNote` 是否提到当前版本、`npm pack` 的**声明了但缺失 = 0**、开发专用文件是否**不随包**、包内文本是否**无 CRLF**;开关 `--skip-pack`(只做静态检查)、`--registry`(发布后比对线上 `dist.shasum` 与本地 tarball)、`--self-test`(自证判据非空转)。
15
+
16
+ ## 变更
17
+
18
+ - v4 的论文交付物多一条结果说明(细节见「修复」)。除该说明外,论文的章节顺序、固定文案与其它字段均未变。
19
+
20
+ ## 修复
21
+
22
+ - 症状:v4 的用户读完 `paper.md` / `paper.tex` 也不知道**PDF 为什么没有产出**——只有 `paper.log.md` 里留了一行。原因:论文正文在**编译之前**组装,因此正文里那两条依赖编译结果的条目在正常流程中**恒空**。现在定稿在编译之后把结果**补写**进交付物:`paper.md` 末尾增一条要点,`paper.tex` 在 `\end{document}` 之前插入一行注释(`% …`),两者**各恰好一次**(重入不重复)。守卫:`tests/v4-final-paper.test.mjs`(`★ [deliverable/v4] … (once each; md=1 tex=1)`)、`tests/v4-final-paper.mutants.mjs`(**3/3** 具名红:把中文说明置空 ⇒ 该断言按名变红,实测 `md=0 tex=0`)。
23
+ - 发布流程缺陷(工具面):发布前的逐项核对此前只能手工做、容易漏。现在由 `scripts/release-check.mjs` 一条命令完成,并由 **4** 条单点变异保证它本身不是空转。守卫:`tests/release-check.mutants.mjs`(**4/4** 具名红)。
24
+
25
+ ## 兼容性与迁移
26
+
27
+ - 破坏性变更:**无**。
28
+ - 纯新增:交付物里的一行结果说明;一个随包脚本。
29
+ - 迁移:无需迁移;既有 `paper.meta.json` 与目录结构不变。
30
+ - DSH 支撑窗口不变(见 `package.json` 的 `engines.dsh`)。
31
+
32
+ ## 已知限制
33
+
34
+ - **非标准位置的 TeX 仍不会被自动发现**:默认探测只覆盖 PATH 与文档化的常见安装根;装在其它目录请用 `paperLatexCommand` 指绝对路径。
35
+ - 随包套件**不覆盖宿主层行为**(例如「中断后调用方被丢弃」),这类行为需要真机才能观察。
36
+ - 缺少 Lean / LaTeX 等引擎的机器上,相关套件会**响亮跳过**,不会静默通过。
37
+ - 本版未在真机重跑完整研究流程。
38
+
39
+ ## 验证方式
40
+
41
+ - `node tests/run-tests.mjs` —— 全部通过(**106** 项:44 套件 + 62 探针)。
42
+ - `node scripts/update-doc-counts.mjs --check` —— 退出 0(文档派生计数与仓库一致)。
43
+ - `node scripts/release-check.mjs` —— 退出 0;发布后 `node scripts/release-check.mjs --registry` 再比对线上 shasum 与本地 tarball 的字节一致性。
44
+ - v4 交付物说明:`node tests/v4-final-paper.test.mjs`、`node tests/v4-final-paper.mutants.mjs`(3/3 具名红)。
45
+ - 发布检查本身:`node scripts/release-check.mjs --self-test`(15 条)与 `node tests/release-check.mutants.mjs`(4/4 具名红)。
46
+
47
+ ## 依赖
48
+
49
+ - 无新增运行时依赖;DSH 支撑窗口不变。
@@ -0,0 +1,47 @@
1
+ # dsh-vibe-math 2.8.2 — Release Notes
2
+
3
+ > Previous release: 2.8.1. This is a **patch release** fixing two v5 issues around diagnostics and deliverables: `triedPaths` no longer reports **impossible paths**, and v5's delivered `paper.md` / `paper.tex` now state "no engine detected / compilation failed" (2.8.1 did this for v4 only). Parameter names and defaults, data formats and the directory layout are **unchanged**, the DSH support window is unchanged, and **no migration is needed**.
4
+
5
+ ## Overview
6
+
7
+ - An explicit `paperLatexCommand` is now probed **alone**: `compile.triedPaths` in `paper.meta.json` no longer contains impossible paths of the form "known TeX root + the absolute path you supplied".
8
+ - v5's delivered `paper.md` and `paper.tex` now **each state** the compile outcome (no engine detected → tex+md only; compilation failed → tex/md kept), **exactly once** and idempotently on re-entry, matching what v4 has done since 2.8.1.
9
+ - Nothing else changed: with TeX in a non-standard location, keep pointing `paperLatexCommand` at an absolute path.
10
+
11
+ ## Added
12
+
13
+ - None. (Patch release: no new parameters, fields or tools.)
14
+
15
+ ## Changed
16
+
17
+ - v5's `paper.md` / `paper.tex` carry one extra outcome line (in the language of `paperLanguage`). Apart from that line, the paper's section order, fixed wording and other fields are unchanged.
18
+
19
+ ## Fixed
20
+
21
+ - Symptom: after setting `paperLatexCommand` to an **absolute** path, `compile.triedPaths` in `paper.meta.json` contained impossible paths such as `…\MiKTeX\miktex\bin\x64\Z:/no/such/xelatex.exe` — and `triedPaths` is precisely the "where did it look" field, so it misled the reader. Cause: the explicit value was treated as a **command name** and joined onto every known install root. It is now probed **alone**, so `triedPaths` records only candidates that were really probed. Measured on a real host (reproduced with a build pinned to 2.8.1): bogus path → `status="not-detected"`, `triedPaths=["Z:/…"]`; real engine → `status="compiled"`, `paper.pdf` 150,044 bytes. Guards: `tests/e2e-v5-round2.test.mjs` (`★ [task-17/v5]`), `tests/v5-institute-fixes.mutants.mjs`.
22
+ - Symptom: v5's delivered `paper.md` / `paper.tex` did **not** say why no PDF was produced (only the `compile` metadata and the log did). Cause: the paper body is composed **before** compilation. Finalisation now writes the outcome into the deliverables **after** compiling (a bullet at the end of `paper.md`; a `%` comment before `\end{document}` in `paper.tex`), **once each** and without duplication on re-entry. Guards: `tests/e2e-v5-round2.test.mjs` (`★ [task-18/v5]`), `tests/v5-institute-fixes.mutants.mjs` (**16/16** named reds).
23
+
24
+ ## Compatibility & Migration
25
+
26
+ - Breaking changes: **none**.
27
+ - Additive only: one outcome line inside the deliverables (v5 only).
28
+ - Migration: none needed; existing `paper.meta.json` files remain readable.
29
+ - The DSH support window is unchanged (see `engines.dsh` in `package.json`).
30
+
31
+ ## Known Limitations
32
+
33
+ - **TeX installed in a non-standard location is still not auto-discovered**: the default probe covers PATH and the documented common install roots; use an absolute path in `paperLatexCommand` otherwise.
34
+ - The shipped suites **do not cover host-level behaviour** (for example "the caller is dropped after an interrupt"); that needs a real host.
35
+ - **A root-agent question blocks the whole institute** (operational note, product unchanged): nothing else proceeds until the answer arrives — state the problem and acceptance criteria up front for unattended runs. See [`slv-playbook.md`](./slv-playbook.md) §5.
36
+ - On machines without Lean / LaTeX, the related suites **skip loudly** rather than passing silently.
37
+
38
+ ## Verification
39
+
40
+ - `node tests/run-tests.mjs` — all green (**106** items: 44 suites + 62 probes).
41
+ - `node scripts/release-check.mjs` — exits 0 (version triple, section order of both notes, `files[]` registration, no CRLF in the package); after publishing, `node scripts/release-check.mjs --registry` also compares the registry shasum with the local tarball.
42
+ - The two fixes in this release: `node tests/e2e-v5-round2.test.mjs` (`★ [task-17/v5]`, `★ [task-18/v5]`) and `node tests/v5-institute-fixes.mutants.mjs` (**16/16** named reds).
43
+ - Real-host re-check recipe: install the exact published version (`-Pin <version>`) and run a **trimmed** paper task (no research) — about **8 minutes** — then inspect the `compile` block and whether `paper.pdf` exists.
44
+
45
+ ## Dependencies
46
+
47
+ - No new runtime dependencies; the DSH support window is unchanged.
@@ -0,0 +1,47 @@
1
+ # dsh-vibe-math 2.8.2 — 发布说明
2
+
3
+ > 上一版本:2.8.1。本版是**补丁版**,修两处 v5 的「交付物与诊断」问题:`triedPaths` 不再出现**不可能路径**;v5 交付的 `paper.md`/`paper.tex` 也会写明「未检测到引擎/编译失败」(2.8.1 只做了 v4,本版补齐)。参数名与默认值、数据格式与目录结构**未变**,DSH 支撑窗口不变,**无需迁移**。
4
+
5
+ ## 概述
6
+
7
+ - 显式 `paperLatexCommand` 现在被**单独探测**:`paper.meta.json` 的 `compile.triedPaths` 不再出现「已知 TeX 根 + 你给的绝对路径」这种不可能路径。
8
+ - v5 交付的 `paper.md` 与 `paper.tex` 现在**各自写明**编译结果(未检测到引擎 ⇒ 只产出 tex+md;编译失败 ⇒ 已保留 tex/md),**恰好一次**且定稿重入不重复 ⇒ 与 2.8.1 的 v4 行为**对齐**。
9
+ - 其余行为不变:本机 TeX 装在非标准位置时,仍请用 `paperLatexCommand` 指定绝对路径。
10
+
11
+ ## 新增
12
+
13
+ - 无。(本版为修复版:没有新增参数、字段或工具。)
14
+
15
+ ## 变更
16
+
17
+ - v5 的 `paper.md`/`paper.tex` 多一行结果说明(随 `paperLanguage` 中英各一)。除此之外,论文的章节顺序、固定文案与其它字段均未变。
18
+
19
+ ## 修复
20
+
21
+ - 症状:把 `paperLatexCommand` 设为**绝对**路径后,`paper.meta.json` 的 `compile.triedPaths` 里出现 `…\MiKTeX\miktex\bin\x64\Z:/no/such/xelatex.exe` 这类**不可能路径**——而 `triedPaths` 正是「找过哪里」的字段,会误导用户。原因:显式值被当作**命令名**拿去和已知安装根拼候选。现在显式值被**单独探测**,`triedPaths` 只记录真正探过的候选。真机实测(pin 到 2.8.1 后复现):坏路径 ⇒ `status="not-detected"`、`triedPaths=["Z:/…"]`;真引擎 ⇒ `status="compiled"`、`paper.pdf` 150,044 B。守卫:`tests/e2e-v5-round2.test.mjs`(`★ [task-17/v5]`)、`tests/v5-institute-fixes.mutants.mjs`。
22
+ - 症状:v5 交付的 `paper.md`/`paper.tex` **不说** PDF 为什么没有产出(此前只有 `compile` 元数据与日志里有)。原因:论文正文在**编译之前**组装。现在定稿在编译之后把结果**补写**进交付物(`paper.md` 末尾一条要点;`paper.tex` 在 `\end{document}` 之前插一行 `%` 注释),**各恰好一次**、重入不重复。守卫:`tests/e2e-v5-round2.test.mjs`(`★ [task-18/v5]`)、`tests/v5-institute-fixes.mutants.mjs`(**16/16** 具名红)。
23
+
24
+ ## 兼容性与迁移
25
+
26
+ - 破坏性变更:**无**。
27
+ - 纯新增:交付物里的一行结果说明(仅 v5)。
28
+ - 迁移:无需迁移;既有 `paper.meta.json` 仍可读。
29
+ - DSH 支撑窗口不变(见 `package.json` 的 `engines.dsh`)。
30
+
31
+ ## 已知限制
32
+
33
+ - **非标准位置的 TeX 仍不会被自动发现**:默认探测只覆盖 PATH 与文档化的常见安装根;装在其它目录请用 `paperLatexCommand` 指绝对路径。
34
+ - 随包套件**不覆盖宿主层行为**(例如「中断后调用方被丢弃」),这类行为需要真机才能观察。
35
+ - **根代理提问会阻塞整所流程**(运维注意项,不改产品):答复到达前其余流程停摆;长跑时请把问题与验收条件一次说清。详见 [`slv-playbook.md`](./slv-playbook.md) §5。
36
+ - 缺少 Lean / LaTeX 等引擎的机器上,相关套件会**响亮跳过**,不会静默通过。
37
+
38
+ ## 验证方式
39
+
40
+ - `node tests/run-tests.mjs` —— 全部通过(**106** 项:44 套件 + 62 探针)。
41
+ - `node scripts/release-check.mjs` —— 退出 0(版本三处一致/两份说明章节顺序/`files[]` 登记/包内无 CRLF);发布后 `node scripts/release-check.mjs --registry` 再比对线上 `dist.shasum` 与本地 tarball。
42
+ - 本版两处修复:`node tests/e2e-v5-round2.test.mjs`(`★ [task-17/v5]`、`★ [task-18/v5]`)与 `node tests/v5-institute-fixes.mutants.mjs`(**16/16** 具名红)。
43
+ - 真机复测方式:用 registry 上的精确版本(`-Pin <version>`)跑一个**精简**论文任务(跳过研究),约 **8 分钟**,核对 `compile` 段与 `paper.pdf` 是否存在。
44
+
45
+ ## 依赖
46
+
47
+ - 无新增运行时依赖;DSH 支撑窗口不变。
@@ -37,11 +37,24 @@ node -e "const p=require('./package.json'),l=require('./package-lock.json');cons
37
37
  ## 3. 提交前:门禁与派生计数
38
38
 
39
39
  ```bash
40
+ node scripts/clean-temp.mjs --ps # 先看有没有遗留进程(只读;--kill 需显式)
40
41
  node tests/run-tests.mjs # 必须全绿:TOTAL <n> PASS <n> FAIL 0
41
42
  node scripts/update-doc-counts.mjs # 让文档里的派生计数收敛
42
43
  node scripts/update-doc-counts.mjs --check # 退出 0 = 已收敛
44
+ node scripts/release-check.mjs # 版本三处一致/两份说明与章节顺序/files[] 登记/
45
+ # tarball 声明缺失=0/开发专用文件不随包/包内无 CRLF
43
46
  ```
44
47
 
48
+ - **先查遗留进程,再谈"时序抖动"**(实测教训):一只**两天前**启动、父进程已消失的宿主累计烧掉 **197,410 秒 CPU**,
49
+ 在 4 核机上等于长期占满一个核 ⇒ 同一批作业被放慢 **1.3–4.5×**、门禁耗时总和从 **2822 s 涨到 7875 s**,于是
50
+ "单跑全绿"的套件在门禁里偶发报红。`scripts/clean-temp.mjs --ps` 只读列出来(判据:命令行属于本工程/团队**且**
51
+ 父进程已消失),`--kill` 才动手;门禁启动时也会打印一行只读告警。
52
+
53
+ - **`scripts/release-check.mjs` 是本手册的可执行化部分**:把 §1/§2/§6 的逐项核对做成一条命令(含一次真实
54
+ `npm pack` 与解包扫描)。发布前它必须退出 0;`--skip-pack` 只做静态检查,`--registry` 在发布后比对线上
55
+ `dist.shasum` 与本地 tarball 的字节一致性,`--self-test` 自证判据不是空转(配 `tests/release-check.mutants.mjs`
56
+ 的 4 条单点变异,全部按名变红)。
57
+
45
58
  - 任何**新增作业**(新套件/新变异族/新 `--self-probe` 变体)都会改变派生计数:先跑 updater,再跑门禁,否则文档计数守卫会按设计变红。
46
59
  - **派生工件随源改动一起提交**:改了预设源/规范后,`cordis.patch.yml` 与随包语料等派生文件必须在**同一个提交**里重新生成(生成器脚本以仓库为准),不要拆成两个提交。
47
60
  - 改动了文档/计数后**再跑一次** `--check`,确保最后一次改动也收敛。
@@ -79,6 +92,7 @@ gh release create v<版本> --title "v<版本>" --latest --verify-tag \
79
92
  ```bash
80
93
  npm view dsh-vibe-math version dist-tags.latest dist.shasum
81
94
  npm pack --dry-run # 或 npm pack 后解开,核对清单
95
+ node scripts/release-check.mjs --registry # 一条命令做完下面 1–4 项(含线上 shasum 与本地 tarball 的比对)
82
96
  ```
83
97
 
84
98
  逐项确认:
@@ -75,7 +75,11 @@ dsh --profile <clone> --port <自有端口> --no-open
75
75
 
76
76
  - **没有任何引擎**(Octave/Julia/MATLAB/Maple/Wolfram 等)⇒ 这些面只能核对**诚实文本**:`configured`(配置启用)与 `absent[]`(每项带 `why`),这是**部分替代**,不是执行验证;
77
77
  - **单客户端** ⇒ 并发要靠两个克隆 + 两个端口模拟,否则如实声明超出范围;
78
- - **有界运行只能建立"落位与可观测性"**,**不能**建立"收敛/收口"结论——收敛结论必须来自随包套件。
78
+ - **有界运行只能建立"落位与可观测性"**,**不能**建立"收敛/收口"结论——收敛结论必须来自随包套件;
79
+ - **根代理提问会阻塞整所流程(实测观察到,属既有行为,不改产品)**:当**根/主代理**(而非某个成员)调用 `ask_user_question`
80
+ 这类"等待人工答复"的工具时,在答复到达之前**其余流程会停摆**(转录里可看到停在这一步、后续事件不再推进)。
81
+ 影响面:把研究所当成**无人值守**长跑时会卡住;有界影响、**不主张缺陷**。使用建议:长跑时避免让根代理走到提问分支
82
+ (把问题、范围与验收条件在任务里一次说清),或准备好及时答复;这也是把"**有界运行**"当结论必须慎重的另一条理由。
79
83
 
80
84
  ## 6. 中止触发与处置
81
85
 
@@ -51,7 +51,7 @@ node tests/run-tests.mjs --json # 机器可读汇总(含 skippedN
51
51
 
52
52
  | 脚本 | 串行(sum) | 并行(wall) | 实测输出 |
53
53
  |---|---|---|---|
54
- | `tests/run-tests.mjs`(**105 项作业**(job count)= 44 套件 + 61 探针/变体;**由 `--counts` 派生**) | ≈ 424 s(历史基线) | **≈ 121 s**(历史基线;当前实测墙钟 ≈ 200 s,并发 4) | `TOTAL 105 PASS 105 FAIL 0 (suites 44 · probes 61)`;实测 `wall 120.7s · sum 424.2s`,关键路径 = `e2e-v4-fixes`(≈ 98 s) |
54
+ | `tests/run-tests.mjs`(**106 项作业**(job count)= 44 套件 + 62 探针/变体;**由 `--counts` 派生**) | ≈ 424 s(历史基线) | **≈ 121 s**(历史基线;当前实测墙钟 ≈ 200 s,并发 4) | `TOTAL 106 PASS 106 FAIL 0 (suites 44 · probes 62)`;实测 `wall 120.7s · sum 424.2s`,关键路径 = `e2e-v4-fixes`(≈ 98 s) |
55
55
  | `tests/audit-formal-sensitivity.mjs`(49 探针,自带并发 4;v2 12 / v3 12 / v4 12 / v5 13) | ≈ 1035 s | **260.7 s**(实测,x3.97) | 关键路径 = v2/v3 的 `require` 探针(各 ≈75 s);全 49 条按预期变红、0 问题 |
56
56
  | `tests/audit-v5-sensitivity.mjs`(39 探针,串行) | ≈ 101 s | — | 每条 = 一次被测套件重跑 |
57
57
  | `tests/audit-persona-sensitivity.mjs`(16 探针) | ≈ 4.4 s | — | 本身很快,不需要并行 |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-vibe-math",
3
3
  "description": "Multi-agent mathematical problem-solving & verification frameworks for DeepSeek Harness — FOUR agent presets in one install: vibe-math-v2 (probability-driven, classic: qs.json + Propos knowledge base + explorer→solver→review/debate verdict), vibe-math-v3 (THIRD-generation, classic: paper-style Markdown knowledge base with Problems/Progress/Propos/Methods/Verified + planner-agent scheduling that decides the next N actions + universal theory/method invention library + agents write their own Markdown directly via a per-file write lock), and vibe-math-v4 (FOURTH-generation: persistent self-organizing resident subagents that message & meet to decide all tasks, verify only by unanimous consensus, /compact at a context threshold, and stop only when all agree the problem is solved), and vibe-math-v5 (FIFTH-generation research institute: an academician as the organizational centre who decomposes and ASSIGNS work and chairs meetings; permanent researchers who hold the vote and may hire/fire their own temp workers; temp workers with no vote; a group chat and meetings; a durable per-recipient mailbox; a compare-and-set task DAG; and a boolean m-vote consensus rule where an object enters Verified/ only when at least m voting members agree AND every one of them returns exactly 1 or exactly 0). Installing this bundle auto-installs all four presets (v1 was removed at v2.0.0). Each preset also writes a FINAL PAPER by default when its run concludes — and does so BEFORE the run is marked complete: on v4/v5 the team co-authors its parts, merges them, cross-reviews, and the editor named by paperEditor finalises; the output is Paper/<run or institute id>/{paper.md,paper.tex,paper.pdf when a LaTeX engine is detected,paper.meta.json,paper.log.md} (params finalPaper/paperFormat/paperLanguage/paperCompilePdf/paperLatexCommand, plus paperEditor on v4/v5; see docs/final-paper.md).",
4
- "version": "2.8.0",
4
+ "version": "2.8.2",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": "^22.19.0 || >=24.0.0",
@@ -24,6 +24,7 @@
24
24
  "README.en.md",
25
25
  "docs/COMPAT-AUDIT-ROUND2.md",
26
26
  "docs/AUDIT-CHECKLIST.md",
27
+ "docs/maintenance-policy.md",
27
28
  "tests/audit-formal-sensitivity.mjs",
28
29
  "tests/audit-persona-sensitivity.mjs",
29
30
  "tests/audit-persona-surface.test.mjs",
@@ -114,6 +115,7 @@
114
115
  "prompt-corpus-v5/prompt-corpus-v5.md",
115
116
  "tests/prompt-v5-integrity.test.mjs",
116
117
  "tests/run-tests.mjs",
118
+ "tests/v4-final-paper.test.mjs",
117
119
  "tests/v4-final-paper.mutants.mjs",
118
120
  "tests/run-tests.mutants.mjs",
119
121
  "screenshots.json",
@@ -186,8 +188,10 @@
186
188
  "scripts/build-preset-rows.mjs",
187
189
  "scripts/update-doc-counts.mjs",
188
190
  "scripts/clean-temp.mjs",
191
+ "scripts/release-check.mjs",
189
192
  "tests/temp-hygiene.mutants.mjs",
190
193
  "tests/v2v3-interrupt.mutants.mjs",
194
+ "tests/release-check.mutants.mjs",
191
195
  "preset-declaration.js",
192
196
  "tests/audit-preset-rows.test.mjs",
193
197
  "docs/COMPAT-AUDIT-ROUND3.md",
@@ -201,7 +205,11 @@
201
205
  "docs/release-notes/RELEASE-NOTES-2.7.3.md",
202
206
  "docs/release-notes/RELEASE-NOTES-2.7.3.en.md",
203
207
  "docs/release-notes/RELEASE-NOTES-2.8.0.md",
204
- "docs/release-notes/RELEASE-NOTES-2.8.0.en.md"
208
+ "docs/release-notes/RELEASE-NOTES-2.8.0.en.md",
209
+ "docs/release-notes/RELEASE-NOTES-2.8.1.md",
210
+ "docs/release-notes/RELEASE-NOTES-2.8.1.en.md",
211
+ "docs/release-notes/RELEASE-NOTES-2.8.2.md",
212
+ "docs/release-notes/RELEASE-NOTES-2.8.2.en.md"
205
213
  ],
206
214
  "license": "MIT",
207
215
  "keywords": [
@@ -231,7 +239,7 @@
231
239
  },
232
240
  "minVersion": "0.1.2-alpha.4",
233
241
  "testedVersion": "0.2.0-rc.2",
234
- "compatNote": "v2.8.0 功能版:显式引擎「指定即只用它」,并补齐引擎缺失时的可行动指引。① paperLatexCommand 非空时只用它:解析不到就按「未检测到」降级(v4/v5 此前会静默回落到别的引擎),与文档及 v2/v3 口径一致;想自动选择引擎请把该参数留空。② 未检测到引擎的具名警告说明已探测 PATH 与文档化的常见 TeX 根,并给出用绝对路径固定的方法;四套预设的提示词新增同一段指引(四步:有界自查 → 把绝对路径写入 paperLatexCommand 并重测 → 问用户一次 → 否则照旧降级)与三条硬边界(不自动安装、不写工作区之外、不把「未检测到」当失败)。③ 论文编译元数据新增 triedPaths(本次探测过的路径并集,成功与失败都记录;旧 meta 仍可读)。④ 宿主拒绝中断时返回具名 code 与可执行的 next;该失败路径已有回归守卫(既有行为未变)。⑤ 自行运行测试套件者:默认并发 min(2, cpus)、启动时清扫超过 6 小时的陈旧测试临时目录、临时根优先使用更宽裕的盘、疑似遗留进程只读告警;仓库新增 .gitattributes 统一 LF,npm 包逐字节可复现。参数名与默认值、数据格式与目录结构均未变;DSH 支撑窗口不变;无需迁移。",
242
+ "compatNote": "v2.8.2 补丁版:修 v5 的「诊断与交付物」两处。① 显式 paperLatexCommand 改为**单独探测** ⇒ paper.meta.json 的 compile.triedPaths 不再出现「已知 TeX 根 + 你的绝对路径」这类不可能路径(此前该值被当命令名去和已知安装根拼候选),真机实测:坏路径 ⇒ not-detected + triedPaths=[\"Z:/…\"];真引擎 ⇒ compiled + 真产出 paper.pdf。② v5 交付的 paper.md/paper.tex 现在各自写明编译结果(未检测到引擎 ⇒ 只产出 tex+md;编译失败 ⇒ 已保留 tex/md),恰好一次且定稿重入不重复 ⇒ 与 2.8.1 的 v4 对齐。参数名与默认值、数据格式与目录结构均未变;DSH 支撑窗口不变;无需迁移。",
235
243
  "compatibility": {
236
244
  "dshReleases": {
237
245
  "0.1.2-alpha.4": "compatible",