Skip to content

v0.4.0 — two copy blocks, todoFilled, pre-compaction snapshot + review fixes

Choose a tag to compare

@2JumpSinA 2JumpSinA released this 17 Oct 10:04
· 35 commits to main since this release

v0.4.0 — the handoff becomes an action

Two copy-ready texts. At a level crossing the banner now offers two blocks: one to paste back into the
old session
("write the conclusions into the to-fill-in area") — the agent that still has the context writes
them — and one for the new session (@HANDOVER.md ...). The draft route also returns todoFilled, so the UI
can show whether the to-fill-in area is still the empty template.

Pre-compaction snapshot. Compaction is a black box: DSH's own dsh-compaction-basic triggers at 80% of the
window, retains ~16%, and can force an idle-session compaction below the threshold. Once it runs, the numbers
from before compaction are gone. The plugin now writes a separate block (own marker, replaced per session) with
the peak reading before compaction — occupancy, ledger spend, changed files, time — zero LLM.

Review fixes (two P0, four P1): cooldown no longer swallows a hard escalation; levels are compared by rank and
never downgraded; respectCompaction is no longer a dead switch (one-shot pendingCompaction flag consumed by the
next observation); concurrent writes to the same HANDOVER.md no longer lose blocks (unique temp names + a
per-target-file serial queue); warnRatio <= hysteresisRatio can no longer arm the guard forever.

CI note: the engine test imported lib/index.js, which pulls in the host-provided @deepseek-ai/schemastery;
CI installs no dependencies, so the test failed to load. createGuardEngine now lives in lib/engine.mjs
(policy.mjs only) — the test passes with no node_modules.

Tests: 64/64 unit tests (engine + concurrency + hysteresis regressions), 86/86 selftest checks,
client bundle same-source check OK.

中文

v0.4.0 —— 交接从"提醒"变成"动作"

两段可复制文本:跨档时 ① 贴回旧会话(让还有上下文的 agent 写结论)、② 贴到新会话开场。
路由新增 todoFilled,界面能显示「待补」填没填。

压缩前快照:平台压缩是黑盒(dsh-compaction-basic:80% 阈值、保留 ~16%、空闲可低于阈值强制压缩)。
压缩后压缩前的读数就查不到了 —— 插件在压缩发生时把压缩前峰值(水位/花费/文件/时间)写进独立块,零 LLM。

审查修项(2 个 P0、4 个 P1):冷却不再吞 hard 升级;档位按 rank 比较且绝不降级;respectCompaction 不再是死开关;
多会话并发写同一 HANDOVER.md 不再丢块(唯一临时名 + 按文件串行队列);warnRatio <= hysteresisRatio 不再永久武装。

CI 说明:引擎测试曾 import lib/index.js,它依赖宿主提供的 @deepseek-ai/schemastery,而 CI 不装依赖 ⇒ 加载失败。
createGuardEngine 已抽到 lib/engine.mjs(只依赖 policy.mjs),无 node_modules 也能跑。

测试:单测 64/64、自检 86/86、bundle 同源检查 OK。