Repository navigation
Releases: yjh051108/dsh-agi-harness
Releases · yjh051108/dsh-agi-harness
Release list
v0.3.21 — 判据不许空转(可证伪门 + 人判欠据门)+ 卡死修复
v0.3.21 — 判据不许空转(可证伪门 + 人判欠据门)+ 卡死修复
起因是两份导出会话复盘:交付物被判定"非常垃圾",而闭环报"11 条断言全绿·交付完成"。
查下来不是模型偷懒,是判据本身是空卷——模型自己出题、自己批卷,而唯一能判质量的通道
(眼睛/耳朵/GPU)在那台机器上根本不存在。这一版补两道门 + 修掉一个我自己引入的卡死放大器。
新增:判据可证伪门(dsh-closedloop-mode v0.8.30)
- 不变量:判据必须能对"假货"说不。把被审者产物替换成负对照再跑判据,判据若照样绿 ⇒ 判据空转 ⇒ 不许进合同、不许落账。
- 负对照四态:掏空壳 / 字面壳(判据源码全部字符串字面量)/ 锚定壳(只取真实产物里本来就有的判据字面量)/ 空转壳,同字节尺寸。
- 产物集 = 判据可达文件集(本地 import 闭包 + 源码路径字面量,限工作区内)∪ 本会话写入面。
- 接线:
decompose合同期早警 +trySettleGroups落账门;变异期间连 mtime 一起还原。 - 实测:池核案(session-1f8c4faa)33 组文本 grep 判据 → 判 vacuous;行为型判据不受影响。
新增:人判欠据门(v0.8.31)
人判:判据从"挂账可审计"改成欠据:落账时登记,未付欠据一律阻止终端归零。- 支付通道:真人帧「签收 <组名>」/「签收全部」(模型自写不算)。
- 终检未付时输出
⏸ 未归零:N 条人判欠据待开发者签收,不再出现「✅ 终端归零」。
修复:卡死 + 注入延迟(v0.8.32)
会话日志取证(多帧 zstd 解压)显示:可证伪门在 trySettleGroups 里用 execFileSync 同步跑 3 条负对照 + 1 次真跑,把整个宿主事件环停摆——重判据(dotnet test / BFS 脚本)一次落账堵死几分钟。
run-cmd新增execCmdAsync(spawn/事件环,三态分类与同步版一致);判据执行与落账门的真跑全部改异步;- 负对照 记忆化(键=判据 + 产物指纹,产物变即失效);负对照超时封顶 20s;
- 回归
tests/settle-nonblock.test.mjs5/5,含"判据跑 600ms 期间 100ms 定时器至少触发 3 次"(同步版会饿死)。
修复:issue #14(engram-relay 记忆注入)
llm/stream 里 content: 字符串 会被 dsh-llm 的纯文本投影打成 content.some is not a function(/compact 必崩);正常轮次请求被 agent-loop deepFreeze,就地 push 必抛且被 catch 吞掉(每轮记忆注入静默失效)。
- 新增
src/inject-guard.ts(纯函数):content改ContentBlock[]、compaction/session-title跳过、冻结请求显式留痕; - 正常轮次改走
agent/pre-step正规接缝(durable user/message); - 失败不再静默(首次升 error 并计数);回归 8/8,engram-relay 全量 87/87。
修复:issue #15(判据 cwd 退化)
宿主进程没有 DSH_HOME → workspaceFromSessionId 返回空 → 判据落到宿主目录,工作区根≠工程根时 100% 全红。
- 新增
dshHome(env)(DSH_HOME→ 从DSH_SESSION_JSONL反推 →~/.dsh); sessionCwd(exec, env)回退链显式传 env;新增DSH_CLOSEDLOOP_CWD显式覆盖;- 判据红诊断追加
cwd=<实际值>;回归 5/5,全量 519/519。
合入的外部 PR
- #13 web-tools:两套浏览器并发提示 + Linux
/proc实例匹配(→ 0.1.3) - #12 engram-relay:构建恢复(
existsSync未导入)+ DSH 0.1.2 契约适配 - #9 Linux 脆弱测试(r72 写死 Windows 路径 / e5 未隔离 HOME)+ 我补的 r10(macOS
/private软链) - #8 卡片暗色主题 token(已核宿主主题确实存在新 token)
- #4 browser-panel
httpServer → webServer+ 构建链(修掉整树启动失败) - #5 关闭(main 已修,PR 只剩回归)
安装
# 方式 A:随 profile 装配(bundle)
dsh plugin --profile web add file:<解压目录>/plugins/dsh-closedloop-mode
dsh plugin --profile web add file:<解压目录>/plugins/dsh-web-tools或直接装本页附件:
npm i -g ./dsh-closedloop-mode-0.7.6.tgz ./dsh-web-tools-0.1.3.tgz验证读数(本机实跑)
dsh-closedloop-mode:全量 519/519;变异审计 12 目标 · 88 变异 · 88 杀死 · 0 幸存;dsh-web-tools:契约回归 4/4(含 Linux/proc匹配与防自杀锁)+ 冒烟 3/3;dsh-engram-relay:注入回归 8/8 + 全量 87/87。
v0.3.20 — 预设作用域真的能存住了(卡片写入形态 + 装载镜像护栏)
v0.3.20 — 预设作用域真的能存住了
修复(两条根因)
- 卡片拨动不落盘:宿主写入口是
set(field, value)双参(dsh-client-ui-settings/lib/client.js:1015),卡片此前传单对象set({disabled:[…]})→ 被mutate的!ok分支静默回滚。现改为先写插件自带文件 API(行为真源),再双参同步宿主 settings 节;失败在卡片上可见。 - 重启后又变全选:
installSection装载时同步调一次onChange(dsh-settings/lib/index.js:338),把宿主基值镜像进活值文件;配合「文件优先」读法即每次重载回到全选。现加createScopeMirror()护栏(装载期不动文件,arm()后放行真实变更),scope API POST 双写。
验证(本机实跑)
- 新增
tests/scope-persist.test.mjs6 条:修复前 4 绿 2 红(红的两条正对两条根因),修复后 6/6。 - 发布副本全量 465/465(基线 459);源仓全量 487/487。
- 装机实测:POST → GET 同值 → 磁盘同值 →
settings.yaml出现closedloop节 → 再热重载一次仍同值。
资产
dsh-closedloop-mode-0.7.5.tgz(插件包,版本 0.7.4 → 0.7.5)
v0.3.19 浏览器工具全局插件 + 卡片落盘 + 释放纪律
v0.3.19 — 浏览器工具全局插件 + 作用域卡片落盘 + 进程释放纪律
新增
- 浏览器工具全局插件
dsh-web-tools:web_status/web_shot/web_dom——CDP 直连系统 Chrome、零第三方依赖。全局 bundle 装配(所有会话/所有预设常驻),由预设内化模块原样搬迁。 - 进程释放纪律:卸载/热更新清、宿主退出同步清、空闲超时自动释放(
idleMs默认 10min,0=关闭)、多实例自动回收(不再只提醒)。
修复
- 作用域卡片拨动不落盘(「关掉之后又变成全选」):
onChange曾为空函数,卡片写宿主 settings 节而插件读文件优先的活值文件,旧值把新值盖住 → 现镜像落盘。 detectInstances数错对象:把 Chrome 的 renderer/gpu 子进程一起数(单实例误报 10 个)→ 只数主进程。- PowerShell 传参坑:
-notmatch '--type='经 Node→powershell 传参被吞 → 过滤改在 JS 里做。
资产
dsh-closedloop-mode-0.7.4.tgz(闭环协议插件;459/459 测试、变异杀死率 73/73)dsh-web-tools-0.1.2.tgz(浏览器工具插件;冒烟 3/3 + 释放回归 3/3)
验证
- closedloop 全量 459/459 · 变异审计 73/73 · 棘轮十一模块 1.0 · 机检全家 23/23
- web-tools 冒烟 3/3(真跑 Chrome 出 PNG)· 释放回归 3/3(进程数归 0)
- 源码归档见本页自动提供的 Source code (zip/tar.gz)
v0.3.1 修复:无 python 机器不再崩溃(issue #1)
修复(来自 issue #1,报告者 JJLLKKDD)
严重
- 宿主崩溃:无 \python\ 命令的机器上,灵枢监督器 spawn 触发异步 'error'\ 事件且无监听 → \Unhandled 'error' event\ → 整个 dsh web 退出。现挂 \child.on('error')\ 入盒 + 脚本缺失前置跳过 + ENOENT 提示 \pythonPath\ 配 \python3\。
发布面
- \cordis.patch.yml\ 的 id/name 由旧包名 \dsh-optimal-mode\ 改为实际包名 \dsh-closedloop-mode\(否则 loader 按 name import 失败)。
- README 如实标注:快照为纯算法模式(无 .py 运行集、无知识库数据),并给出启用语义服务的步骤。
验证
- 伪 \python\ 路径 + 存在脚本:进程存活、无未捕获异常、优雅降级为 \down\。
- 全量 348/348。
感谢报告者附带的根因分析与补丁形状。
v0.3.0 预设作用域:逐预设开关
更新说明
v0.3.0 — 预设作用域(逐预设开关)
新增
- 预设作用域开关:可指定闭环插件在哪些预设下生效,其余预设完全隐身(零注入 / 零接管 / 写闸静默)。
- 设置页卡片:设置 → 插件 → 插件配置 → 「闭环 · 预设作用域」,外观与官方卡片一致(折叠式,点开见清单)。
- 逐预设 checkbox,拨即生效免重启:无保存按钮;默认全部启用。
- 预设自动发现:用户预设(
~/.dsh/.agent-presets/)+ DSH 内置预设(cordis / minimal / ptc / standard)合并去重;(无预设)会话单独可控。 - 配置亦可走文件层:
DSH_HOME/closedloop-scope.json或 profile 插件 config 的disabled: string[];HTTP 读写口GET|POST /graded-mode/api/scope。
修复
- 热重载卡死:插件曾以惰性方式依赖宿主 settings 服务,导致新 fiber 挂未决依赖、reload 无界等待不返回。改为硬依赖 + 同步注册,重载恢复秒级。
边界(不是 bug,是设计)
- 显式
/optimal:命令不受作用域限制——用户主动即尊重。 - 作用域外的会话工具仍在列表中,但无盘档状态,调用即被状态闸拒——无副作用。
- 未携带预设字段的会话归入
(无预设)项(fail-closed,可单独关闭)。
验证
- 实测三态:关错预设 → 写闸仍拦;关对预设 → 写闸静默放行;复位 → 拦截恢复。
- 预设清单实测 6 → 10(内置四项补全)。
- 全量测试 348/348;生产机检全绿。
v0.2.x
- v0.2.2 Apache-2.0 全文补正;灵枢 AEIS 上游署名(MIT)。
- v0.2.1 灵枢知识库与嵌入模型随包(后调整为数据不随包、仅留署名)。
- v0.2.0 验证类 vExpect 明文与回归锁;CI 模板。
v0.1.0
- 首版:闭环协议插件 + 记忆器官 + 浏览器工具 + 标准预设。
dsh-agi-harness v0.2.2(许可补正)
Apache-2.0 全文补正 + 灵枢 AEIS 上游署名(MIT)+ 灵枢运行数据不随包(历史已清除)
dsh-agi-harness v0.2.1
开箱即用补丁(灵枢数据已改为不随包分发,署名保留)
dsh-agi-harness v0.2.0
首版 Release
给聪明模型一副可托付的身体:责任闭环、信誉、学习的外部化(DSH 插件组合)。
组件
- dsh-closedloop-mode:最优律闭环协议插件(写闸/来源纪律/判分器棘轮/审计硬验/真人签收/信誉账本/教训台账/三层闸权)
- dsh-engram-relay:跨会话记忆图谱 + 灵枢知识校准器
- dsh-browser-panel:浏览器工具插件(可选)
- preset/closedloop-full:标准预设(成长人格 + 任务模式引导)
本轮
- 验证类任务 vExpect=maintain 明文与回归锁(ΔV 张力收口)
- 全部测试自包含(零真实盘档依赖),任意机器可跑
- CI 模板就位(docs/ci.yml;gh auth refresh --scopes workflow 后即启)
测试
343/343 · 生产机检 23 把尺全绿