dsh-vibe-math 2.8.4 → 2.8.5
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 +19 -4
- package/README.md +19 -4
- package/cordis.patch.yml +8 -8
- package/docs/COMPAT-AUDIT-ROUND2.md +27 -0
- package/docs/final-paper.md +8 -0
- package/docs/formal-verification.md +6 -6
- package/docs/release-notes/README.en.md +1 -0
- package/docs/release-notes/README.md +1 -0
- package/docs/release-notes/RELEASE-NOTES-2.8.5.en.md +75 -0
- package/docs/release-notes/RELEASE-NOTES-2.8.5.md +75 -0
- package/package.json +5 -3
- package/prompt-corpus-persona/persona-corpus.json +9 -9
- package/prompt-corpus-persona/persona-corpus.md +17 -17
- package/prompt-corpus-v2/formal-verify-v2.json +109 -109
- package/prompt-corpus-v2/formal-verify-v2.md +216 -216
- package/prompt-corpus-v3/formal-verify-v3.json +77 -77
- package/prompt-corpus-v3/formal-verify-v3.md +147 -147
- package/prompt-corpus-v4/formal-verify-v4.json +10 -10
- package/prompt-corpus-v4/formal-verify-v4.md +40 -40
- package/prompt-corpus-v5/prompt-corpus-v5.json +61 -61
- package/prompt-corpus-v5/prompt-corpus-v5.md +613 -186
- package/tests/audit-artifact-docs.mjs +38 -2
- package/tests/audit-artifact-docs.mutants.mjs +66 -1
- package/tests/audit-engine-faces.mjs +2 -2
- package/tests/audit-persona-surface.test.mjs +4 -1
- package/tests/audit-prompt-invariants.mjs +292 -2
- package/tests/e2e-v5-round2.test.mjs +214 -2
- package/tests/formal-verify-v2.test.mjs +6 -5
- package/tests/formal-verify-v3.test.mjs +6 -5
- package/tests/formal-verify-v4.test.mjs +4 -4
- package/tests/prompt-v5-integrity.test.mjs +6 -6
- package/tests/run-tests.mjs +18 -2
- package/tests/v4-final-paper.mutants.mjs +14 -0
- package/tests/v4-final-paper.test.mjs +18 -0
- package/tests/v5-institute-fixes.mutants.mjs +107 -0
- package/vibe-math-v2/agent.cordis.yml +2 -2
- package/vibe-math-v2/math-computation.js +5 -5
- package/vibe-math-v2/vibe-math-v2.js +66 -17
- package/vibe-math-v3/agent.cordis.yml +2 -2
- package/vibe-math-v3/math-computation.js +5 -5
- package/vibe-math-v3/vibe-math-v3.js +64 -15
- package/vibe-math-v4/agent.cordis.yml +6 -6
- package/vibe-math-v4/math-computation.js +5 -5
- package/vibe-math-v4/vibe-math-v4.js +71 -20
- package/vibe-math-v5/agent.cordis.yml +6 -6
- package/vibe-math-v5/math-computation.js +5 -5
- package/vibe-math-v5/vibe-math-v5.js +378 -33
- package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +55 -2
package/README.en.md
CHANGED
|
@@ -168,14 +168,22 @@ Two installation methods, choose either one (they can also coexist):
|
|
|
168
168
|
|
|
169
169
|
### Method A: one-click install as a plugin package (recommended, installs all four presets at once)
|
|
170
170
|
|
|
171
|
-
On the desktop app, install `dsh-vibe-math` from **Settings → Plugins**; on the command line, use a profile:
|
|
171
|
+
On the desktop app, install `dsh-vibe-math` from **Settings → Plugins**; on the command line, use a profile (**always pin a version**):
|
|
172
172
|
|
|
173
173
|
```sh
|
|
174
|
-
|
|
174
|
+
# Prerequisite: DSH forwards plugin installs to pnpm (it does not bundle pnpm) - check it first:
|
|
175
|
+
pnpm --version
|
|
176
|
+
|
|
177
|
+
# Install this package (with an explicit version; without one you may stay on an OLD version, see below):
|
|
178
|
+
dsh plugin --profile <your profile> add dsh-vibe-math@<version>
|
|
175
179
|
# Or install directly from GitHub:
|
|
176
180
|
dsh plugin --profile <your profile> add github:ChongCyrus/Vibe-Mathematics
|
|
177
181
|
```
|
|
178
182
|
|
|
183
|
+
> **Prerequisite**: `dsh plugin …` needs a working **`pnpm`** (DSH **forwards** installs to pnpm and does **not** bundle it). When it is missing the command ends with **`exit 1`**, while the **plugin market may show no reason** ⇒ attach `~/.dsh/profiles/<profile>/hub.log` (DSH's install log) so the failure can be located.
|
|
184
|
+
>
|
|
185
|
+
> **Why every example pins `@<version>`**: pnpm resolves a bare package name through the profile's `package.json` and `pnpm-lock.yaml` first, so **without a version you may stay on an OLD version**. Measured locally: `@latest`, `@^2`, `pnpm update --latest` and `pnpm add …@latest` **all four failed to move the install**; **only an explicit version** (e.g. `@2.8.5`) actually upgrades. Install and upgrade both use `add dsh-vibe-math@<version>` (use `add`, not `update`).
|
|
186
|
+
|
|
179
187
|
Then start a new session and pick **Vibe Math V2** (v2, classic), **Vibe Math V3** (v3, classic), **Vibe Math V4** (v4, resident self-organization) or **Vibe Math V5** (v5, institute system) in the preset picker — the four architectures are peers, choose according to your actual needs (see "How to choose").
|
|
180
188
|
**The two DSH generations land in different places, and this package adapts to both**:
|
|
181
189
|
|
|
@@ -199,7 +207,14 @@ Then start a new session and select **"Vibe Math V2"** / **"Vibe Math V3"** / **
|
|
|
199
207
|
- **Supported range**: `0.1.2-alpha.4` … `0.2.0-rc.2` (11 versions declared `compatible`, tested target `0.2.0-rc.2`; `engines.node` is `^22.19.0 || >=24.0.0`) — per-version declarations, the `engines.dsh` range and `peerDependencies` live in `package.json` (`dsh.compatibility.dshReleases`).
|
|
200
208
|
- **Delivery form**: DSH ≥ 0.1.7 uses **composition-row declarations** (the `agentPresets` service); DSH ≤ 0.1.6 uses the `~/.dsh/.agent-presets/<id>/` directory + preset picker — one bundle covers both lines.
|
|
201
209
|
- **Hard constraint**: v5 keeps its institute state **only** in `State/<institute>.v5state.json` and **never** in the host session log — on an unknown event type DSH **refuses to load the whole session**, so it will not open on the next resume.
|
|
202
|
-
- **Everything else** (host rows and required services, the startup self-check and capability gate, the live-resident cap, the three 2026 fixes, the `dsh.bundle.patch` constraint, the upgrade path and `peerDependencies`): see `docs/COMPAT-AUDIT-ROUND2.md
|
|
210
|
+
- **Everything else** (host rows and required services, the startup self-check and capability gate, the live-resident cap, the three 2026 fixes, the `dsh.bundle.patch` constraint, the upgrade path and `peerDependencies`): see `docs/COMPAT-AUDIT-ROUND2.md` (install/upgrade: its §9); to upgrade this package use `dsh plugin --profile <your profile> add dsh-vibe-math@<new version>` (**pin the version**; use `add`, not `update` — measured locally: `@latest` does not upgrade).
|
|
211
|
+
|
|
212
|
+
### Install/upgrade troubleshooting (pnpm and versions)
|
|
213
|
+
|
|
214
|
+
- **Cannot install (`exit 1`)**: first check that `pnpm --version` runs — DSH's installer **forwards** installs to pnpm and does **not** bundle it; when it is missing the plugin market often shows only `exit 1` and no reason. Install pnpm, retry `add`, and attach `~/.dsh/profiles/<profile>/hub.log`.
|
|
215
|
+
- **Installed, but an OLD version**: measured locally, **`@latest` does not upgrade either** (all four spellings failed), because the profile's `package.json` / `pnpm-lock.yaml` win over the `latest` tag. Use an **explicit version**: `dsh plugin --profile <your profile> add dsh-vibe-math@<new version>`; or set the profile dependency to `latest` and `install`.
|
|
216
|
+
- **Check which version you actually have**: look at the profile's `package.json` (or run `pnpm list --depth 0` in that profile) instead of only checking that a preset appeared.
|
|
217
|
+
- **After upgrading**: **restart DSH** (see above for when the managed content is replaced).
|
|
203
218
|
|
|
204
219
|
---
|
|
205
220
|
|
|
@@ -520,7 +535,7 @@ All four presets default to `finalPaper=true`: once the respective closure signa
|
|
|
520
535
|
| `leanAsync` | `true` | all four | Lean compile mode: `true` (default) = background queue — `lean_run` / `lean_archive{run:true}` enqueue and return `async.jobId` immediately without blocking the member; `false` = synchronous await (the previous semantics, verbatim) |
|
|
521
536
|
| `leanJobsMaxParallel` | `1` | all four | Background-compile concurrency cap (default 1 = serial; raise it to compile in parallel) |
|
|
522
537
|
| `leanInitiative` | `'normal'` | all four | **Daily formalization eagerness**: `off` / `normal` (default, formalize along the way) / `eager` (more proactive). A **separate knob** from `formalVerify` (which only says how strong verification must be) |
|
|
523
|
-
| `leanSearchPaths` | `[]` | all four | Extra Lean search roots (injected first; the automatic `<VibeMath root>` is added after them; nothing is injected when `leanArgs` already sets
|
|
538
|
+
| `leanSearchPaths` | `[]` | all four | Extra Lean search roots (injected first; the automatic `<VibeMath root>` is added after them; nothing is injected when `leanArgs` already sets `-R`/`--root`) |
|
|
524
539
|
| `finalPaper` | `true` | all four | **Final paper**: written automatically at closure (`false` disables only the automatic trigger; the manual command still works). Full contract: `docs/final-paper.md` |
|
|
525
540
|
| `paperFormat` | `both` | all four | Which text versions to produce: `both` (md+tex) / `md` (skips compilation and must not warn about a missing tex) / `tex` |
|
|
526
541
|
| `paperLanguage` | `zh` | all four | Paper language: `zh` (ctexart, engine prefers xelatex) / `en` (article, pdflatex first) |
|
package/README.md
CHANGED
|
@@ -168,14 +168,22 @@ flowchart TB
|
|
|
168
168
|
|
|
169
169
|
### 方式 A:作为插件包一键安装(推荐,同时装出四个预设)
|
|
170
170
|
|
|
171
|
-
桌面版在「设置 → 插件」里安装 `dsh-vibe-math`;命令行 profile
|
|
171
|
+
桌面版在「设置 → 插件」里安装 `dsh-vibe-math`;命令行 profile 用(**务必带版本号**):
|
|
172
172
|
|
|
173
173
|
```sh
|
|
174
|
-
|
|
174
|
+
# 前置:DSH 的插件安装会调用 pnpm(它不自带 pnpm)——先确认它可用:
|
|
175
|
+
pnpm --version
|
|
176
|
+
|
|
177
|
+
# 安装本包(带显式版本;不带版本可能停在旧版,原因见下):
|
|
178
|
+
dsh plugin --profile <你的 profile> add dsh-vibe-math@<版本>
|
|
175
179
|
# 或从 GitHub 直装:
|
|
176
180
|
dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
177
181
|
```
|
|
178
182
|
|
|
183
|
+
> **前置**:`dsh plugin …` 需要一个可用的 **`pnpm`**(DSH 把安装**转交 pnpm**,且**不自带**它)。缺失时命令以 **`exit 1`** 结束,而**插件市场可能不显示原因** ⇒ 请附 `~/.dsh/profiles/<profile>/hub.log`(DSH 的安装日志)来定位。
|
|
184
|
+
>
|
|
185
|
+
> **为什么示例都带 `@<版本>`**:pnpm 优先按 profile 的 `package.json` 与 `pnpm-lock.yaml` 解析裸包名,**不带版本可能装到旧版**;本机实测 `@latest`、`@^2`、`pnpm update --latest`、`pnpm add …@latest` **四种写法都拿不到新版**,**只有显式版本**(如 `@2.8.5`)会真的升级。安装与升级都用 `add dsh-vibe-math@<版本>`(用 `add` 而非 `update`)。
|
|
186
|
+
|
|
179
187
|
之后新建会话,预设选择器里选择 **Vibe Math V2**(v2,经典)、**Vibe Math V3**(v3,经典)、**Vibe Math V4**(v4,常驻自组织)或 **Vibe Math V5**(v5,研究所体系)即可——四个架构同级,按实际需求自选(见「怎么选」)。
|
|
180
188
|
**两个 DSH 世代的落点不同,本包自动适配**:
|
|
181
189
|
|
|
@@ -199,7 +207,14 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
|
199
207
|
- **支持范围**:`0.1.2-alpha.4` … `0.2.0-rc.2`(11 个版本声明为 `compatible`,实测目标 `0.2.0-rc.2`;`engines.node` 为 `^22.19.0 || >=24.0.0`)——逐版本声明、`engines.dsh` 区间与 `peerDependencies` 见 `package.json`(`dsh.compatibility.dshReleases`)。
|
|
200
208
|
- **交付形态**:DSH ≥ 0.1.7 走**组合行声明**(`agentPresets` 服务),DSH ≤ 0.1.6 走 `~/.dsh/.agent-presets/<id>/` 目录 + preset picker——一份 bundle 同时兼容两条线。
|
|
201
209
|
- **硬约束**:v5 研究所状态**只**写 `State/<研究所>.v5state.json`,**绝不**写宿主会话日志——DSH 遇到日志里不认识的事件类型会**拒绝加载整个会话**,会话下次恢复将打不开。
|
|
202
|
-
- **其余细节**(宿主插件行与必需服务、启动自检与能力门槛、常驻数量上限、2026 的三处修复、`dsh.bundle.patch` 约束、升级路径与 `peerDependencies`):见 `docs/COMPAT-AUDIT-ROUND2.md
|
|
210
|
+
- **其余细节**(宿主插件行与必需服务、启动自检与能力门槛、常驻数量上限、2026 的三处修复、`dsh.bundle.patch` 约束、升级路径与 `peerDependencies`):见 `docs/COMPAT-AUDIT-ROUND2.md`(安装与升级见其 §9);升级本包用 `dsh plugin --profile <你的 profile> add dsh-vibe-math@<新版本>`(**给显式版本**,用 `add` 而非 `update`——本机实测 `@latest` 不升级)。
|
|
211
|
+
|
|
212
|
+
### 安装/升级排查(pnpm 与版本)
|
|
213
|
+
|
|
214
|
+
- **装不上(`exit 1`)**:先确认 `pnpm --version` 能跑——DSH 的安装器把安装**转交 pnpm** 且**不自带**它;缺失时插件市场里往往只有 `exit 1`、没有原因。装好 pnpm 后重试 `add`,并附 `~/.dsh/profiles/<profile>/hub.log`。
|
|
215
|
+
- **装上了但是旧版**:本机实测**带 `@latest` 也不升级**(四种写法都无效),因为 profile 的 `package.json` / `pnpm-lock.yaml` 优先于 `latest` 标签。改用**显式版本**:`dsh plugin --profile <你的 profile> add dsh-vibe-math@<新版本>`;或先把 profile 依赖改成 `latest` 再 `install`。
|
|
216
|
+
- **确认实际版本**:看 profile 的 `package.json`(或在该 profile 下 `pnpm list --depth 0`),别只看预设选择器里有没有 preset。
|
|
217
|
+
- **升级之后**:**重启 DSH**(受管内容的替换时机见上文)。
|
|
203
218
|
|
|
204
219
|
---
|
|
205
220
|
|
|
@@ -520,7 +535,7 @@ v5 的完整架构(成员生命周期、一轮时序、共识状态机、会
|
|
|
520
535
|
| `leanAsync` | `true` | 四套 | Lean 编译模式:`true`(默认)= 后台队列,`lean_run` / `lean_archive{run:true}` 入队即返回 `async.jobId`,成员不阻塞;`false` = 同步 await(旧语义逐字保留) |
|
|
521
536
|
| `leanJobsMaxParallel` | `1` | 四套 | 后台编译并发上限(默认 1 = 串行;调大即并行) |
|
|
522
537
|
| `leanInitiative` | `'normal'` | 四套 | **日常形式化主动性**:`off` / `normal`(默认,顺手形式化)/ `eager`(更主动)。与 `formalVerify`(验证时的要求强度)**是两件事** |
|
|
523
|
-
| `leanSearchPaths` | `[]` | 四套 | 额外 Lean 搜索根(先注入它们、再注入自动的 `<VibeMath 根>`;`leanArgs` 里已有
|
|
538
|
+
| `leanSearchPaths` | `[]` | 四套 | 额外 Lean 搜索根(先注入它们、再注入自动的 `<VibeMath 根>`;`leanArgs` 里已有 `-R`/`--root` 时不注入) |
|
|
524
539
|
| `finalPaper` | `true` | 四套 | **最终论文**:收口时自动撰写(`false` 只关自动触发,手动命令仍可用)。完整契约见 `docs/final-paper.md` |
|
|
525
540
|
| `paperFormat` | `both` | 四套 | 论文产出格式:`both`(md+tex)/ `md`(跳过编译,且不报"缺 tex")/ `tex` |
|
|
526
541
|
| `paperLanguage` | `zh` | 四套 | 论文语言:`zh`(ctexart,引擎优先 xelatex)/ `en`(article,pdflatex 优先) |
|
package/cordis.patch.yml
CHANGED
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
|
|
85
85
|
- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
|
|
86
86
|
- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。
|
|
87
|
-
-
|
|
87
|
+
- 归档→编辑→重跑(**回执=一次 math_computation 调用的 JSON 结果**:先 probe 或 run 一次,它有哪些字段就一目了然):mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到"改过代码"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true`(脚本内容相对上一份回执变过)与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**"同一归档的新 attempt"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
|
|
88
88
|
|
|
89
89
|
Final paper: strict termination writes Paper/<project>/{paper.md,paper.tex,paper.pdf,paper.meta.json,paper.log.md}
|
|
90
90
|
automatically — a dedicated paper-writing child assembles the solved material (finalPaper=false disables only that
|
|
@@ -404,7 +404,7 @@
|
|
|
404
404
|
|
|
405
405
|
- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
|
|
406
406
|
- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。
|
|
407
|
-
-
|
|
407
|
+
- 归档→编辑→重跑(**回执=一次 math_computation 调用的 JSON 结果**:先 probe 或 run 一次,它有哪些字段就一目了然):mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到"改过代码"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true`(脚本内容相对上一份回执变过)与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**"同一归档的新 attempt"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
|
|
408
408
|
|
|
409
409
|
A /vibe slash command mirrors the main controls (/vibe start [override]|resume [override]|pause|abort|status|report|mode
|
|
410
410
|
<auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]).
|
|
@@ -722,8 +722,8 @@
|
|
|
722
722
|
too; they work in every mode.
|
|
723
723
|
- vibe_v4_formal_report — human-readable Lean formal-verification mirror (mode, Lean-passed
|
|
724
724
|
- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
|
|
725
|
-
-
|
|
726
|
-
- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT "a new attempt of the same archive", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
|
|
725
|
+
- 归档→编辑→重跑(**回执=一次 math_computation 调用的 JSON 结果**:先 probe 或 run 一次,它有哪些字段就一目了然):mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到"改过代码"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true`(脚本内容相对上一份回执变过)与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**"同一归档的新 attempt"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
|
|
726
|
+
- Archive -> edit -> re-run (a RECEIPT is the JSON result of ONE math_computation call - run `probe` or `run` once and the fields below are right there in front of you): for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` (the script content differs from the previous receipt) and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT "a new attempt of the same archive", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
|
|
727
727
|
- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。
|
|
728
728
|
- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.
|
|
729
729
|
objects, recorded blockers, formalization TODO, library paths).
|
|
@@ -768,7 +768,7 @@
|
|
|
768
768
|
`<project root>/Formal/<id>.lean`.
|
|
769
769
|
- Reuse FIRST: call vibe_v4_lean_lib (and vibe_v4_lean_read for the verbatim text) BEFORE writing a new
|
|
770
770
|
definition; reuse an archived file with `import Formal.Lib.<name>` / `import Formal.Proved.<name>`
|
|
771
|
-
(the framework passes
|
|
771
|
+
(the framework passes -R <VibeMath root>, so VibeMath is the module root).
|
|
772
772
|
- Choose WHAT to formalize with three criteria: (1) valuable or likely reusable, (2) rather key or
|
|
773
773
|
necessary, (3) you are confident in the statement — when you are NOT confident, record blocked
|
|
774
774
|
with the difficulty instead of hiding uncertainty behind a formalization.
|
|
@@ -1085,8 +1085,8 @@
|
|
|
1085
1085
|
verification (execute / archive / list the reuse library / read an archived file
|
|
1086
1086
|
verbatim / watch the background compile queue). Members use them too; they work in every mode.
|
|
1087
1087
|
- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
|
|
1088
|
-
-
|
|
1089
|
-
- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT "a new attempt of the same archive", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
|
|
1088
|
+
- 归档→编辑→重跑(**回执=一次 math_computation 调用的 JSON 结果**:先 probe 或 run 一次,它有哪些字段就一目了然):mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到"改过代码"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true`(脚本内容相对上一份回执变过)与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**"同一归档的新 attempt"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
|
|
1089
|
+
- Archive -> edit -> re-run (a RECEIPT is the JSON result of ONE math_computation call - run `probe` or `run` once and the fields below are right there in front of you): for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` (the script content differs from the previous receipt) and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT "a new attempt of the same archive", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
|
|
1090
1090
|
- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。
|
|
1091
1091
|
- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.
|
|
1092
1092
|
A /v5 slash command mirrors these (configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set|paper).
|
|
@@ -1116,7 +1116,7 @@
|
|
|
1116
1116
|
small lemmas/propositions/definitions into the library even in ordinary rounds).
|
|
1117
1117
|
- Reuse first: check vibe_v5_lean_lib BEFORE writing a definition, reuse archived
|
|
1118
1118
|
content via `import Formal.Lib.<name>` / `import Formal.Proved.<name>` (the compile
|
|
1119
|
-
gets
|
|
1119
|
+
gets `-R <VibeMath root>`, preceded by any leanSearchPaths), or copy the
|
|
1120
1120
|
exact text with vibe_v5_lean_read. Re-archiving identical content is de-duplicated.
|
|
1121
1121
|
- Compiles are ASYNC by default (leanAsync=true, leanJobsMaxParallel default 1):
|
|
1122
1122
|
vibe_v5_lean_run / vibe_v5_lean_archive enqueue and return at once; watch them with
|
|
@@ -352,3 +352,30 @@ e2e-f1-agent-detach CONFIRMED (drives the real AgentRegistry)
|
|
|
352
352
|
|
|
353
353
|
- 本文件的 **`### 未修(需你决策,风险与取舍已说明)`** 一节(F-1…F-11;F-7 非缺陷、F-8 已知限制、F-9 已有 `tests/audit-corrupt-file-guard.test.mjs`、F-10/F-11 待定、**F-4c 已关闭**)是唯一权威的"未修 / 需决策"清单。
|
|
354
354
|
- **按标题文本定位,不写行号**:行号会随编辑漂移,标题是稳定的;链接目标在本仓库内,且本文件随包发布(`files[]`),因此指针不会指向包外。
|
|
355
|
+
|
|
356
|
+
## 9. 安装与升级(插件市场 · pnpm 前置 · 显式版本)
|
|
357
|
+
|
|
358
|
+
**背景**:issue #10 报告"经 DSH 插件市场安装失败(`exit 1`)"。复核结论:**两条根因都不在本插件包内**(不在本包的代码、参数或提示词里),但任何一条都会让用户卡住,所以写进本文档。
|
|
359
|
+
|
|
360
|
+
### 9.1 前置:安装需要一个可用的 `pnpm`
|
|
361
|
+
|
|
362
|
+
DSH 的插件管理器把安装**转交 pnpm**,并且**不自带 pnpm**:`@deepseek-ai/dsh-plugin-manager/lib/index.js` 多处 `execa(options.command ?? "pnpm", …)`(L324/517/650/694/733)、`pnpmCommand` 默认 `"pnpm"`(L1354)、`bin.js:23` 注释 "forwarding to pnpm";`dsh/node_modules` 中含 `pnpm` 的条目为空。报告者环境 `pnpm: unknown` / `npm: unknown` ⇒ 必然失败。
|
|
363
|
+
|
|
364
|
+
- **复现(本机)**:把 PATH 里的 `pnpm` 剥掉后执行安装 ⇒ 同一条报错 + `exit 1`;恢复 `pnpm` 后同一命令成功。
|
|
365
|
+
- **表现与取证**:失败时插件市场 UI 可能**不显示原因**,只有一个 `exit 1`。定位请附 `~/.dsh/profiles/<profile>/hub.log`(DSH 的安装日志)。
|
|
366
|
+
- **修复**:装好 `pnpm`(`pnpm --version` 能跑)后重试安装。
|
|
367
|
+
|
|
368
|
+
### 9.2 安装/升级:必须给**显式版本**
|
|
369
|
+
|
|
370
|
+
`install-spec.js` 只**校验** spec、**不注入版本**;裸包名交给 pnpm 后按 profile 的 `package.json`(首次 `add` 时由 pnpm 写下,例如 `"dsh-vibe-math": "^2.8.1"`)与 `pnpm-lock.yaml` 解析 ⇒ **可能停在旧版**。
|
|
371
|
+
|
|
372
|
+
- **实测(本机)**:`@latest`、`@^2`、`pnpm update --latest`、`pnpm add …@latest` **四种写法全部无效**;**只有显式 `@2.8.4` 成功升级**。
|
|
373
|
+
- **正确用法**:
|
|
374
|
+
|
|
375
|
+
```sh
|
|
376
|
+
pnpm --version # 前置检查
|
|
377
|
+
dsh plugin --profile <profile> add dsh-vibe-math@<版本> # 安装与升级都写显式版本
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
- **其他排查**:怀疑装成旧版时,可先把 profile 依赖改成 `latest` 再 `install`;升级后**重启 DSH**(受管内容的替换时机见本文件其余章节与 README 安装段)。
|
|
381
|
+
- **交叉引用**:README(中/英)安装段与 troubleshooting 小节给出同样的前置与显式版本要求,并由 `tests/audit-artifact-docs.mjs` 第 5 节静态守卫(含单点具名变异)。
|
package/docs/final-paper.md
CHANGED
|
@@ -130,6 +130,14 @@
|
|
|
130
130
|
在真机上很容易超过软阈值,若此时就放弃,其发言只能退化成「会后补记」✗(实测一次真机运行出现 **1067** 次补记、
|
|
131
131
|
**863** 次定稿被拒 ✓)。放弃会写进纪要(`⚠ 本次会议因长时间无新发言而被放弃`)并在群聊具名一行 ✓;放弃**之后**
|
|
132
132
|
到达的发言不会被丢弃,而是作为「**会后补记**」追加进纪要 ✓(见 §7 上一条)。
|
|
133
|
+
- **稿件(`paper_part`/`paper_review`)由论文阶段的专属轮次征集**:提示词只在这些轮次给出 schema(
|
|
134
|
+
`paperPartPrompt` / `paperReviewPrompt`),而**会议轮只征集 `input`(发言)**。采集端对轮次类型**不设限** ——
|
|
135
|
+
会议轮里附带 `paper_part` 框架也会收 ✓ —— 但**不要指望用会议轮交稿**:会议轮的提示词不会列出稿件字段 ✓
|
|
136
|
+
(实测某次真机复测里,成员在会议轮连续"空交"三次并空转 ✗ ⇒ 这是**阶段边界**,不是丢稿 ✗)。
|
|
137
|
+
- **`consult` 的两个计数只在"真的发生"时增加**:所办消息在**实际送达**后计(`notePaperConsult('message')`),
|
|
138
|
+
会议在**实际开始**且由所办召集时计(`notePaperConsult('meeting')`)。**因此**:被挂起(`pendingMeeting`)或被拒绝的
|
|
139
|
+
会议请求**在开始之前不计入** ✓ —— 这是设计("记录在案"才算征询 ✓),不是计数滞后 ✗;如果你在这一窗口内定稿,
|
|
140
|
+
会如实被 `V5_PAPER_CONSULT_REQUIRED` 挡住,直到那场会议真正开起来 ✓。
|
|
133
141
|
|
|
134
142
|
## 8. LaTeX 检测、编译与降级
|
|
135
143
|
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
| `leanAsync` | 布尔 | `true` | `true` = 编译走**后台队列**(`lean_run` / `lean_archive{run:true}` 入队后立即返回 `{async:{jobId,state:'queued'}}`);`false` = **完全同步 await**(旧路径逐字保留)。只有 `settled(ok)` 才可能置 `passed`,见 §7.3 |
|
|
61
61
|
| `leanJobsMaxParallel` | 正整数 | `1` | 后台编译并发上限(默认 1 = 串行;调大即并行,v2/v3 把合法范围夹在 1–8) |
|
|
62
62
|
| `leanInitiative` | `'off'` \| `'normal'` \| `'eager'` | `'normal'` | **日常流程中的形式化主动性**:`off` 不主动(只在验证提示词里按 `formalVerify` 的要求做)/ `normal` 顺手把有价值且可能复用的东西形式化 / `eager` 更主动。**与 `formalVerify` 是两件事**:它不改变定论门禁 |
|
|
63
|
-
| `leanSearchPaths` | 字符串数组 | `[]` | 额外编译搜索根:先注入它们、再注入自动的 `<VibeMath 根>`(去重、保持用户给的顺序);`leanArgs` 里已显式给
|
|
63
|
+
| `leanSearchPaths` | 字符串数组 | `[]` | 额外编译搜索根:先注入它们、再注入自动的 `<VibeMath 根>`(去重、保持用户给的顺序);`leanArgs` 里已显式给 `-R`/`--root` 时**不注入任何东西**,见 §7.6 |
|
|
64
64
|
|
|
65
65
|
- 非法值一律**回退到默认**(`formalVerify` 非三档之一 → `'off'`;`leanInitiative` 非三档之一 → `'normal'`;
|
|
66
66
|
`leanTimeoutMs` 非正 → 默认;`leanJobsMaxParallel` < 1 → 1;`leanSearchPaths` 非数组 → `[]` 并去空串/去重)。
|
|
@@ -438,18 +438,18 @@
|
|
|
438
438
|
并把作业标为 `interrupted`、把对象停在 `attempted`——**绝不因为"进程已经不在"而当作通过**。
|
|
439
439
|
`interrupted` 的作业可以重跑(重跑会 `attempts+1`)。
|
|
440
440
|
|
|
441
|
-
### 7.6
|
|
441
|
+
### 7.6 `-R` 注入(四套一致)
|
|
442
442
|
|
|
443
443
|
编译器 argv 固定为:
|
|
444
444
|
|
|
445
445
|
```
|
|
446
|
-
[exe, ...用户 leanArgs,
|
|
446
|
+
[exe, ...用户 leanArgs, -R <VibeMath 根>, <file>]
|
|
447
447
|
```
|
|
448
448
|
|
|
449
449
|
- 自动根**只有一个**:`<VibeMath 根>`(`import Formal.Lib.<name>` 的模块根),插在
|
|
450
|
-
**用户参数之后、文件名之前**——`lake env lean` 因此自然变成 `lake env lean
|
|
450
|
+
**用户参数之后、文件名之前**——`lake env lean` 因此自然变成 `lake env lean -R <root> <file>`。
|
|
451
451
|
- `leanSearchPaths` 非空时,**先注入用户给的路径(按给定顺序),再注入自动根**,整体去重。
|
|
452
|
-
- **用户显式给出搜索根就不注入**:`leanArgs` 里已有
|
|
452
|
+
- **用户显式给出搜索根就不注入**:`leanArgs` 里已有 `-R` / `--root` 时完全尊重用户配置。
|
|
453
453
|
- **不使用环境变量**:宿主的 `spawn` 没有 env 槽位,所以"注入"只能是参数注入;
|
|
454
454
|
也不依赖 `LEAN_PATH` 之类的约定。
|
|
455
455
|
|
|
@@ -589,7 +589,7 @@
|
|
|
589
589
|
恢复扫描 `Formal/Jobs/*.json`——`queued` 重入队、`running` 标记中断(哈希匹配则重入队、`attempts+1`)、
|
|
590
590
|
`settled` 只在**同一构建上下文**下补写结论。
|
|
591
591
|
15. **去重与搜索路径注入**:同内容 + 同构建上下文再归档 → `deduped:true` 且不重写不重编译;
|
|
592
|
-
编译器 argv 必须是 `[exe, ...用户 leanArgs,
|
|
592
|
+
编译器 argv 必须是 `[exe, ...用户 leanArgs, -R <VibeMath 根>, <file>]`,
|
|
593
593
|
用户已显式给出搜索根时**不注入**,`leanSearchPaths` 先于自动根且去重。
|
|
594
594
|
|
|
595
595
|
---
|
|
@@ -8,6 +8,7 @@ Chinese counterpart of this index is [`README.md`](./README.md) (中文索引).
|
|
|
8
8
|
|
|
9
9
|
| Version | Key change | Notes |
|
|
10
10
|
|---|---|---|
|
|
11
|
+
| 2.8.5 | Patch: the Lean formalization path **works again** (the search-root flag now uses Lean 4's `-R`; previously the compiler failed at argument parsing ⇒ a real-host run compiles, archives into `Verified/Lean/`, and another member reuses it); TeX engines that are installed but not on PATH are now found **within bounds** (documented locations only, no full-disk scan, no automatic install, `triedPaths` named); the prompts no longer demand impossible actions; v5 gains a **cooperation / management / work-experience feedback library** (`self`/`team` self-adjust, `interpersonal` needs an assessment plus a written-back verification; switch `feedback`); the install/upgrade docs state the `pnpm` prerequisite and an **explicit version**. | [中文](./RELEASE-NOTES-2.8.5.md) · [English](./RELEASE-NOTES-2.8.5.en.md) |
|
|
11
12
|
| 2.8.4 | Patch: v5's **meeting watchdog** no longer abandons a meeting while an ASKED member is still in flight (exempt within the soft bound; the 3× hard bound still closes it), so ordinary speeches return to the ordinary sections and "late notes" become an insurance policy again — before the fix one real run showed **1067** late notes and **863** refused finalisations. | [中文](./RELEASE-NOTES-2.8.4.md) · [English](./RELEASE-NOTES-2.8.4.en.md) |
|
|
12
13
|
| 2.8.3 | Patch: a speech arriving **after the meeting closed** is no longer dropped silently (it becomes a named "late note" in the minutes, which stay append-only); an office finalisation refused after a `force` restart now **explains why** (`restarted: true` + `forceReason`, stating that the counters restarted with the new paper and that a fresh consultation is required); the docs now state "`force` = a new paper". | [中文](./RELEASE-NOTES-2.8.3.md) · [English](./RELEASE-NOTES-2.8.3.en.md) |
|
|
13
14
|
| 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) |
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
| 版本 | 关键变化 | 说明 |
|
|
9
9
|
|---|---|---|
|
|
10
|
+
| 2.8.5 | 补丁:Lean 形式化通道**恢复可用**(搜索根旗标改用 Lean 4 的 `-R`;此前编译器在参数解析阶段即失败 ⇒ 真机实测编译通过、归档 `Verified/Lean/` 并被另一成员复用);"装了但不在 PATH"的 TeX 引擎现在能**有界**发现(只查文档化位置、不扫全盘、不自动安装,`triedPaths` 具名);提示词不再要求成员做做不到的事;v5 新增**合作/管理/工作经验反馈库**(`self`/`team` 自我调整、`interpersonal` 需评估+事后回填,开关 `feedback`);安装/升级写明 `pnpm` 前置与**显式版本**。 | [中文](./RELEASE-NOTES-2.8.5.md) · [English](./RELEASE-NOTES-2.8.5.en.md) |
|
|
10
11
|
| 2.8.4 | 补丁:v5 **会议看门狗**不再在"被点名的成员仍在进行中"时放弃会议(软界内豁免、硬界 3 倍预算仍会放弃)⇒ 正常发言回到正常小节,「会后补记」退回为保险;修复前真机实测一次运行 **1067** 次补记、**863** 次定稿被拒。 | [中文](./RELEASE-NOTES-2.8.4.md) · [English](./RELEASE-NOTES-2.8.4.en.md) |
|
|
11
12
|
| 2.8.3 | 补丁:会议**收束后到达的发言**不再静默丢弃(作为具名「会后补记」写入纪要、只增不覆盖);`force` 重启后 `paperEditor="office"` 的定稿拒绝**说明原因**(新增 `restarted:true` + `forceReason`,并写明"计数随新论文重置、需重新征询");文档明确「`force` = 一张新论文」。 | [中文](./RELEASE-NOTES-2.8.3.md) · [English](./RELEASE-NOTES-2.8.3.en.md) |
|
|
12
13
|
| 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) |
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# dsh-vibe-math 2.8.5 — Release Notes
|
|
2
|
+
|
|
3
|
+
> Previous release: 2.8.4. This is a **patch release** (the version stays on the 2.8.x line): it is mostly **fixes** — the Lean formalization path could not compile by default, TeX engines that are installed but not on PATH are now found, plus several corrections to the member-facing prompts; it also carries one **purely additive** capability (the feedback library, on by default and changing no existing behaviour). 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
|
+
- **The Lean formalization path works again**: the injected search-root flag was spelled for Lean 3, so the compiler failed at **argument parsing** (the file was never read) and formalization could never pass; the presets now inject `-R <root>`, and on a real host a minimal proof compiles, is archived, and can be read and reused by another member.
|
|
8
|
+
- **TeX engines that are installed but not on PATH are now found**: new **bounded**, documented candidate roots (still documented locations only, no full-disk scan, never an automatic install, never a write outside the workspace); when nothing is detected, `triedPaths` still **names** every path that was probed.
|
|
9
|
+
- **The prompts no longer demand things a member cannot do**: a missing engine is now reported to the office (or the group chat) instead of "asking the user"; the LaTeX guidance states **when it applies**; the "receipt" concept is given background; the empty engine table no longer contradicts itself; the member-facing notice frame is now **【研究所提示】**; and agent-facing text no longer contains drive-letter literals.
|
|
10
|
+
- **New cooperation / management / work-experience feedback library** (v5): record how the institute works and close the loop — the `self`/`team` routes are **self-adjustment with no approval**, while the `interpersonal` route requires an assessment and a **written-back verification** afterwards; switch `feedback` (default `on`).
|
|
11
|
+
- **The two install/upgrade traps are now documented**: `dsh plugin …` needs a working **`pnpm`**, and install/upgrade should **pin an explicit version** (a bare name can stay on an OLD version).
|
|
12
|
+
- Maintainer-facing: a set of static invariants and named-mutation self-checks across all four presets; the gate is **decoupled** from whether the host has TeX installed, so the suites give the same result on any machine.
|
|
13
|
+
|
|
14
|
+
## Added
|
|
15
|
+
|
|
16
|
+
- Tool **`vibe_v5_feedback`** (v5, member-usable): `op` is `'add' | 'update' | 'list' | 'summary'`; `list` defaults to the **not-yet-closed** entries (filter by `category`/`route`; `all: true` shows everything); `summary` counts by category and route.
|
|
17
|
+
- Carrier: `Shared/Feedback/<category>.md` (`cooperation`|`management`|`process`|`obstacle`|`conflict`) plus a `Shared/Feedback/index.json` index; the authoritative data lives in the institute's **durable state**, so a restart does not lose it.
|
|
18
|
+
- Parameter **`feedback`** (v5): `'on'` (default) | `'off'`. With `'off'` the prompt section is **not injected** and **every** operation of the tool is **refused by name** (`V5_FEEDBACK_DISABLED`) — never a silent write.
|
|
19
|
+
- **Three routes** (stated in the prompt and the docs): `self` = your own way of working ⇒ **adjust it yourself, nobody has to adopt it**; `team` = organisation / workflow / how the team runs ⇒ **no approval either**, change it as soon as it looks wrong; `interpersonal` = **caused by someone else and only they can fix it** ⇒ the **only** route that requires an assessment first and a **written-back verification** afterwards (`outcome` must be filled in before it can close).
|
|
20
|
+
- Permissions: members and temp workers may `add`, and may `update` only the entries **they started**; the office may `update` any entry (mark it resolved / write the result back).
|
|
21
|
+
- Observability: entry count / not-yet-closed count / per-category / per-route counts appear in `vibe_v5_feedback {op:'summary'}`, `vibe_v5_report` and `vibe_v5_overview`.
|
|
22
|
+
|
|
23
|
+
## Changed
|
|
24
|
+
|
|
25
|
+
- Prompts (the four affected presets): handling a missing engine changed from "ask the user" to "**report what happened to the office** (or the group chat)", and the office confirms with the user — members have no channel to the user.
|
|
26
|
+
- Prompts: the LaTeX guidance now says it **only applies while you are writing or compiling the paper**, instead of appearing as unexplained noise in every wake.
|
|
27
|
+
- Prompts: in `math_computation`'s "archive → edit → re-run" section, the **first** mention of a receipt now explains "**a receipt = the JSON result of one `math_computation` call** — run `probe` or `run` once and its fields are right there", with minimal glosses on the key fields.
|
|
28
|
+
- Prompts: the empty engine table changed from `math_computation:本机可用 (无)` to **`math_computation:可用引擎 无`** (English `available engines none`).
|
|
29
|
+
- Prompts: the member-facing notice frame changed from `【框架提示】` to **`【研究所提示】`**.
|
|
30
|
+
- Documentation: the install section and its troubleshooting note state the `pnpm` prerequisite and the "explicit version" rule; the README's old "upgrade with `@latest`" wording is corrected to an explicit version.
|
|
31
|
+
- Maintainer-facing: the shipped prompt corpus was regenerated together with the text above.
|
|
32
|
+
|
|
33
|
+
## Fixed
|
|
34
|
+
|
|
35
|
+
- **Symptom**: Lean formalization almost never passed in v2/v3/v4/v5 — the log showed many Lean invocations while `formal.passed` stayed empty. **Cause**: the injected search-root flag was Lean 3's `--search-path`, while Lean 4 only accepts `-R` / `--root`, so the compiler exited with `rc=1` at **argument parsing** and the file was never read. **Fix**: all four presets inject `-R <root>`; if the user already set a search root in `leanArgs`, no second one is injected (semantics unchanged). **Verified**: on a real host the compiler is invoked correctly and reads the file; the minimal proof `theorem probe_true : True := trivial` compiles and is archived into `Verified/Lean/`, after which **another member reads that archived lemma and uses its statement as the premise of a new theorem** (reuse works). Guards: `tests/formal-verify-v2.test.mjs` / `tests/formal-verify-v3.test.mjs` / `tests/formal-verify-v4.test.mjs` / `tests/formal-verify-v5.test.mjs`, `tests/audit-prompt-invariants.mjs` (flag spelling plus "no preset text may teach `--search-path` again"), `tests/v5-institute-fixes.mutants.mjs` (named reds).
|
|
36
|
+
- **Symptom**: when TeX Live was installed at a location such as `texlive\<year>\bin\windows` (installed but not on PATH), all four presets reported "no LaTeX engine detected" and delivered tex+md only. **Cause**: the default probe covered PATH and MiKTeX's common roots only. **Fix**: new **bounded** candidate roots (Windows `texlive\<year>\bin\windows` under a drive root, `/usr/local/texlive` and `/opt/texlive` on Unix-like systems, `/Library/TeX/texbin` on macOS) with a **cap** on the total; still **documented locations only, no full-disk scan, never an automatic install, never a write outside the workspace**; when nothing is detected, `triedPaths` still **names** every path that was probed. **Verified**: on a real host an engine that is installed but not on PATH is found (the PATH lookup fails, a documented root hits); with those roots sandboxed, every candidate probe stays inside the allowed tree and the total stays under the cap. Guards: `tests/audit-prompt-invariants.mjs` (documented-root coverage / the cap / no bare drive root / every probe site must go through the sandboxable seam), `tests/e2e-v5-round2.test.mjs`, `tests/audit-math-computation-parity.mjs`.
|
|
37
|
+
- **Symptom**: members were asked to do something they cannot do ("ask the user"). **Fix**: changed to "report what happened to the office (or the group chat)". Guards: `tests/audit-prompt-invariants.mjs` (member-visible text may not demand an impossible action), `tests/e2e-v5-round2.test.mjs`.
|
|
38
|
+
- **Symptom**: agent-facing text contained host absolute paths (drive-letter literals), which are wrong guidance on another machine. **Fix**: rewritten portably (`texlive\<year>\bin\windows`, `/usr/local/texlive`, `/opt/texlive`, `/Library/TeX/texbin`). Guards: `tests/audit-prompt-invariants.mjs` (source-level drive-letter criterion plus the path criterion over the four prompt corpora), `tests/audit-path-discipline.mjs`.
|
|
39
|
+
- **Symptom**: the first time a member saw "the receipt fields `scriptPath` / `scriptAbs`" it had no idea what a receipt was and probed around for it. **Fix**: the "archive → edit → re-run" section now gives that background at its **first** mention. Guards: `tests/e2e-v5-round2.test.mjs` (module-level behaviour plus the member prompt end to end), `tests/v5-institute-fixes.mutants.mjs` (removing that sentence reddens by name).
|
|
40
|
+
- **Symptom**: with no engine, the prompt rendered `math_computation:本机可用 (无)`, which contradicts itself. **Fix**: it now reads "可用引擎 无" (English `available engines none`). Guards: `tests/e2e-v5-round2.test.mjs`, `tests/v5-institute-fixes.mutants.mjs` (restoring the old wording reddens by name).
|
|
41
|
+
- **Symptom**: member-facing text called the plugin "框架", which is ambiguous from an agent's point of view (the plugin? the host? the institute?). **Fix**: the notice frame is now **【研究所提示】**. Guards: `tests/e2e-v5-round2.test.mjs` (source level: `【框架提示】` no longer appears in agent-facing text), `tests/v5-institute-fixes.mutants.mjs`.
|
|
42
|
+
|
|
43
|
+
## Compatibility & Migration
|
|
44
|
+
|
|
45
|
+
- Breaking changes: **none**.
|
|
46
|
+
- Additive only: the `vibe_v5_feedback` tool, the `feedback` parameter (default `'on'`), and the `Shared/Feedback/` directory with its index.
|
|
47
|
+
- Migration: **none needed**; existing parameter names and defaults, data formats and the directory layout are unchanged.
|
|
48
|
+
- The DSH support window is unchanged (see `engines.dsh` in `package.json`).
|
|
49
|
+
- **Upgrade**:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
dsh plugin --profile <your profile> add dsh-vibe-math@2.8.5
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- If you are still on an **OLD version** after upgrading: first check that `pnpm` works — the plugin management behind `dsh plugin …` needs a working `pnpm`; without it the install fails, and the **plugin market may show no reason** (attach `~/.dsh/profiles/<profile>/hub.log` to locate it).
|
|
56
|
+
- Then check whether that profile's `package.json` / `pnpm-lock.yaml` still points at the old version: they **win** over the `latest` tag, so **a bare name can stay on an OLD version**; retry with an explicit version.
|
|
57
|
+
|
|
58
|
+
## Known Limitations
|
|
59
|
+
|
|
60
|
+
- The LaTeX engine probe still covers **documented locations only**: an engine in a non-standard directory will not be discovered; use the `paperLatexCommand` parameter to name the engine command by absolute path (the prompt tells you to probe again after setting it).
|
|
61
|
+
- The few behaviours that need a real engine/host can only be confirmed by a **real-host re-test**; the shipped suites protect them with **source-level invariants plus a sandboxable seam**, and do not claim to cover host-level behaviour (for example "the caller is dropped after an interrupt").
|
|
62
|
+
- **The feedback library produces no research evidence**: it records methodology and collaboration only (how work is organised, where it is stuck, friction between people); research conclusions still go to `Progress/` and `Verified/`.
|
|
63
|
+
- Install/upgrade: on this machine's toolchain `@latest`, `@^2`, `pnpm update --latest` and `pnpm add …@latest` all failed to guarantee an upgrade, so an **explicit version** is still recommended (see "Upgrade").
|
|
64
|
+
- A root-agent question blocks the whole institute (operational note, product unchanged): state the problem and the acceptance criteria up front for long runs.
|
|
65
|
+
|
|
66
|
+
## Verification
|
|
67
|
+
|
|
68
|
+
- `node tests/run-tests.mjs` — all green (**106** items: 44 suites + 62 probes).
|
|
69
|
+
- `node scripts/release-check.mjs` — exits 0; after publishing, add `--registry` to compare the registry shasum with the local tarball.
|
|
70
|
+
- This release's suites: `node tests/e2e-v5-round2.test.mjs` (measured `passed=484 failed=0`), `node tests/v5-institute-fixes.mutants.mjs` (**33/33** named reds), `node tests/audit-prompt-invariants.mjs` (**211/0**; `--self-probe` **26/26**), `node tests/audit-artifact-docs.mjs` (**24/0**; its mutant harness **8/8**), `node tests/audit-math-computation-parity.mjs` (**108/0**).
|
|
71
|
+
- Real-host re-check recipe: ① **Lean** — on a host with Lean installed, send one object through `vibe_v5_lean_archive` (`kind:'proof'`); it should compile, the file should appear under `Verified/Lean/`, and another member should be able to `import` it; ② **TeX** — install the engine into a documented root but keep it off PATH; the paper flow should no longer report "no engine detected", and `triedPaths` should list the paths that were probed.
|
|
72
|
+
|
|
73
|
+
## Dependencies
|
|
74
|
+
|
|
75
|
+
- No new runtime dependencies; the DSH support window is unchanged.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# dsh-vibe-math 2.8.5 — 发布说明
|
|
2
|
+
|
|
3
|
+
> 上一版本:2.8.4。本版是**补丁版**(版本号沿用 2.8.x 线):以**修复**为主——Lean 形式化通道此前默认无法编译,"装了但不在 PATH"的 TeX 引擎现在能找到,另有几处面向成员提示词的修正;并附带一个**纯增量**的新能力(反馈库,默认开启、默认行为不变)。参数名与默认值、数据格式与目录结构**未变**,DSH 支撑窗口不变,**无需迁移**。
|
|
4
|
+
|
|
5
|
+
## 概述
|
|
6
|
+
|
|
7
|
+
- **Lean 形式化通道恢复可用**:此前注入的搜索根旗标拼写对 Lean 4 无效,编译器在**参数解析阶段**就失败(要编译的文件从未被读取),形式化因此永远无法通过;现在注入 `-R <root>`,真机上最小证明可编译并归档,且能被另一名成员读取复用。
|
|
8
|
+
- **TeX 引擎"装了但不在 PATH"现在能找到**:新增**有界**的文档化候选根(仍然只查文档化位置、不扫全盘、绝不自动安装、绝不写工作区之外),未检测到时 `triedPaths` 继续**具名**列出实际探测过的路径。
|
|
9
|
+
- **提示词不再要求成员做它做不到的事**:缺引擎时改为"如实上报所办(或群聊)",由所办向用户确认;LaTeX 指引标注**适用范围**;"回执"概念补上背景;空引擎列表措辞不再自相矛盾;面向成员的框架回执标题改为 **【研究所提示】**;面向代理的文本不再出现盘符字面量。
|
|
10
|
+
- **新增合作/管理/工作经验反馈库**(v5):把"怎么一起工作"记下来并闭环——`self`/`team` 路由**自我调整即可、无需审批**,`interpersonal` 路由需要先评估、事后再**回填验证**;开关 `feedback`(默认 `on`)。
|
|
11
|
+
- **安装与升级的两个坑写清了**:`dsh plugin …` 的插件管理**需要一个可用的 `pnpm`**;安装/升级**请给显式版本**(不带版本可能装到旧版)。
|
|
12
|
+
- 维护者向:新增/加强了一批跨四套预设的静态不变式与具名变异自检;门禁与"宿主是否安装 TeX"**解耦**,套件在任何机器上结果一致。
|
|
13
|
+
|
|
14
|
+
## 新增
|
|
15
|
+
|
|
16
|
+
- 工具 **`vibe_v5_feedback`**(v5,成员可用):`op` 取 `'add' | 'update' | 'list' | 'summary'`;`list` 默认只列**未闭环**条目(可按 `category`/`route` 过滤,`all: true` 看全部);`summary` 按类别与路由计数。
|
|
17
|
+
- 载体:`Shared/Feedback/<类别>.md`(`cooperation` 合作|`management` 管理|`process` 流程|`obstacle` 障碍|`conflict` 矛盾)+ `Shared/Feedback/index.json` 索引;权威数据放在研究所的**耐久状态**里,重启不丢。
|
|
18
|
+
- 参数 **`feedback`**(v5):`'on'`(默认)| `'off'`。设为 `'off'` 时:提示词**不再注入**该段,且工具的**每个操作**都**具名拒绝**(`V5_FEEDBACK_DISABLED`,绝不静默写入)。
|
|
19
|
+
- **三条路由**(写进提示词与文档):`self`=你自己的做法 ⇒ **自己调整即可,无需谁采纳**;`team`=组织/工作流/团队运行的调整 ⇒ **同样无需审批**,觉得不好就及时调整;`interpersonal`=**别人造成的、要别人改变才能解决** ⇒ **只有这条**要先做评估,并在事后**回填验证结果**(`outcome` 回填后才允许闭环)。
|
|
20
|
+
- 权限:成员与临时工可 `add`,且只能 `update` **自己发起的**条目;所办可 `update` 任何条目(标记解决/回填结果)。
|
|
21
|
+
- 可观测:条目数/未闭环数/按类别/按路由计数出现在 `vibe_v5_feedback {op:'summary'}`、`vibe_v5_report` 与 `vibe_v5_overview` 三处。
|
|
22
|
+
|
|
23
|
+
## 变更
|
|
24
|
+
|
|
25
|
+
- 提示词(受影响的四套预设):缺引擎的处置由"向用户询问"改为"**如实上报所办(或群聊)**,由所办向用户确认"——成员没有直连用户的通道。
|
|
26
|
+
- 提示词:LaTeX 指引现在写明"**仅在你参与论文写作或编译时适用**",不再作为无解释的噪声出现在每次唤醒里。
|
|
27
|
+
- 提示词:`math_computation` 的"归档→编辑→重跑"段在**首次**提到"回执"处说明"**回执=一次 `math_computation` 调用的 JSON 结果**:先 `probe` 或 `run` 一次即可看到它的字段",并给关键字段加最小注解。
|
|
28
|
+
- 提示词:空引擎列表由 `math_computation:本机可用 (无)` 改为 **`math_computation:可用引擎 无`**(英文 `available engines none`)。
|
|
29
|
+
- 提示词:面向成员的框架回执标题由 `【框架提示】` 改为 **`【研究所提示】`**。
|
|
30
|
+
- 文档:安装段与排查段写明 `pnpm` 前置与"显式版本"口径;README 里"用 `@latest` 升级"的旧说法已改正为显式版本。
|
|
31
|
+
- 维护者向:随包的提示词语料随上述文本变化同步更新。
|
|
32
|
+
|
|
33
|
+
## 修复
|
|
34
|
+
|
|
35
|
+
- **症状**:v2/v3/v4/v5 的 Lean 形式化几乎从不通过——日志里能看到大量 Lean 调用,但 `formal.passed` 为空。**原因**:注入的搜索根旗标是 Lean 3 的 `--search-path`,而 Lean 4 只认 `-R` / `--root`,编译器在**参数解析阶段**即以 `rc=1` 退出,要编译的文件从未被读取。**修正**:四个预设统一注入 `-R <root>`;若用户在 `leanArgs` 里已显式给出搜索根,则**不再注入第二个**(语义不变)。**验证**:真机上编译器被正确调用并读到文件;最小证明 `theorem probe_true : True := trivial` 编译通过并归档到 `Verified/Lean/`,随后**另一名成员读取该归档引理,并以它的陈述作为新定理的前提**(复用成立)。守卫:`tests/formal-verify-v2.test.mjs`/`tests/formal-verify-v3.test.mjs`/`tests/formal-verify-v4.test.mjs`/`tests/formal-verify-v5.test.mjs`,`tests/audit-prompt-invariants.mjs`(旗标拼写 +"预设文本不得再教 `--search-path`"),`tests/v5-institute-fixes.mutants.mjs`(具名红)。
|
|
36
|
+
- **症状**:TeX Live 装在 `texlive\<年份>\bin\windows` 这类"已安装但未加入 PATH"的位置时,四套预设都报"未检测到 LaTeX 引擎",只交付 tex+md。**原因**:默认探测只覆盖 PATH 与 MiKTeX 的常见安装根。**修正**:新增**有界**候选根(Windows 盘根下的 `texlive\<年份>\bin\windows`、类 Unix 的 `/usr/local/texlive`、`/opt/texlive`、macOS 的 `/Library/TeX/texbin`),候选总数**有上限**;仍然**只查文档化位置、不扫全盘、绝不自动安装、绝不写工作区之外**;未检测到时 `triedPaths` 继续**具名**列出实际探测过的路径。**验证**:真实主机上"引擎装了但不在 PATH"的情形可被发现(PATH 查找失败 ⇒ 文档化根命中);把文档化根沙箱化后,所有候选探测都落在允许树内且总数不超上限。守卫:`tests/audit-prompt-invariants.mjs`(候选根覆盖文档化位置/有上限/不得出现裸盘根/探测点必须经过可沙箱化的接缝),`tests/e2e-v5-round2.test.mjs`,`tests/audit-math-computation-parity.mjs`。
|
|
37
|
+
- **症状**:成员被要求做它做不到的事(例如"向用户询问")。**修正**:改为"如实上报所办(或群聊)"。守卫:`tests/audit-prompt-invariants.mjs`(成员可见文本不得要求其做不到的动作),`tests/e2e-v5-round2.test.mjs`。
|
|
38
|
+
- **症状**:面向代理的文本里出现宿主绝对路径(盘符字面量),换一台机器就是错误指引。**修正**:改为可移植表述(`texlive\<年份>\bin\windows`、`/usr/local/texlive`、`/opt/texlive`、`/Library/TeX/texbin`)。守卫:`tests/audit-prompt-invariants.mjs`(源码级盘符判据 + 四份提示词语料的路径判据),`tests/audit-path-discipline.mjs`。
|
|
39
|
+
- **症状**:成员第一次看到"回执字段 `scriptPath` / `scriptAbs`"时并不知道"回执"是什么,只能反复试探。**修正**:在"归档→编辑→重跑"段**首次**提到回执处补一句背景。守卫:`tests/e2e-v5-round2.test.mjs`(模块行为级 + 成员提示词端到端),`tests/v5-institute-fixes.mutants.mjs`(删掉该句 ⇒ 按名红)。
|
|
40
|
+
- **症状**:无引擎时提示词渲染成 `math_computation:本机可用 (无)`,字面自相矛盾。**修正**:改为"可用引擎 无"(英文 `available engines none`)。守卫:`tests/e2e-v5-round2.test.mjs`,`tests/v5-institute-fixes.mutants.mjs`(改回旧措辞 ⇒ 按名红)。
|
|
41
|
+
- **症状**:面向成员的文本自称"框架",在代理视角指代含糊(指插件?宿主?还是本研究所?)。**修正**:回执标题改为 **【研究所提示】**。守卫:`tests/e2e-v5-round2.test.mjs`(源码级:面向代理文本里不再出现 `【框架提示】`),`tests/v5-institute-fixes.mutants.mjs`。
|
|
42
|
+
|
|
43
|
+
## 兼容性与迁移
|
|
44
|
+
|
|
45
|
+
- 破坏性变更:**无**。
|
|
46
|
+
- 纯新增:`vibe_v5_feedback` 工具、参数 `feedback`(默认 `'on'`)、`Shared/Feedback/` 目录与其索引。
|
|
47
|
+
- 迁移:**无需迁移**;既有参数名与默认值、数据格式与目录结构均未变。
|
|
48
|
+
- DSH 支撑窗口不变(见 `package.json` 的 `engines.dsh`)。
|
|
49
|
+
- **升级方式**:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
dsh plugin --profile <你的 profile> add dsh-vibe-math@2.8.5
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- 若升级后仍是**旧版**:先确认 `pnpm` 可用——`dsh plugin …` 的插件管理需要一个可用的 `pnpm`;缺失时安装会失败,且**插件市场可能不显示原因**(可附 `~/.dsh/profiles/<profile>/hub.log` 定位)。
|
|
56
|
+
- 再检查该 profile 的 `package.json` / `pnpm-lock.yaml` 是否仍指向旧版本:它们**优先**于 `latest` 标签,**不带版本可能装到旧版**;必要时显式指定版本重试。
|
|
57
|
+
|
|
58
|
+
## 已知限制
|
|
59
|
+
|
|
60
|
+
- LaTeX 引擎仍只探**文档化位置**:装在非标准目录时不会被自动发现;请用参数 `paperLatexCommand` 指定引擎命令的绝对路径(提示词会引导"写入后再次探测")。
|
|
61
|
+
- 需要真实引擎/宿主的几处行为由**真机复测**确认;随包套件以**源码级不变式+可沙箱化接缝**保证不回归,但不宣称覆盖宿主层行为(例如"中断后调用方被丢弃")。
|
|
62
|
+
- **反馈库不产生研究证据**:它只记方法论与协作层(怎么组织、哪里卡住、与人摩擦);研究结论仍然进 `Progress/` 与 `Verified/`。
|
|
63
|
+
- 安装/升级:本机工具链下 `@latest`、`@^2`、`pnpm update --latest`、`pnpm add …@latest` 均**不能**保证升级,仍建议**显式版本**(见"升级方式")。
|
|
64
|
+
- 根代理提问会阻塞整所流程(运维注意项,产品不改):长跑时请把问题与验收条件一次说清。
|
|
65
|
+
|
|
66
|
+
## 验证方式
|
|
67
|
+
|
|
68
|
+
- `node tests/run-tests.mjs` —— 全部通过(**106** 项:44 套件 + 62 探针)。
|
|
69
|
+
- `node scripts/release-check.mjs` —— 退出 0;发布后加 `--registry` 比对线上 shasum 与本地 tarball。
|
|
70
|
+
- 本版相关套件:`node tests/e2e-v5-round2.test.mjs`(实测 `passed=484 failed=0`)、`node tests/v5-institute-fixes.mutants.mjs`(**33/33** 具名红)、`node tests/audit-prompt-invariants.mjs`(**211/0**,`--self-probe` **26/26**)、`node tests/audit-artifact-docs.mjs`(**24/0**,其变异器 **8/8**)、`node tests/audit-math-computation-parity.mjs`(**108/0**)。
|
|
71
|
+
- 真机复测配方:① **Lean**——在装有 Lean 的主机上让一个对象走 `vibe_v5_lean_archive`(`kind:'proof'`),应编译通过并在 `Verified/Lean/` 出现对应文件,另一名成员应能 `import` 到它;② **TeX**——把引擎装在文档化根但不加入 PATH,运行论文流程应不再报"未检测到引擎",且 `triedPaths` 里能看到实际探测过的路径。
|
|
72
|
+
|
|
73
|
+
## 依赖
|
|
74
|
+
|
|
75
|
+
- 无新增运行时依赖;DSH 支撑窗口不变。
|
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.
|
|
4
|
+
"version": "2.8.5",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": "^22.19.0 || >=24.0.0",
|
|
@@ -213,7 +213,9 @@
|
|
|
213
213
|
"docs/release-notes/RELEASE-NOTES-2.8.3.md",
|
|
214
214
|
"docs/release-notes/RELEASE-NOTES-2.8.3.en.md",
|
|
215
215
|
"docs/release-notes/RELEASE-NOTES-2.8.4.md",
|
|
216
|
-
"docs/release-notes/RELEASE-NOTES-2.8.4.en.md"
|
|
216
|
+
"docs/release-notes/RELEASE-NOTES-2.8.4.en.md",
|
|
217
|
+
"docs/release-notes/RELEASE-NOTES-2.8.5.md",
|
|
218
|
+
"docs/release-notes/RELEASE-NOTES-2.8.5.en.md"
|
|
217
219
|
],
|
|
218
220
|
"license": "MIT",
|
|
219
221
|
"keywords": [
|
|
@@ -243,7 +245,7 @@
|
|
|
243
245
|
},
|
|
244
246
|
"minVersion": "0.1.2-alpha.4",
|
|
245
247
|
"testedVersion": "0.2.0-rc.2",
|
|
246
|
-
"compatNote": "v2.8.
|
|
248
|
+
"compatNote": "v2.8.5 补丁版:修 Lean 形式化通道(此前默认无法编译)、TeX 引擎发现与若干提示词问题,并新增一个纯增量的工作经验反馈库。① Lean:注入的搜索根旗标改用 Lean 4 的 -R(此前用 Lean 3 的 --search-path,编译器在参数解析阶段即以 rc=1 失败、文件从未被读取)——真机实测最小证明编译通过、归档到 Verified/Lean/,并被另一名成员复用。② TeX:「装了但不在 PATH」的引擎现在能在**有界**的文档化候选根里找到(仍只查文档化位置、不扫全盘、绝不自动安装、绝不写工作区之外;未检测到时 triedPaths 具名列出实际探测过的路径)。③ 提示词:缺引擎不再要求成员「向用户询问」而改为「如实上报所办」,LaTeX 指引标注适用范围,「回执」概念首次出现处补背景,空引擎列表改为「可用引擎 无」,面向成员的回执标题改为【研究所提示】,面向代理文本不再含盘符字面量。④ 新增 v5 工具 vibe_v5_feedback 与参数 feedback(默认 on):self/team 路由自己调整即可、interpersonal 需评估+事后回填;off 时不注入提示词且每次写入具名拒绝。⑤ 安装/升级:dsh plugin 需要一个可用的 pnpm;安装与升级请给显式版本(dsh plugin --profile <profile> add dsh-vibe-math@2.8.5)——不带版本可能装到旧版。参数名与默认值、数据格式与目录结构均未变;DSH 支撑窗口不变;无需迁移。",
|
|
247
249
|
"compatibility": {
|
|
248
250
|
"dshReleases": {
|
|
249
251
|
"0.1.2-alpha.4": "compatible",
|