Skip to content

v2.8.4

Choose a tag to compare

@ChongCyrus ChongCyrus released this 04 Oct 13:23
· 1662 commits to main since this release

本页为 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 by V5_PAPER_CONSULT_REQUIRED 863 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.dsh in package.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 --registry to compare the registry shasum with the local tarball.
  • This release's fix: node tests/e2e-v5-round2.test.mjs (★ [real1004-stall], measured passed=436 failed=0) and node 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.