Repository navigation
v0.4.0 — two copy blocks, todoFilled, pre-compaction snapshot + review fixes
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 returnstodoFilled, 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-basictriggers 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;respectCompactionis no longer a dead switch (one-shotpendingCompactionflag consumed by the
next observation); concurrent writes to the sameHANDOVER.mdno longer lose blocks (unique temp names + a
per-target-file serial queue);warnRatio <= hysteresisRatiocan 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.createGuardEnginenow lives inlib/engine.mjs
(policy.mjs only) — the test passes with nonode_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。