适配 DSH 0.1.6-alpha.1 的 preview 预发布版本。
修复
- 根形状判定不再被重载的
items骗过:根对象带白名单type时优先按单组件根处理,{"type":"steps","items":[…]}这类写法正常渲染;包装结果改为纯 spec(避免守卫二次包裹),根上的title在组件无该字段时上提为区块标题(#172)。 {"type":"stat","items":[{label,value},…]}归一化为一行多个stat,不再丢节点、也不再连坐同围栏里合法的兄弟节点(#172)。- 字段名直觉写法补进别名表:
callout的 text/body、keyvalue.pairs的 items/rows/entries、diff.diffs的 items/files、image/audio/video.src的 url/link、code/copy、quiz的 title/choices,以及radio/select/quiz的 items → options(#163、#172、#174、#175)。 table只给二维rows/data而未给columns时,用首行推导列名;list的[["文本"]]、{title, description}与keyvalue.pairs的[[key, value]]在规范化层修正为规范形状(#172、#175)。validate_dsh_ui的丢弃诊断升级为逐节点归因:位置、类型、已写字段、缺少的必填字段(#163)。
新增
- DOM 通道对被拒绝的围栏给出可见诊断:settled 之后仍无法渲染的
dsh-ui围栏,在原始代码块上方显示红色诊断条(字段错误或 JSON 解析原因),原始内容保留(#158)。 - 可选的自修闭环
fenceFeedback(默认关闭,profile 配置fenceFeedback: true开启):围栏未渲染时,通过宿主agent/turn-stopping边界把一条插件来源的修正请求 steer 进同一回合,让模型重发修正版。边界:每回合最多一次、同一围栏内容最多一次、子代理会话跳过、精确匹配dsh-ui围栏、发送前记账、取消的回合不触发(#160)。
验证
- 本地 pre-flight:
pnpm run check通过(678 passed / 105 skipped),scripts/verify-pack.mjs打包校验通过(2.00 MB / 146 files)。 - 发布任务在 DSH 0.1.6-alpha.1 宿主上复验同一安装包(check + 打包 + 真机 smoke e2e)后发布至 npm
preview。
安装:dsh plugin --profile web add @changfenhuang/dsh-genui@preview