Repository navigation
v2.8.3
本页为 dsh-vibe-math 2.8.3 的双语发布说明(中文在前,English below)。
dsh-vibe-math 2.8.3 — 发布说明
上一版本:2.8.2。本版是补丁版,修两处 v5 的会议与定稿问题:会议收束后到达的发言不再被静默丢弃(改成具名的"会后补记");
force重启后paperEditor="office"的定稿拒绝会说明原因(计数已随新论文重置、需重新征询)。参数名与默认值、数据格式与目录结构未变,DSH 支撑窗口不变,无需迁移。
概述
- 成员的会议发言不会再无声消失:即使发言在会议收束(看门狗放弃停滞会议,或所办提前定稿)之后才到达,也会作为「会后补记」写进会议纪要,并在群聊里具名说明一次。
- 会议纪要只增不覆盖:先前发言者的内容一律保留。
force重启后的定稿拒绝可解释:响应新增restarted: true并写明forceReason,消息直接告诉你"计数随新论文重置、重启前的消息/会议不再计入、请重新征询"。- 文档明确:
force= 一张新论文(consult的两个计数随之从 0 开始),因此重启后必须重新征询。
新增
vibe_v5_finalize_paper在因征询不足被拒时,响应新增restarted字段(布尔;该论文是否由force重启而来)。
变更
- 会议纪要新增一种条目:「会后补记」(
### <成员>(会后补记:该发言到达时会议已收束))——针对会议已收束后到达的发言;同一段文本重复提交只记一次。 V5_PAPER_CONSULT_REQUIRED的文案在restarted时追加重置说明(行为逻辑不变,只是把原因说清)。docs/final-paper.md§7 增补一条「force= 一张新论文」的口径。
修复
- 症状:某位成员(真机实测中正是会议的召集人)的发言没有出现在会议纪要里——纪要在头部写着
- 发言顺序: r-1 → acad,正文却只有### r-1;同一张论文的consult.meetings一直为 0,定稿被连续拒绝。原因:成员结束块里的input只认「有活会议」这一条路径,而会议一旦停滞会被看门狗收束,之后到达的发言无处可去、静默丢弃。现在这类发言会作为「会后补记」写入纪要(具名、去重、追加而非覆盖)。守卫:tests/e2e-v5-round2.test.mjs(★ [real1004-minutes])、tests/v5-institute-fixes.mutants.mjs。 - 症状:
force重启论文后,所办按老流程定稿会被V5_PAPER_CONSULT_REQUIRED反复拒绝,而提示里没有任何线索说明"刚刚重启导致计数清零"(真机实测连续 11 次、只能靠成员自行推断)。原因:这一语义只存在于代码里,文档与拒绝文案都没写。现在拒绝会具名说明重置与"请重新征询",文档也把「force= 新论文」写清楚。守卫:tests/e2e-v5-round2.test.mjs(★ [real1004-consult])、tests/v5-institute-fixes.mutants.mjs(18/18 具名红)。
兼容性与迁移
- 破坏性变更:无。
- 纯新增:
restarted响应字段;纪要里一种新的条目类型。 - 迁移:无需迁移;既有
paper.meta.json、会议纪要与目录结构不变。 - DSH 支撑窗口不变(见
package.json的engines.dsh)。
已知限制
- 非标准位置的 TeX 仍不会被自动发现:默认探测只覆盖 PATH 与文档化的常见安装根;装在其它目录请用
paperLatexCommand指绝对路径。 - 随包套件不覆盖宿主层行为(例如「中断后调用方被丢弃」),这类行为需要真机才能观察。
- 根代理提问会阻塞整所流程(运维注意项,不改产品):答复到达前其余流程停摆;长跑时请把问题与验收条件一次说清。详见
slv-playbook.md§5。 - 会议「因长时间无新发言被看门狗放弃」之后,纪要里会留下放弃标记;放弃前的发言仍保留,之后到达的发言进「会后补记」。
验证方式
node tests/run-tests.mjs—— 全部通过(106 项:44 套件 + 62 探针)。node scripts/release-check.mjs—— 退出 0(版本三处一致/两份说明章节顺序/files[]登记/包内无 CRLF);发布后加--registry比对线上 shasum 与本地 tarball。- 本版两处修复:
node tests/e2e-v5-round2.test.mjs(★ [real1004-minutes]、★ [real1004-consult])与node tests/v5-institute-fixes.mutants.mjs(18/18 具名红)。 - 真机复测方式:用 registry 上的精确版本(
-Pin <version>)跑一个精简会议+论文任务(跳过研究),核对纪要是否含两位发言人、以及 force 重启后拒绝是否具名。
依赖
- 无新增运行时依赖;DSH 支撑窗口不变。
dsh-vibe-math 2.8.3 — Release Notes
Previous release: 2.8.2. This is a patch release fixing two v5 issues around meetings and finalisation: a speech that arrives after the meeting closed is no longer dropped silently (it becomes a clearly-marked late note), and an office finalisation refused after a
forcerestart now explains why (the counters restarted with the new paper, so a fresh consultation is required). 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 member's meeting speech no longer disappears silently: even when it arrives after the meeting closed (the watchdog abandons a stalled meeting; the office may finalise early) it is written into the minutes as a clearly-marked "late note", with one named line in the group chat.
- Meeting minutes are append-only: earlier speakers are always preserved.
- A refusal after a
forcerestart is now explainable: the response carriesrestarted: trueplus theforceReason, and the message states that the counters restarted with the new paper, that earlier messages/meetings no longer count, and that a fresh consultation is required. - The documentation now states it plainly:
forcemeans a new paper (bothconsultcounters start at 0), so a restart requires a new consultation.
Added
- When
vibe_v5_finalize_paperis refused for insufficient consultation, the response now carriesrestarted(boolean: was this paper started by aforcerestart?).
Changed
- Meeting minutes gained one kind of entry:
### <member>(会后补记:该发言到达时会议已收束)— used for speeches that arrive after the meeting closed; identical text submitted again is recorded only once. - The
V5_PAPER_CONSULT_REQUIREDmessage appends the reset explanation whenrestarted(behaviour is unchanged; it only states the cause). docs/final-paper.md§7 gained the "force= a new paper" rule.
Fixed
- Symptom: a member's speech — on a real host, the convener's own speech — never appeared in the minutes: the header said
- 发言顺序: r-1 → acadwhile the body contained only### r-1; the paper'sconsult.meetingsstayed 0 and finalisation was refused repeatedly. Cause: a member's end-blockinputwas only consumed when a meeting was live, and a stalled meeting is closed by the watchdog — speeches arriving later had nowhere to go and were dropped silently. Such speeches are now appended as "late notes" (named, de-duplicated, appended rather than overwritten). Guards:tests/e2e-v5-round2.test.mjs(★ [real1004-minutes]),tests/v5-institute-fixes.mutants.mjs. - Symptom: after a
forcerestart of the paper, the office's usual finalisation was refused byV5_PAPER_CONSULT_REQUIREDwith no hint that the restart had reset the counters (on a real host: 11 consecutive refusals, leaving the members to infer it). Cause: that semantics existed only in the code — neither the docs nor the refusal message said it. The refusal now names the reset and asks for a fresh consultation, and the docs state "force= a new paper". Guards:tests/e2e-v5-round2.test.mjs(★ [real1004-consult]),tests/v5-institute-fixes.mutants.mjs(18/18 named reds).
Compatibility & Migration
- Breaking changes: none.
- Additive only: the
restartedresponse field; one new kind of minutes entry. - Migration: none needed; existing
paper.meta.jsonfiles, meeting minutes and the directory layout are unchanged. - The DSH support window is unchanged (see
engines.dshinpackage.json).
Known Limitations
- 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
paperLatexCommandotherwise. - The shipped suites do not cover host-level behaviour (for example "the caller is dropped after an interrupt"); that needs a real host.
- 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§5. - After a meeting is abandoned by the watchdog, the minutes keep the abandonment marker and all earlier speeches; speeches that arrive later land in the "late note" section.
Verification
node tests/run-tests.mjs— all green (106 items: 44 suites + 62 probes).node scripts/release-check.mjs— exits 0 (version triple, section order of both notes,files[]registration, no CRLF in the package); after publishing, add--registryto compare the registry shasum with the local tarball.- The two fixes in this release:
node tests/e2e-v5-round2.test.mjs(★ [real1004-minutes],★ [real1004-consult]) andnode tests/v5-institute-fixes.mutants.mjs(18/18 named reds). - Real-host re-check recipe: install the exact published version (
-Pin <version>) and run a trimmed meeting + paper task (no research), then check that the minutes contain both speakers and that a refusal after aforcerestart is named.
Dependencies
- No new runtime dependencies; the DSH support window is unchanged.