Repository navigation
v2.8.4
本页为 dsh-vibe-math 2.8.4 的双语发布说明(中文在前,English below)。
dsh-vibe-math 2.8.4 — 发布说明
上一版本:2.8.3。本版是补丁版:修正 v5 的会议看门狗——它此前会在"已被点名的成员仍在进行中"时就把会议放弃,导致成员的正常发言退化成「会后补记」,并让
paperEditor="office"的定稿被反复拒绝。参数名与默认值、数据格式与目录结构未变,DSH 支撑窗口不变,无需迁移。
概述
- 会议不再在"被点名、且仍在进行中"的成员交回发言之前被放弃:这类成员最多把会议续命到停滞预算的 3 倍,超过硬界才放弃(真正卡死的一轮仍不能拖住整场会议)。
- 结果是正常发言回到正常小节:真机实测修复前一次运行出现 1067 次「会后补记」、863 次定稿被拒;修复后会议能真正收齐发言,「会后补记」退回为保险而非常态。
paperEditor="office"的定稿闸门因此更容易被真正满足(它要求本张论文至少有 1 条所办消息与 1 次记录在案的会议)。- 文档写明会议何时会被放弃、放弃如何具名、以及放弃之后到达的发言如何处置。
新增
- 无。(本版为修复版:没有新增参数、字段或工具。)
变更
- 会议停滞判定:软界(
2 × activityTimeoutMs,默认 240 s)内,只要仍有被点名的成员在进行中就不放弃;超过 3 倍(默认 720 s)的硬界则照旧放弃。 docs/final-paper.md§7 增补"会议何时会被放弃"的口径(含软界/硬界与「会后补记」的关系)。
修复
- 症状:成员(含召集人)在会议里发言后,纪要里却只留下「会后补记」条目;一次真机运行累计 1067 次补记,并且
paperEditor="office"的定稿被V5_PAPER_CONSULT_REQUIRED拒绝 863 次。原因:会议停滞只按"最后一次发言"计时,不看被点名的成员是否仍在忙;真机上成员的一整轮常常超过 240 s 的预算,于是会议在看门狗手里被放弃,随后到达的发言只能走补记通道。现在"被点名且仍在忙"的成员会把放弃推迟到硬界(3 倍预算),正常发言因此回到会议的正常小节。守卫:tests/e2e-v5-round2.test.mjs(★ [real1004-stall],源码级不变量:该分支的真机行为无法在随包套件里确定性触发,故判据是"源码不变量 + 真机复测")、tests/v5-institute-fixes.mutants.mjs(19/19 具名红)。
兼容性与迁移
- 破坏性变更:无。
- 纯新增:无新增字段(仅行为与文档变化)。
- 迁移:无需迁移。
- DSH 支撑窗口不变(见
package.json的engines.dsh)。
已知限制
- 会议看门狗分支的真机行为只能由真机复测确认(随包套件里心跳延时不可控 ⇒ 该分支不能确定性触发;因此守卫是源码不变量,这一点已在测试注释与提交信息里写明)。
- 非标准位置的 TeX 仍不会被自动发现:默认探测只覆盖 PATH 与文档化的常见安装根。
- 随包套件不覆盖宿主层行为(例如"中断后调用方被丢弃")。
- 根代理提问会阻塞整所流程(运维注意项,不改产品):长跑时请把问题与验收条件一次说清。详见
slv-playbook.md§5。
验证方式
node tests/run-tests.mjs—— 全部通过(106 项:44 套件 + 62 探针)。node scripts/release-check.mjs—— 退出 0;发布后加--registry比对线上 shasum 与本地 tarball。- 本版修复:
node tests/e2e-v5-round2.test.mjs(★ [real1004-stall],实测passed=436 failed=0)与node tests/v5-institute-fixes.mutants.mjs(19/19 具名红)。 - 真机复测配方:用 registry 上的精确版本(
-Pin <version>)跑一个精简会议+论文任务(跳过研究),统计「会后补记」次数(修复前 1067 次)与定稿被拒次数(修复前 863 次)应显著下降。
依赖
- 无新增运行时依赖;DSH 支撑窗口不变。
dsh-vibe-math 2.8.4 — Release Notes
Previous release: 2.8.3. This is a patch release: it fixes v5's meeting watchdog, which used to abandon a meeting while an ASKED member was still working — turning ordinary speeches into "late notes" and making
paperEditor="office"finalisations fail again and again. Parameter names and defaults, data formats and the directory layout are unchanged, the DSH support window is unchanged, and no migration is needed.
Overview
- A meeting is no longer abandoned before an ASKED member still in flight hands its speech in: such members may hold the meeting open up to 3× the stall budget, after which the hard bound still closes it (a genuinely wedged turn must not wedge the whole meeting).
- The practical effect is that ordinary speeches land in the ordinary sections again: one real run before the fix showed 1067 "late notes" and 863 refused finalisations; with the fix, meetings actually collect their speakers and the "late note" path goes back to being an insurance policy rather than the norm.
- The
paperEditor="office"gate therefore becomes satisfiable in practice (it requires at least one office message and one recorded meeting for this paper). - The documentation now states when a meeting is abandoned, how the abandonment is named, and what happens to speeches that arrive after it.
Added
- None. (Patch release: no new parameters, fields or tools.)
Changed
- Meeting stall decision: within the soft bound (
2 × activityTimeoutMs, default 240 s) the meeting is kept open as long as an asked member is still in flight; past the 3× hard bound (default 720 s) it is still abandoned. docs/final-paper.md§7 now documents "when a meeting is abandoned" (soft/hard bounds and their relation to the "late note" path).
Fixed
- Symptom: after members (including the convener) spoke in a meeting, the minutes only gained "late note" entries — one real run reached 1067 of them, and
paperEditor="office"finalisations were refused byV5_PAPER_CONSULT_REQUIRED863 times. Cause: the stall check measured only the time since the last INPUT and ignored whether an asked member was still busy; a member's turn on a real host frequently outlives the 240 s budget, so the meeting was abandoned by the watchdog and later speeches could only take the late-note path. Members that were asked and are still busy now hold the meeting open until the hard bound (3× the budget), so ordinary speeches return to the ordinary sections. Guards:tests/e2e-v5-round2.test.mjs(★ [real1004-stall], a source-level invariant — this branch cannot be triggered deterministically inside the shipped suites, so the criterion is "source invariant + real-host re-test"),tests/v5-institute-fixes.mutants.mjs(19/19 named reds).
Compatibility & Migration
- Breaking changes: none.
- Additive only: no new fields (behaviour and documentation only).
- Migration: none needed.
- The DSH support window is unchanged (see
engines.dshinpackage.json).
Known Limitations
- The real-host behaviour of the meeting watchdog can only be confirmed by a real-host re-test (inside the shipped suites the heartbeat delay is not controllable, so the branch cannot be triggered deterministically; the guard is therefore a source-level invariant, as stated in the test comments and the commit message).
- TeX installed in a non-standard location is still not auto-discovered: the default probe covers PATH and the documented common install roots.
- The shipped suites do not cover host-level behaviour (for example "the caller is dropped after an interrupt").
- A root-agent question blocks the whole institute (operational note, product unchanged): state the problem and acceptance criteria up front for unattended runs. See
slv-playbook.md§5.
Verification
node tests/run-tests.mjs— all green (106 items: 44 suites + 62 probes).node scripts/release-check.mjs— exits 0; after publishing, add--registryto compare the registry shasum with the local tarball.- This release's fix:
node tests/e2e-v5-round2.test.mjs(★ [real1004-stall], measuredpassed=436 failed=0) andnode tests/v5-institute-fixes.mutants.mjs(19/19 named reds). - Real-host re-check recipe: install the exact published version (
-Pin <version>) and run a trimmed meeting + paper task (no research), then count "late notes" (1067 before the fix) and refused finalisations (863 before the fix) — both should drop sharply.
Dependencies
- No new runtime dependencies; the DSH support window is unchanged.